X86-Virtualisierung: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 15: Zeile 15:
  
 
== Architektur und Ablauf ==
 
== Architektur und Ablauf ==
[[Datei:th.jpeg|zentriert]]
+
{{#drawio:Ausführungsebenen}}
  
Dieses Bild zeigt die **Gesamtabfolge der Ausführungsebenen und Übergänge**:
+
Dieses Bild zeigt die '''Gesamtabfolge der Ausführungsebenen und Übergänge''':
  
 
* Unten befindet sich die CPU mit aktivierter VT-x Unterstützung.
 
* Unten befindet sich die CPU mit aktivierter VT-x Unterstützung.
Zeile 28: Zeile 28:
 
** '''VM Exit''': Rücksprung von der VM in den Hypervisor, z.B. bei privilegierten Befehlen.
 
** '''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**.
+
Diese Darstellung zeigt die '''technische Ablaufarchitektur und den Wechsel zwischen den Modi'''.
 +
 
 +
== Komponenten im VMX Root Mode (Details zur Architektur) ==
 +
 
 +
=== VMCS (Virtual Machine Control Structure) ===
 +
* Spezielle Datenstruktur für jede VM, die ihren Zustand verwaltet.
 +
* Enthält:
 +
** Gastzustand (Register, Speicherverwaltung)
 +
** Hostzustand (für VM Exit)
 +
** Steuerinformationen (VM Exit Ursachen)
 +
* Aktiv genutzt bei jedem VM Entry und Exit.
 +
 
 +
=== H/W VM Control Structure (VMCS) ===
 +
* Physischer Speicherbereich in der CPU für die VMCS.
 +
* Ermöglicht schnellen Wechsel zwischen Hypervisor und VM.
 +
* Minimiert die Umschaltzeit zwischen Root und Non-Root Modus.
 +
 
 +
=== Memory and I/O Virtualization ===
 +
* Bestandteil des Hypervisors im Root Mode.
 +
* Aufgaben:
 +
** Speicherisolation zwischen VMs.
 +
** Adressübersetzung (Second Level Address Translation, z.B. EPT).
 +
** Emulation oder Weiterleitung von I/O-Zugriffen.
 +
* Schutz vor unerlaubtem Zugriff der VMs untereinander und auf den Hypervisor.
  
 
== Schutzringe innerhalb der Modi ==
 
== Schutzringe innerhalb der Modi ==
[[Datei:Vt-ring.drawio.png]]
+
{{#drawio:vt-ring}}
  
Dieses Bild zeigt die **Privilegienebenen innerhalb der beiden Modi**:
+
Dieses Bild zeigt die '''Privilegienebenen innerhalb der beiden Modi''':
  
 
=== VMX Root Mode ===
 
=== VMX Root Mode ===
* Wird ausschließlich vom Hypervisor genutzt.
+
* Wird 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.
+
* Innerhalb des Root Modes könnte der Hypervisor theoretisch die Ringe 0–3 verwenden, nutzt aber faktisch Ring 0.
  
 
=== VMX Non-Root Mode ===
 
=== VMX Non-Root Mode ===
 
* Wird von den virtuellen Maschinen genutzt.
 
* Wird von den virtuellen Maschinen genutzt.
* Innerhalb einer VM:
+
* Gastbetriebssystem läuft im '''Ring 0''' innerhalb der VM.
** Das Gastbetriebssystem läuft im '''Ring 0''' der VM.
+
* Anwendungen laufen im '''Ring 3''' innerhalb der VM.
** Anwendungen laufen im '''Ring 3''' der VM.
+
* Kritische Operationen führen zu einem '''VM Exit'''.
* 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.
+
Diese Darstellung zeigt die Trennung der Privilegienstufen zwischen Hypervisor und Gastbetriebssystemen.
  
 
= Funktionsweise verständlich erklärt =
 
= Funktionsweise verständlich erklärt =
Zeile 52: Zeile 74:
  
 
== Hypervisor ==
 
== Hypervisor ==
* Ist der zentrale „Manager“, kontrolliert alle Ressourcen.
+
* Zentrale Steuerinstanz, die alle Ressourcen kontrolliert.
* Verteilt Hardware-Ressourcen an virtuelle Maschinen.
+
* Zuweisung von CPU, Speicher und Geräten an VMs.
  
 
== Virtuelle Maschinen ==
 
== Virtuelle Maschinen ==
* Laufen isoliert, wie eigenständige physische Rechner.
+
* Laufen isoliert wie eigenständige physische Rechner.
* Arbeiten schnell und effizient, fühlen sich „echt“ an.
+
* Führen Gastbetriebssysteme und Anwendungen aus.
* Können keine kritischen Hardware-Einstellungen direkt verändern, dies kontrolliert der Hypervisor.
+
* Zugriff auf kritische Ressourcen wird vom Hypervisor gesteuert.
  
 
= Softwarebasierte Virtualisierung (klassische Methode) =
 
= Softwarebasierte Virtualisierung (klassische Methode) =
* Ohne spezielle Prozessorunterstützung.
+
* Keine spezielle Prozessorunterstützung.
* Hypervisor kontrolliert Hardwarezugriff alleine.
+
* Hypervisor kontrolliert Hardwarezugriff direkt.
* Gastbetriebssysteme besitzen eingeschränkte Rechte und werden „deprivilegiert“ ausgeführt.
+
* Gastbetriebssysteme laufen deprivilegiert.
* Hoher Aufwand durch häufiges Abfangen und Emulieren privilegierter Operationen.
+
* Höherer Overhead durch häufiges Abfangen von Befehlen.
  
 
= Modernes Privilegienmodell (VT-x/AMD-V) =
 
= Modernes Privilegienmodell (VT-x/AMD-V) =
 
== Historisches Modell (Protected Mode) ==
 
== Historisches Modell (Protected Mode) ==
* Vier Schutzringe (Ringe 0 bis 3).
+
* Vier Schutzringe (Ring 0–3).
* Betriebssystem läuft auf Ring 0 (höchste Privilegien).
+
* Betriebssystem läuft auf Ring 0.
* Anwendungen laufen auf Ring 3 (geringste Privilegien).
+
* Anwendungen laufen auf Ring 3.
* Ring 1 und 2 kaum genutzt.
+
* Ringe 1 und 2 wurden selten genutzt.
  
 
== Aktuelles VT-x/AMD-V-Modell ==
 
== Aktuelles VT-x/AMD-V-Modell ==
* Spezielle Prozessorerweiterungen bieten zwei neue Betriebsmodi:
+
* Zwei Betriebsmodi durch Prozessorerweiterungen:
** '''VMX Root-Modus''' („Ring -1“): Der Hypervisor besitzt absolute Kontrolle über Hardware.
+
** '''VMX Root Mode''' („Ring -1“): Hypervisor mit voller Kontrolle.
** '''VMX Non-Root-Modus''' („virtueller Ring 0“): Gastbetriebssystem läuft scheinbar auf höchster Ebene, tatsächlich jedoch eingeschränkt.
+
** '''VMX Non-Root Mode''' („virtueller Ring 0“): Gastbetriebssystem eingeschränkt.
* Anwendungen innerhalb der VM weiterhin auf Ring 3.
+
* Anwendungen innerhalb der VM bleiben in Ring 3.
* Weniger Emulation nötig, deutlich höhere Leistung als rein softwarebasierte Methoden.
+
* Deutlich geringerer Overhead und höhere Effizienz.
  
 
= Hardwareerweiterungen =
 
= Hardwareerweiterungen =
 
== Intel VT-x ==
 
== Intel VT-x ==
 
* Codename „Vanderpool“.
 
* Codename „Vanderpool“.
* Hardware-unterstütztes „Trap-and-Emulate“-Verfahren.
+
* Einführung des VMX Root/Non-Root Modes.
* Beschleunigung der Virtualisierung durch direkte Prozessorunterstützung.
+
* Unterstützung von „Trap-and-Emulate“ für privilegierte Befehle.
  
 
== AMD-V ==
 
== AMD-V ==
 
* Codename „Pacifica“.
 
* Codename „Pacifica“.
* Hardwarebasierte Unterstützung für effiziente Virtualisierung.
+
* Vergleichbare Technik zu VT-x.
* Vergleichbare Funktionsweise zu VT-x.
+
* Unterstützung für Ring Aliasing und effizientere Virtualisierung.
  
 
= Praxis-Beispiele =
 
= Praxis-Beispiele =
Zeile 100: Zeile 122:
 
* [https://tuxthink.blogspot.com/2011/12/kvm-introduction.html Einführung in KVM (tuxthink)]
 
* [https://tuxthink.blogspot.com/2011/12/kvm-introduction.html Einführung in KVM (tuxthink)]
 
* [https://wiki.archlinux.org/title/KVM Arch Linux KVM Wiki]
 
* [https://wiki.archlinux.org/title/KVM Arch Linux KVM Wiki]
 +
==Präsentation==
 +
*https://hedgedoc.xinux.net/p/sC9T6-hrS#/
 +
[[Kategorie:Virtualisierung]]

Aktuelle Version vom 5. Mai 2025, 05:13 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.

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.

Komponenten im VMX Root Mode (Details zur Architektur)

VMCS (Virtual Machine Control Structure)

  • Spezielle Datenstruktur für jede VM, die ihren Zustand verwaltet.
  • Enthält:
    • Gastzustand (Register, Speicherverwaltung)
    • Hostzustand (für VM Exit)
    • Steuerinformationen (VM Exit Ursachen)
  • Aktiv genutzt bei jedem VM Entry und Exit.

H/W VM Control Structure (VMCS)

  • Physischer Speicherbereich in der CPU für die VMCS.
  • Ermöglicht schnellen Wechsel zwischen Hypervisor und VM.
  • Minimiert die Umschaltzeit zwischen Root und Non-Root Modus.

Memory and I/O Virtualization

  • Bestandteil des Hypervisors im Root Mode.
  • Aufgaben:
    • Speicherisolation zwischen VMs.
    • Adressübersetzung (Second Level Address Translation, z.B. EPT).
    • Emulation oder Weiterleitung von I/O-Zugriffen.
  • Schutz vor unerlaubtem Zugriff der VMs untereinander und auf den Hypervisor.

Schutzringe innerhalb der Modi

Dieses Bild zeigt die Privilegienebenen innerhalb der beiden Modi:

VMX Root Mode

  • Wird vom Hypervisor genutzt.
  • Innerhalb des Root Modes könnte der Hypervisor theoretisch die Ringe 0–3 verwenden, nutzt aber faktisch Ring 0.

VMX Non-Root Mode

  • Wird von den virtuellen Maschinen genutzt.
  • Gastbetriebssystem läuft im Ring 0 innerhalb der VM.
  • Anwendungen laufen im Ring 3 innerhalb der VM.
  • Kritische Operationen führen zu einem VM Exit.

Diese Darstellung zeigt die Trennung der Privilegienstufen zwischen Hypervisor und Gastbetriebssystemen.

Funktionsweise verständlich erklärt

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

Hypervisor

  • Zentrale Steuerinstanz, die alle Ressourcen kontrolliert.
  • Zuweisung von CPU, Speicher und Geräten an VMs.

Virtuelle Maschinen

  • Laufen isoliert wie eigenständige physische Rechner.
  • Führen Gastbetriebssysteme und Anwendungen aus.
  • Zugriff auf kritische Ressourcen wird vom Hypervisor gesteuert.

Softwarebasierte Virtualisierung (klassische Methode)

  • Keine spezielle Prozessorunterstützung.
  • Hypervisor kontrolliert Hardwarezugriff direkt.
  • Gastbetriebssysteme laufen deprivilegiert.
  • Höherer Overhead durch häufiges Abfangen von Befehlen.

Modernes Privilegienmodell (VT-x/AMD-V)

Historisches Modell (Protected Mode)

  • Vier Schutzringe (Ring 0–3).
  • Betriebssystem läuft auf Ring 0.
  • Anwendungen laufen auf Ring 3.
  • Ringe 1 und 2 wurden selten genutzt.

Aktuelles VT-x/AMD-V-Modell

  • Zwei Betriebsmodi durch Prozessorerweiterungen:
    • VMX Root Mode („Ring -1“): Hypervisor mit voller Kontrolle.
    • VMX Non-Root Mode („virtueller Ring 0“): Gastbetriebssystem eingeschränkt.
  • Anwendungen innerhalb der VM bleiben in Ring 3.
  • Deutlich geringerer Overhead und höhere Effizienz.

Hardwareerweiterungen

Intel VT-x

  • Codename „Vanderpool“.
  • Einführung des VMX Root/Non-Root Modes.
  • Unterstützung von „Trap-and-Emulate“ für privilegierte Befehle.

AMD-V

  • Codename „Pacifica“.
  • Vergleichbare Technik zu VT-x.
  • Unterstützung für Ring Aliasing und effizientere Virtualisierung.

Praxis-Beispiele

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

Weiterführende Informationen

Präsentation