Virtualbox, Vmware und Co.

Crashkurs: Wie funktionieren eigentlich virtuelle PCs?

Paravirtualisierung und Betriebssystemvirtualisierung

Am meisten hat der Hypervisor bei einer Komplettvirtualisierung zu tun. Dieser Ansatz präsentiert jedem Gastsystem, unabhängig von der realen Hardware des Host-Systems, eine emulierte Hardware. Der Hypervisor muss den Ring 0 der CPU komplett abbilden sowie die CPU-Befehle des Gastsystems entsprechend umbauen. Das Gastsystem weiß in diesem Fall nichts davon, dass es in einer VM läuft und kann unverändert laufen, mit ein paar Treibern für die emulierte Hardware. Die Komplettvirtualisierung ist nicht die effizienteste Methode, da es durch die erforderlichen Übersetzungen von Speicher- und Prozessorzugriffen natürlich zu Leistungsverlusten kommt. Dafür ist die Methode allerdings unproblematisch für das Gastbetriebssystem. Die ersten Versionen der Desktop-Virtualisierer wie Virtual PC, Vmware Workstation und Virtualbox sind prominente Beispiele für diesen Ansatz.

Paravirtualisierung: Eine effizientere Methode ohne Performance-Verluste durch die Arbeit des Hypervisors bietet die Paravirtualisierung. Anders als bei der Komplettvirtualisierung muss bei der Paravirtualisierung jedoch das Gastbetriebssystem selbst mitspielen. Der Gast braucht einen Betriebssystemkern (Kernel), der direkt mit der Virtualisierungsschicht kommuniziert und nicht direkt mit der physikalischen Hardware. Das Gastsystem muss also für die Virtualisierung optimiert sein. Der große Vorteil: Auf diese Weise muss die physikalische Hardware nicht für jede einzelne VM extra emuliert werden, denn Gastsysteme greifen auf die Virtualisierungsschicht zu. Ideal ist dieser Ansatz für Serversysteme geeignet, auf denen immer mehrere virtuelle Maschinen gleichzeitig laufen sollen.

Der bekannteste Vertreter der Paravirtualisierung ist Xen, ein leistungsfähiges Open-Source-Projekt aus dem Linux-Umfeld, das für virtuelle Maschinen optimierte Xen-Linux-Kernel einsetzt. Außer am Kernel sind keine Änderungen notwendig – alle Programme im Userland bleiben unverändert , also jener unprivilegierte Teil, der nicht zum Kernel gehört. Der Leistungsschwund bei der Paravirtualisierung fällt geringer aus. Die Anpassung eines Betriebssystem-Kernels erfordert aber die Änderung von dessen Quelltext. Xen unterstützt jedoch auch Komplettvirtualisierung mit den neuen Befehlssatzerweiterungen der CPU.

Betriebssystem-Virtualisierung: Dieses Verfahren funktioniert nur mit einem Betriebssystem, das diese Art der Virtualisierung unterstützt. Die Aufteilung des Systems in virtuelle Maschinen erfolgt nach Bedarf durch das Betriebssystem, das eine VM wie eine Anwendung in einer Sandbox startet. Eine Hardware-Emulation ist damit nicht nötig. Ein weiterer Vorteil ist, dass VMs wie ein Container nur ihre eigenen Daten mitzubringen brauchen, aber kein komplettes System sein müssen. Denn alle anderen Dateien und Bibliotheken des Host-Systems werden von den Gästen mitbenutzt. Für geänderte und abweichende Dateien der VM gibt es ein gesondertes Verzeichnis auf der Festplatte, damit sich diese Dateiversionen nicht mit dem Betriebssystem selbst stören. Dank dieser Technik besteht eine VM nur aus wenigen Dateien und verlangt kaum mehr Systemressourcen als eine normale Anwendung. Wegen der geringen Leistungsansprüche kann die Betriebssystem-Virtualisierung eine sehr hohe Anzahl VMs bei verhältnismäßig bescheidener Hardware-Ausstattung starten. Ein Beispiel für diesen Ansatz liefert etwa Docker, eine junge und vielversprechende Open-Source-Entwicklung, die ganze Serveranwendungen als einfach zu installierende Container für Linux-Systeme ausliefern kann.

Intel und AMD: Befehlssatz-Erweiterungen der CPU

Das Verhalten der x86-Prozessoren und deren Aufteilung der internen Berechtigungen in Ringe lässt sich aus Kompatibilitätsgründen nachträglich nicht mehr ändern. Intel und AMD haben deshalb mit steigender Popularität von Virtualisierungslösungen unabhängig voneinander Befehlserweiterungen entwickelt, um Virtualisierung in der CPU besser zu unterstützen. AMD nennt die Technik „Pacifica“ beziehungsweise „AMD Virtualization“ oder kurz AMD-V. Sie ist in AMD-Prozessoren seit dem Athlon 64 enthalten. Bei Intel heißt eine vergleichbare Erweiterung „Virtualization Technology“ oder „Intel VT“ und ist seit dem Pentium-4-Modell 662 verfügbar. Allerdings kann es vorkommen, dass bei Notebook- CPUs die Virtualisierungserweiterungen deaktiviert sind. Genauen Aufschluss darüber, was eine CPU kann, gibt die Freeware CPU-Z.

Nach dem Start des Programms, das zunächst eine Installation erfordert, finden Sie unter „CPU -> Instructions“ die Kürzel aller unterstützten Befehlssatzerweiterungen. Bei Intel-CPUs weist das Kürzel „VT-x“ und bei AMD-Prozessoren die Angabe „AMD-V“ Virtualisierungsunterstützung aus. Beachten Sie, dass Sie diese Erweiterung in den Bios- beziehungsweise Uefi-Einstellungen des PCs zumeist noch aktivieren müssen.