X86-Virtualisierung: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 4: Zeile 4:
 
* Ziel: Gastbetriebssysteme bemerken keinen Unterschied zwischen virtueller und physischer Hardware.
 
* Ziel: Gastbetriebssysteme bemerken keinen Unterschied zwischen virtueller und physischer Hardware.
  
= Grundlagen des VT-Modells =
+
= VT-x Ausführungs- und Privilegienmodell =
 +
 
 +
== Übersicht ==
 +
Intel VT-x führt zwei grundlegende Betriebsmodi ein:
 +
 
 +
* '''VMX Root Mode''': Hier läuft der Hypervisor (auch Virtual Machine Monitor, VMM). Dieser Modus besitzt die höchste Kontrolle über die Hardware.
 +
* '''VMX Non-Root Mode''': Hier laufen die virtuellen Maschinen (VMs) mit ihren Gastbetriebssystemen.
 +
 
 +
Ziel dieser Trennung ist es, Gastbetriebssysteme nahezu unverändert auszuführen, während der Hypervisor privilegierte Steuer- und Verwaltungsaufgaben übernimmt.
 +
 
 +
== Bild 1: Architektur und Ablauf ==
 +
[[Datei:th.jpeg|zentriert]]
 +
 
 +
Dieses Bild zeigt die **Gesamtabfolge der Ausführungsebenen und Übergänge**:
 +
 
 +
* Unten befindet sich die CPU mit aktivierter VT-x Unterstützung.
 +
* Der Hypervisor (VMM) läuft im '''VMX Root Mode'''. Er hat vollständigen Zugriff auf alle Ressourcen.
 +
* Virtuelle Maschinen laufen im '''VMX Non-Root Mode'''. Jede VM enthält:
 +
** Ein Gastbetriebssystem (beispielsweise Windows oder Linux), das aus seiner Sicht im Ring 0 läuft.
 +
** Anwendungen, die innerhalb der VM im Ring 3 laufen.
 +
* Die Kommunikation zwischen VMs und dem Hypervisor erfolgt über:
 +
** '''VM Entry''': Wechsel von Hypervisor (VMX Root) in die VM (VMX Non-Root).
 +
** '''VM Exit''': Rücksprung von der VM in den Hypervisor, z.B. bei privilegierten Befehlen.
 +
 
 +
Diese Darstellung zeigt die **technische Ablaufarchitektur und den Wechsel zwischen den Modi**.
 +
 
 +
== Bild 2: Schutzringe innerhalb der Modi ==
 
[[Datei:Vt-ring.drawio.png|zentriert]]
 
[[Datei:Vt-ring.drawio.png|zentriert]]
  
== VMX Root-Modus (Hypervisor) ==
+
Dieses Bild zeigt die **Privilegienebenen innerhalb der beiden Modi**:
* Der Hypervisor läuft im VMX Root-Modus (auch „Ring -1“ genannt).
+
 
* Er hat die höchste Kontrollstufe und überwacht alle virtuellen Maschinen.
+
=== VMX Root Mode ===
* Er besitzt exklusiven Zugriff auf CPU, Speicher und Geräte und teilt diese den virtuellen Maschinen zu.
+
* Wird ausschließlich vom Hypervisor genutzt.
* Privilegierte Operationen der Gastbetriebssysteme werden hierher weitergeleitet und ggf. emuliert.
+
* Innerhalb dieses Modus könnte der Hypervisor prinzipiell die Schutzringe 0–3 verwenden, in der Praxis nutzt er jedoch Ring 0 für höchste Rechte.
 +
 
 +
=== VMX Non-Root Mode ===
 +
* Wird von den virtuellen Maschinen genutzt.
 +
* Innerhalb einer VM:
 +
** Das Gastbetriebssystem läuft im '''Ring 0''' der VM.
 +
** Anwendungen laufen im '''Ring 3''' der VM.
 +
* Obwohl das Gastbetriebssystem glaubt, auf echter Hardware mit Ring-0-Rechten zu laufen, wird es durch die Virtualisierung eingeschränkt. Privilegierte Befehle führen zu einem '''VM Exit'''.
  
== VMX Non-Root-Modus (Virtuelle Maschinen) ==
+
Diese Darstellung zeigt die **Privilegierung innerhalb der jeweiligen Betriebsmodi** und macht deutlich, dass der Gastkernel zwar im Ring 0 läuft, aber nicht auf der gleichen Ebene wie der Hypervisor im VMX Root Mode.
* Gastbetriebssysteme laufen isoliert in virtuellen Maschinen im VMX Non-Root-Modus.
 
* Sie verhalten sich, als würden sie direkt auf der Hardware laufen (nahezu native Geschwindigkeit).
 
* Kritische Operationen (z.B. Zugriff auf Hardware) werden vom Hypervisor abgefangen und geprüft („Trap-and-Emulate“).
 
  
 
= Funktionsweise verständlich erklärt =
 
= Funktionsweise verständlich erklärt =

Version vom 3. Mai 2025, 07:44 Uhr

Was ist x86-Virtualisierung?

  • Techniken zur parallelen Ausführung mehrerer Betriebssysteme auf x86-Prozessoren.
  • Ein Hypervisor ermöglicht die effiziente und isolierte Nutzung physischer Ressourcen.
  • Ziel: Gastbetriebssysteme bemerken keinen Unterschied zwischen virtueller und physischer Hardware.

VT-x Ausführungs- und Privilegienmodell

Übersicht

