VT-x
VT-x(語源:Virtualization Technology eXtensions、CPUフラグ:VMX)とは、インテルのCPUに搭載されている仮想化を支援する命令セットである。
VT-xは2005年に発売し激熱CPUとして名を馳せたPrescott-2Mの上位モデルである「Pentium4 662」および「Pentium4 672」に初搭載された。
VT-xでは13個の命令が追加されている。これらの命令はハイパーバイザー上のゲストOSが完全な特権(リング0)で実行されていると認識し、ホストOSは保護されたままの仮想実行モードの開始と終了を許可する。
この後、2008年のNehalemにExtended Page Tables、2010年のWestmereにUnrestricted Guest、2013年のHaswellにVirtual Machine Control Structure Shadowingと微修正が行われた。
つまり実質的に「Haswellで完成形にった」というのが実情であり、それ以前のCPUのVT-xはベータ版であるといえる。
主な機能 編集
- VMX RootモードとVMX Non-rootモード:
- VMX Rootモード: ハイパーバイザー(VMM)が動作するモード。
- VMX Non-rootモード: ゲストOSが動作するモード。
- VMCS(Virtual Machine Control Structure):
- 仮想マシンの状態を管理するためのデータ構造で、コンテキストスイッチを高速化します。
- EPT(Extended Page Tables):
- 仮想メモリの管理をシンプルに保ち、複数のOSが混在しても効率的に動作します。
有効化 編集
VT-xの有効化はBIOSに依存する。BIOSで無効化されていればVT-xはCPUがサポートしていても無効である。たとえば古いMacではCPUはVT-xに対応しているが、ファームウェアでVT-xが無効化されいた。