X86-Virtualisierung: Unterschied zwischen den Versionen
| Zeile 4: | Zeile 4: | ||
* Ziel: Gastbetriebssysteme bemerken keinen Unterschied zwischen virtueller und physischer Hardware. | * 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 == | ||
| + | [[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 | + | 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 = | = 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
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
