両方のプロセッサをサポートする必要がある場合、OS X アプリは PowerPC と Intel の両方向けにビルドする必要があります。
しかし、Windows プログラムの場合はそうではないと思います。なぜでしょうか?
答え1
消費者向けシステムでは、Windowsはx86プロセッサ版でのみ10年以上前から利用可能でした(Windows 95とWindows 2000はx86システムでのみ利用可能でしたが、それ以前のバージョンについては不明です)。しかし、アイタニウムアーキテクチャ、そしてマイクロソフトは Windows 8 で ARM プロセッサをサポートすることを発表しました。
しかし、すべての Windows デスクトップ システムは、同じ基本的な x86 CPU アーキテクチャを備えています。
Mac OS X は、2006 年初頭まで、Apple が Mac システムに使用していた PowerPC プロセッサ専用でした。その後、Apple は翌年にかけて徐々にコンピュータ ラインナップを Intel x86 プロセッサに変更しました。Mac OS X 10.4 (PowerPC 版は 2005 年初頭にリリース、Intel 版は 2006 年初頭にリリース) は、PowerPC 版と Intel/x86 版の両方で利用できる最初のリリースでした。
互換性レイヤーを提供した。ロゼッタこれにより、(古い) PowerPC プログラムを (新しい) Intel プロセッサで実行できるようになり、多くの (より単純な) プログラムは、Apple の開発ツールを使用して再コンパイルすることで、両方で使用できるようになりました。他の開発ツール (Code Warrior など) を使用して作成されたものや、Adobe などの一部の大規模なソフトウェア製品は、Intel システムでネイティブに使用できるようになるまでしばらく時間がかかりました。
Mac OS X 10.6 (2009 年後半) は、PowerPC のサポートを廃止した最初のリリースでした。Mac OS X 10.7 (2011 年半ば) では、Rosetta のサポートが廃止され、PowerPC プログラムのサポートも廃止されました。
Mac のコンピューター アーキテクチャがこのように切り替わったことにより、直接または仮想化を使用して Mac 上で Windows を実行できるようになったのです。
Windows は基本的に x86 システムでのみ実行されていましたが、2006 年に Mac のラインナップに大きな変更がありました。これは比較的最近のことであるため、多くのソフトウェア開発者が引き続きこれらのシステムをサポートしていますが、Apple はハードウェアとそれ用に作成されたプログラムの両方のサポートを徐々に中止しました。
答え2
これは異なるアーキテクチャによるもので、Windows でも同様のことが行われていれば同じ結果になります。
実際、IBM の POWER アーキテクチャは今でも存在し、非常に多くのサーバーで利用されていますが、この場合も x86(-64) Intel アーキテクチャ用とは異なるコンパイル済み OS が必要です。
答え3
Windows では、ターゲット アーキテクチャを考慮する必要があります。Visual Studio のオプションを見てください。Windows では現在、64 ビット アーキテクチャと 32 ビット アーキテクチャ用に異なるビルドが必要です。ARM 用も用意されています (近日リリース予定)。また、Windows 95 の昔は、16 ビット / 32 ビットの違いも考慮する必要がありました。さらに以前、Windows 3 は 80 年代に 8088 システムを処理する必要がありました。つまり、実行ファイルに出力されるマシン コードは、異なる命令セットごとに異なる必要があります。
どちらの系統にも、OS の古いバージョンをターゲットにするオプションがあります。状況は変化し、コンパイラもそれに合わせて変化する必要があり、私たちもレガシー サポートを望んでいます。