Intel VT-x führt zwei grundlegende Betriebsmodi ein:

  • VMX Root Mode: Hier läuft der Hypervisor (auch Virtual Machine Monitor, VMM). Dieser Modus besitzt die höchste Kontrolle über die Hardware.
  • VMX Non-Root Mode: Hier laufen die virtuellen Maschinen (VMs) mit ihren Gastbetriebssystemen.

Ziel dieser Trennung ist es, Gastbetriebssysteme nahezu unverändert auszuführen, während der Hypervisor privilegierte Steuer- und Verwaltungsaufgaben übernimmt.

Bild 1: Architektur und Ablauf

Dieses Bild zeigt die **Gesamtabfolge der Ausführungsebenen und Übergänge**:

  • Unten befindet sich die CPU mit aktivierter VT-x Unterstützung.
  • Der Hypervisor (VMM) läuft im VMX Root Mode. Er hat vollständigen Zugriff auf alle Ressourcen.
  • Virtuelle Maschinen laufen im VMX Non-Root Mode. Jede VM enthält:
    • Ein Gastbetriebssystem (beispielsweise Windows oder Linux), das aus seiner Sicht im Ring 0 läuft.
    • Anwendungen, die innerhalb der VM im Ring 3 laufen.
  • Die Kommunikation zwischen VMs und dem Hypervisor erfolgt über:
    • VM Entry: Wechsel von Hypervisor (VMX Root) in die VM (VMX Non-Root).
    • VM Exit: Rücksprung von der VM in den Hypervisor, z.B. bei privilegierten Befehlen.

Diese Darstellung zeigt die **technische Ablaufarchitektur und den Wechsel zwischen den Modi**.

Bild 2: Schutzringe innerhalb der Modi

Vt-ring.drawio.png

Dieses Bild zeigt die **Privilegienebenen innerhalb der beiden Modi**:

VMX Root Mode

  • Wird ausschließlich vom Hypervisor genutzt.
  • Innerhalb dieses Modus könnte der Hypervisor prinzipiell die Schutzringe 0–3 verwenden, in der Praxis nutzt er jedoch Ring 0 für höchste Rechte.

VMX Non-Root Mode

  • Wird von den virtuellen Maschinen genutzt.
  • Innerhalb einer VM:
    • Das Gastbetriebssystem läuft im Ring 0 der VM.
    • Anwendungen laufen im Ring 3 der VM.
  • Obwohl das Gastbetriebssystem glaubt, auf echter Hardware mit Ring-0-Rechten zu laufen, wird es durch die Virtualisierung eingeschränkt. Privilegierte Befehle führen zu einem VM Exit.

Diese Darstellung zeigt die **Privilegierung innerhalb der jeweiligen Betriebsmodi** und macht deutlich, dass der Gastkernel zwar im Ring 0 läuft, aber nicht auf der gleichen Ebene wie der Hypervisor im VMX Root Mode.

Funktionsweise verständlich erklärt

Stelle dir einen Rechner vor, auf dem mehrere Betriebssysteme gleichzeitig laufen:

Hypervisor

  • Ist der zentrale „Manager“, kontrolliert alle Ressourcen.
  • Verteilt Hardware-Ressourcen an virtuelle Maschinen.

Virtuelle Maschinen

  • Laufen isoliert, wie eigenständige physische Rechner.
  • Arbeiten schnell und effizient, fühlen sich „echt“ an.
  • Können keine kritischen Hardware-Einstellungen direkt verändern, dies kontrolliert der Hypervisor.

Softwarebasierte Virtualisierung (klassische Methode)

  • Ohne spezielle Prozessorunterstützung.
  • Hypervisor kontrolliert Hardwarezugriff alleine.
  • Gastbetriebssysteme besitzen eingeschränkte Rechte und werden „deprivilegiert“ ausgeführt.
  • Hoher Aufwand durch häufiges Abfangen und Emulieren privilegierter Operationen.

Modernes Privilegienmodell (VT-x/AMD-V)

Historisches Modell (Protected Mode)

  • Vier Schutzringe (Ringe 0 bis 3).
  • Betriebssystem läuft auf Ring 0 (höchste Privilegien).
  • Anwendungen laufen auf Ring 3 (geringste Privilegien).
  • Ring 1 und 2 kaum genutzt.

Aktuelles VT-x/AMD-V-Modell

  • Spezielle Prozessorerweiterungen bieten zwei neue Betriebsmodi:
    • VMX Root-Modus („Ring -1“): Der Hypervisor besitzt absolute Kontrolle über Hardware.
    • VMX Non-Root-Modus („virtueller Ring 0“): Gastbetriebssystem läuft scheinbar auf höchster Ebene, tatsächlich jedoch eingeschränkt.
  • Anwendungen innerhalb der VM weiterhin auf Ring 3.
  • Weniger Emulation nötig, deutlich höhere Leistung als rein softwarebasierte Methoden.

Hardwareerweiterungen

Intel VT-x

  • Codename „Vanderpool“.
  • Hardware-unterstütztes „Trap-and-Emulate“-Verfahren.
  • Beschleunigung der Virtualisierung durch direkte Prozessorunterstützung.

AMD-V

  • Codename „Pacifica“.
  • Hardwarebasierte Unterstützung für effiziente Virtualisierung.
  • Vergleichbare Funktionsweise zu VT-x.

Praxis-Beispiele

  • KVM (Kernel-based Virtual Machine, Linux)
  • VMware vSphere (ESXi)
  • Microsoft Hyper-V
  • Citrix XenServer

Weiterführende Informationen