Wie AMD und Intel CPUs virtualisieren

08.09.2005
Von 
Kriemhilde Klippstätter ist freie Autorin und Coach (SE) in München.

Die klassische x86-Architektur bei 32-Bit-Chips enthält zur Programmausführung die vier hierarchischen Ebenen 0, 1, 2 und 3. Normalerweise läuft das Betriebssystem auf der 0-Ebene ab und die Anwendungsprogramme auf dem Level 3. Hierarchisch bedeutet, dass eine Software von Ebene 3 keine Möglichkeit hat, Einfluss auf Ebene 0 zu nehmen. Umgekehrt funktioniert das schon. Die mittleren beiden Ringe werden meist nicht verwendet. Deshalb konnte sie Intel für die Erweiterung der x86-Architektur auf die Verarbeitung von 64-Bit-Programmen nutzen. Ebene 1 und 2 verschwanden, was niemand außer den Lieferanten von Virtualisierungsprogrammen wie VMware beklagte.

Drei Arten der Virtualisierung

• Emulation: Erzeugt den größten Overhead, da jedes Stück Hardware simuliert werden muss.

• Paravirtualisierung (PV): Erfordert eine enge Kooperation zwischen den Programmierern der Virtualisierungsprogramme und der Betriebssysteme, denn PV funktioniert nur mit modifizierten Betriebssystemen, die für die virtuelle Umgebung angepasst werden. Deshalb eignet sich PV gut für Open-Source-Plattformen wie Linux, nicht aber für Windows.

• Binary Translation (BT): Die Virtualisierungssoftware beobachtet dabei, was die Gast-Betriebssysteme auszuführen versuchen. Falls der gewünschte Befehl mit der Virtualisierungsschicht kollidiert, ersetzt sie den Befehl durch einen Satz anderer Instruktionen. Dadurch erleidet das Gesamtsystem aber Leistungseinbußen.

Betriebssystem ist nachgeordnet

Diese müssen die "Virtual Machine" (VM) möglichst weit unten, also auf Ebene 0 ansiedeln, um das System kontrollieren und steuern zu können. Das ist aber der Ring, den das Betriebssystem für sich beansprucht. Deshalb haben Virtualisierungsspezialisten das Betriebssystem einer 32-Bit-Umgebung über "Paravirtualisierung" (siehe Kasten "Drei Arten der Virtualsierung") so verändert, dass es anstandslos in Ebene 1 abläuft.