Innovationsschub für die Hardware

Wie Virtualisierung die x86-Welt erneuert

26.05.2009
Von 
Wolfgang Sommergut ist Betreiber der Online-Publikation WindowsPro.

Kompensation durch aufwändige Hypervisor

Bei Softwarelösungen existieren zwei Ansätze, um die Betriebssysteme in den VMs zu zähmen:

  • Der erste stuft die Gastsysteme auf den üblicherweise ungenutzten Ring 1 herunter ("Depriviligierung"), so dass der Hypervisor in Ring 0 die Steuerungshoheit über die Hardware behält. Allerdings lassen sich bei herkömmlichen x86-Prozessoren 17 privilegierte Instruktionen im User Mode ausführen, ohne dass sie dabei eine Ausnahme ("Trap") provozieren. Ein Hypervisor kann daher einen solchen Aufruf nicht erkennen und den Rechtekonflikt nicht lösen. Deshalb erfüllte die Intel-Architektur bis zur Einführung der VT-Erweiterungen die formalen Virtualisierungsanforderungen nicht, die Popek und Goldberg bereits 1974 formuliert hatten. Abhilfe schafft ein Verfahren namens binäre Übersetzung ("Binary Translation"), bei der ein Hypervisor die Anweisungen der Gastsysteme überwacht, Ring-0-Instruktionen abfängt und die privilegierten Operationen simuliert. Diesen Ansatz verfolgt VMware mit ESX.

  • Ein alternatives Vorgehen besteht darin, Gast-Betriebssysteme für die Nutzung in VMs anzupassen, so dass sie nicht mehr davon ausgehen, auf blanker Hardware zu laufen. Stattdessen kommunizieren sie über Schnittstellen mit dem Hypervisor ("Hypercalls") und vermeiden damit den Übersetzungsaufwand. Dieser Ansatz wird als Paravirtualisierung bezeichnet und führt in der Regel zu einer hohen Ausführungsgeschwindigkeit. Er eignet sich jedoch nur für Betriebssysteme, bei denen der Quellcode zugänglich ist und modifiziert werden kann. Ein Beispiel dafür ist das Zusammenspiel von Xen und Linux, für das ein angepasster Kernel existiert. Aber auch VMware bietet seit 2006 mit VMI eine Programmierschnittstelle, über die Betriebssysteme direkt mit dem Hypervisor kommunizieren können. Microsoft reichte definierte für Hyper-V ein eigenes Interface für die Paravirtualisierung, verwendet dafür aber den Begriff "Enlightenment".

Unterstützung durch neue Prozessoren

Die beiden führenden x86-Chiphersteller Intel und AMD erweiterten ihre neueren Prozessoren um Techniken (AMD-V und Intel VT), die Virtualisierung auf Hardwareebene unterstützen und damit den Hypervisor entlasten. Dazu gehört eine Neuordnung des Privilegiensystems, das mit dem "VMX Root mode" eine weitere Ebene mit maximaler Rechteausstattung einzieht, die dem Hypervisor vorbehalten bleibt. Unmodifizierte Gastsysteme können damit wie gewohnt im Ring 0 operieren und müssen nicht mehr von Virtualisierungssoftware reglementiert werden.

Die Virtualisierungs-erweiterungen der neuen CPUs erlauben es den Betriebssystemen, weiterhin Ring-0-Instruktionen auszuführen, ohne dem Hypervisor in die Quere zu kommen.
Die Virtualisierungs-erweiterungen der neuen CPUs erlauben es den Betriebssystemen, weiterhin Ring-0-Instruktionen auszuführen, ohne dem Hypervisor in die Quere zu kommen.

Die Virtualisierungsunterstützung auf Chipebene beschränkt sich nicht auf die Behebung dieses Legacy-Problems, sondern nimmt dem Hypervisor noch weitere Aufgaben ab. Dazu zählt auch die Speicherverwaltung, bei der die Memory Management Unit (MMU) eine zentrale Rolle spielt. Dieser Baustein, der Bestandteil moderner Prozessoren ist, dient der Übersetzung von virtuellen in physikalische Adressen.