1

バイトコードをアーキテクチャ固有の命令に変換できる仮想マシンでコードを実行すると、異なる CPU アーキテクチャ (x86 および ARM) 用に Windows (Windows 8 および RT) の個別のバージョンがあるのはなぜですか? たとえば、Android は JVM で実行される Java に基づいており、完全な互換性を持つ ARM と Intel CPU を搭載したスマートフォンがあるのはそのためです。マイクロソフトが同じことをしない理由は何ですか?

4

1 に答える 1

1

バイトコードをアーキテクチャ固有の命令に変換できる仮想マシンでコードを実行すると、異なる CPU アーキテクチャ (x86 および ARM) 用に Windows (Windows 8 および RT) の個別のバージョンがあるのはなぜですか?

Windows 8 の x86 バージョンでは、すべてのコードが仮想マシンで実行されるわけではありません。デスクトップ モード アプリケーションは、完全な x86 または x64 プロセスとして実行されます。

そうは言っても、ここでの目標の一部は、これらのデバイスの API を意図的に制限および変更することであり、完全なサポートを提供することではなかったと思います。.NET フレームワークには、「デスクトップ」または「サーバー」アプリケーション用に設計された多くの型とメソッドがあります。ネイティブ命令に変換することでこれらを機能させることは (理論的には) 可能ですが、全体的なアーキテクチャはこれらのデバイスには適していません。

Windows 8 (および Windows Phone 8) に固有の新しい API と別の "フレームワーク" を提供することで、フレームワークは適切な API (遅延 (同期メソッドなし)、消費電力、またはその他の同様の問題の観点から適切なもの) に制限することができます。

そうは言っても、ポータブル クラス ライブラリは、ほとんどの "純粋な" ロジック アセンブリの橋渡しをしようとしています。PCL を使用すると、デスクトップと RT、電話などの Windows 8 で使用できる単一のアセンブリを作成できます。

于 2013-04-04T16:32:18.653 に答える