クロスプラットフォーム仮想化は、動的バイナリ変換とオペレーティング システム コール マッピングを組み合わせることで、特定の命令セットとオペレーティング システム用にコンパイルされたソフトウェアを、異なる CPU やオペレーティング システムを搭載したコンピューター上で変更せずに実行できるようにするコンピューター仮想化の形式です。
ソフトウェアは元のコンピュータと同等の仮想化されたコンピュータ上で実行されるため、再コンパイルや移植の必要がなく、時間と開発リソースを節約できます。ただし、バイナリ変換と呼び出しマッピングの処理オーバーヘッドにより、ネイティブにコンパイルされたソフトウェアと比較するとパフォーマンスが低下します。このため、ソフトウェアを移植するためのリソースが利用可能になるまで、クロスプラットフォーム仮想化を一時的なソリューションとして使用できます。または、クロスプラットフォーム仮想化を使用して、新しい高速マシンで実行されているレガシー コードをサポートすることもできます。これにより、仮想化のオーバーヘッドがあっても、十分なパフォーマンスを維持できます。
クロスプラットフォーム仮想化は、異なるコンピュータ システム用にコンパイルされたソフトウェアを実行できる抽象化レイヤーを作成することで、ジェラルド J. ポペックとロバート P. ゴールドバーグが 1974 年の論文「仮想化可能な第 3 世代アーキテクチャの正式な要件」で概説したポペックとゴールドバーグの仮想化要件を特徴付けます。 [1]クロスプラットフォーム仮想化は、オペレーティング システム コール マッピングを含めることでより完全な仮想化環境が提供される点で、 1 つの命令セットを別の命令セットに直接変換する単純なエミュレーションやバイナリ変換とは異なります。クロスプラットフォーム仮想化は、サーバー仮想化およびデスクトップ仮想化ソリューションを補完するものでもあります。これらは通常、 x86やPower ISAなどの単一の命令セットに制限されるためです。クロスプラットフォーム仮想化の最新のバリアントでは、ハードウェア アクセラレーション技術[2]を使用して、ゲストからホストへのシステム変換で発生するコストの一部を相殺する場合があります。
参照
参考文献
- ^ Gerald J. Popek および Robert P. Goldberg ( 1974)。「仮想化可能な第 3 世代アーキテクチャの形式要件」。Communications of the ACM。17 ( 7): 412–421。doi : 10.1145 /361011.361073。S2CID 53302633 。
- ^ Spink, Tom; Wagstaff, Harry; Franke, Björn (2016-12-28). 「ハードウェア アクセラレーションによるクロスアーキテクチャ フルシステム仮想化」. ACM Transactions on Architecture and Code Optimization . 13 (4): 36. doi : 10.1145/2996798 . hdl : 20.500.11820/ab3fccd9-365d-4757-8d2c-f62aaeb59791 . ISSN 1544-3566.
