Intels Vanderpool virtualisiert CPUs

Initialisierung

Ob ein Prozessor VMX unterstützt, kann die Host-Software über die CPUID abfragen. Beim Ausführen von CPUID mit dem Wert 1 im EAX-Register zeigt das Bit 5 des in das ECX-Register übergebenen Wertes den VMX-Support. Eine "1" kennzeichnet VMX-Unterstützung.

Will ein VMM den VMX-Modus des Prozessors verwenden, muss er ihn erst aktivieren. Dies erfolgt über das Setzen des Bit 13 im CR4 (CR4.VMXE). Danach lassen sich durch den Befehl VMXON die Virtual Machine Extensions verwenden. Das Kontrollbit CR4.VMXE kann jetzt nicht mehr gelöscht werden. Soll der Prozessor den VMX-Modus verlassen, muss der Befehl VMXOFF von der System-Software verwendet werden.

Vor dem Ausführen des VMXON-Befehls muss die Host-Software einen 4 KByte großen Speicherbereich für VMX-Operationen reservieren. Die Adresse dieser Speicherregion wird in einem Operanten des VMXON-Befehls übergeben. Zwischen VMXON und VMXOFF sollte dieser Speicherbereich von der Host-Software unangetastet bleiben (siehe VMX-Kontrolle). In diesem 4-KByte-Bereich sind alle relevanten Informationen des Prozessors und des Betriebssystems einer VM gespeichert.

VMX-Operationen setzen den Page-protected Mode voraus. Dies ist durch die bei VMX notwendigen Einschränkungen bei den Registerbits CRO.PE und CRO.PG notwendig. Der Betrieb von Gast-Software im Unpaged-protected Mode oder im Real-Address Mode sind somit nicht möglich. Soll ein VMM entsprechende Gast-Software trotzdem unterstützen, muss vom VMM eine Emulation dieser Modi erfolgen. Hierzu kann ein VMM die "Identify Page Tables" für die Emulation verwenden.