CPU, Speicher, I/O

Virtualisierung: Anforderungen an x86-Hardware

Defizite durch aufwändige Hypervisor kompensieren

Bei Softwarelösungen existieren zwei Ansätze, um die Betriebssysteme in den virtuellen Maschinen (VM) 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".