X86-Virtualisierung: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=Was ist x86-Virtualisierung?=
+
= Was ist x86-Virtualisierung? =
*hardware- und softwarebasierte Mechanismen zur Unterstützung der Virtualisierung für Prozessoren, die auf der x86-Architektur basieren.
+
* Techniken zur parallelen Ausführung mehrerer Betriebssysteme auf x86-Prozessoren.
*Unter Verwendung eines Hypervisors kann man mehrere Betriebssysteme parallel auf einem x86-Prozessor auszuführen
+
* Ein Hypervisor ermöglicht die effiziente und isolierte Nutzung physischer Ressourcen.
*Man kann die Ressourcen isoliert und effizient zwischen den parallel ausgeführten Betriebssystemen aufteilen.
+
* Ziel: Gastbetriebssysteme bemerken keinen Unterschied zwischen virtueller und physischer Hardware.
*Die (Gast-)Betriebssysteme sollten keinen Unterschied zwischen virtualisiertem und den Betrieb direkt auf der Hardware erkennen können.
+
 
=VT Modell=
+
= VT-x Ausführungs- und Privilegienmodell =
{{#drawio:vt-ring}}
+
 
== Vorstellung der Hauptkomponenten der modernen Virtualisierungsarchitektur ==
+
== Ü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 ==
 +
{{#drawio:Ausführungsebenen}}
 +
 
 +
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.
  
=== VMX Root Operation (für den Hypervisor) ===
+
=== 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.
  
====Der Hypervisor läuft in diesem Modus====
+
== Schutzringe innerhalb der Modi ==
* Der Hypervisor ist eine spezielle Software-Schicht, die direkt auf der Hardware läuft.
+
{{#drawio:vt-ring}}
* In diesem Modus hat der Hypervisor die höchste Kontrollstufe über das System.
 
  
==== Vollständiger Zugriff auf die Hardware====
+
Dieses Bild zeigt die '''Privilegienebenen innerhalb der beiden Modi''':
** Der Hypervisor kann alle Hardware-Komponenten direkt ansprechen und kontrollieren, z.B. CPU, Speicher, Netzwerkschnittstellen.
 
** Er verwaltet die Zuweisung dieser Ressourcen an die virtuellen Maschinen.
 
  
====Ausführen privilegierter Befehle====
+
=== VMX Root Mode ===
* Privilegierte Befehle sind solche, die spezielle Zugriffsrechte erfordern, wie z.B. Änderungen an den Systemeinstellungen oder direkten Hardwarezugriff.
+
* Wird vom Hypervisor genutzt.
* Im Root-Modus kann der Hypervisor alle diese Befehle uneingeschränkt ausführen.
+
* Innerhalb des Root Modes könnte der Hypervisor theoretisch die Ringe 0–3 verwenden, nutzt aber faktisch Ring 0.
  
=== VMX Non-Root Operation (für virtuelle Maschinen) ===
+
=== 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'''.
  
==== Virtuelle Maschinen (VMs) laufen in diesem Modus====
+
Diese Darstellung zeigt die Trennung der Privilegienstufen zwischen Hypervisor und Gastbetriebssystemen.
* Jede VM läuft in einer isolierten Umgebung im Non-Root-Modus.
 
* VMs sind in der Lage, Betriebssysteme und Anwendungen so auszuführen, als würden sie auf einer eigenen, physischen Hardware laufen.
 
  
====Nahezu native Geschwindigkeit====
+
= Funktionsweise verständlich erklärt =
* Die meisten Operationen, die eine VM durchführt, laufen direkt auf der Hardware ab, was zu einer sehr hohen Ausführungsgeschwindigkeit führt.
+
Stelle dir einen Rechner vor, auf dem mehrere Betriebssysteme gleichzeitig laufen:
* Dadurch fühlen sich die Anwendungen in der VM an, als würden sie direkt auf der Hardware laufen.
 
  
==== Abfangen und Emulieren privilegierter Befehle====
+
== Hypervisor ==
* Wenn eine VM einen privilegierten Befehl ausführt, wird dieser Befehl vom Hypervisor abgefangen (Trap).
+
* Zentrale Steuerinstanz, die alle Ressourcen kontrolliert.
* Der Hypervisor überprüft und emuliert dann die Ausführung dieses Befehls, um sicherzustellen, dass er keine negativen Auswirkungen auf andere VMs oder das Host-System hat (Emulate).
+
* Zuweisung von CPU, Speicher und Geräten an VMs.
  
== Visualisierung der Funktionsweise ==
+
== Virtuelle Maschinen ==
 +
* Laufen isoliert wie eigenständige physische Rechner.
 +
* Führen Gastbetriebssysteme und Anwendungen aus.
 +
* Zugriff auf kritische Ressourcen wird vom Hypervisor gesteuert.
  
Stellen Sie sich einen modernen Computer vor, der mehrere Betriebssysteme gleichzeitig ausführt.
+
= Softwarebasierte Virtualisierung (klassische Methode) =
 +
* Keine spezielle Prozessorunterstützung.
 +
* Hypervisor kontrolliert Hardwarezugriff direkt.
 +
* Gastbetriebssysteme laufen deprivilegiert.
 +
* Höherer Overhead durch häufiges Abfangen von Befehlen.
  
====Hypervisor (im Root-Modus)====
+
= Modernes Privilegienmodell (VT-x/AMD-V) =
* Er ist der „Manager“ des Systems, der darüber entscheidet, wie die Hardware-Ressourcen aufgeteilt werden.
+
== Historisches Modell (Protected Mode) ==
* Er hat die volle Kontrolle und kann alles ändern und verwalten.
+
* Vier Schutzringe (Ring 0–3).
 +
* Betriebssystem läuft auf Ring 0.
 +
* Anwendungen laufen auf Ring 3.
 +
* Ringe 1 und 2 wurden selten genutzt.
  
====Virtuelle Maschinen (im Non-Root-Modus)====
+
== Aktuelles VT-x/AMD-V-Modell ==
* Jede VM ist wie ein eigenständiger Computer, der auf der vom Hypervisor zugewiesenen Hardware läuft.
+
* Zwei Betriebsmodi durch Prozessorerweiterungen:
* Wenn die VM normale Aufgaben ausführt (z.B. eine Datei lesen), geschieht dies fast so schnell wie auf einem echten Computer.
+
** '''VMX Root Mode''' („Ring -1“): Hypervisor mit voller Kontrolle.
* Wenn die VM versucht, etwas Kritisches oder Gefährliches zu tun (z.B. den CPU-Zustand ändern), wird dies vom Hypervisor überprüft und sicher ausgeführt.
+
** '''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.
  
Diese Trennung stellt sicher, dass die VMs sicher und effizient laufen, ohne sich gegenseitig zu beeinflussen, während der Hypervisor die volle Kontrolle über das Gesamtsystem behält.
+
= Hardwareerweiterungen =
 +
== Intel VT-x ==
 +
* Codename „Vanderpool“.
 +
* Einführung des VMX Root/Non-Root Modes.
 +
* Unterstützung von „Trap-and-Emulate“ für privilegierte Befehle.
  
=Softwarebasierte Virtualisierung=
+
== AMD-V ==
*Es darf nur dem Hypervisor direkter Zugriff auf die Prozessor-Hardware gewährt werden
+
* Codename „Pacifica“.
*Gastsysteme wie alle anderen Applikationen dürfen nur eingeschränkte Zugriffsrechte auf die Hardware haben.
+
* Vergleichbare Technik zu VT-x.
*Gastsysteme dürfen keine Speicherbereiche sehen bzw. ändern können, die der Hypervisor zur Verwaltung benötigt.
+
* Unterstützung für Ring Aliasing und effizientere Virtualisierung.
  
=Protected Mode=
+
= Praxis-Beispiele =
*Es gibt vier verschiedene als Ringe bezeichnete Schutzebenen bzw. Befugnisstufen
+
* [[KVM]] (Kernel-based Virtual Machine, Linux)
*Ablaufenden Codesegmenten wird unterschiedliche Rechte gewährt.
+
* VMware vSphere (ESXi)
*Im Protected Mode läuft der Betriebssystem-Kernel in einem höher privilegierten Modus, der als Ring 0 bezeichnet wird
+
* Microsoft Hyper-V
*Applikationen in einem weniger privilegierten Modus, in der Regel entweder Ring 1 oder Ring 3.
+
* Citrix XenServer
*Hypervisor bzw. das Hostbetriebssystem werden aufgrund ihrer privilegierten Stellung bei der Ressourcenverwaltung mit Ring-0-Berechtigung ausgeführt.
 
*Gastsysteme müssen, um den Schutz der Hypervisor-Ressourcen zu gewährleisten, folglich entweder auf Berechtigungslevel Ring 1 oder Ring 3 ausgeführt werden.
 
=Prozessor Erweiterungen=
 
==Intel-Virtualisierungstechnologie (VT-x)==
 
*Codenamen „Vanderpool“ geführt, stellt die schließlich „VT-x“ genannte Technologie Hardwareunterstützung für die Virtualisierung auf Intel-x86-Prozessoren bereit.
 
*Ring Aliasing
 
*Ring Deprevilegierung
 
*Neuerungen durch VT-x ist die Einführung eines weiteren, ausschließlich für die Virtualisierung gedachten Berechtigungskonzepts
 
*Es werden zwei neue Berechtigungslevels „VMX Root Operation“ und „VMX non Root Operation“ eingeführt.
 
*Der Hypervisor wird im „VMX Root Operation“ ausgeführt, VMs dagegen im „VMX non Root Operation“.
 
*In beiden Modi sind Ring-0 bis Ring-3 als Berechtigungen vorhanden
 
*Jedoch können Ring-0-Instruktionen, die im „VMX non Root Operation“ durch VMs ausgeführt werden, nun durch den Hypervisor im „VMX Root Operation“ gefangen werden
 
*Es handelt sich also um eine Implementierung des „trap-and-emulate“-Verfahrens.
 
*Damit ist das Problem der Deprivilegierung gelöst und muss nicht mehr über Binär-Translation softwareseitig implementiert werden.
 
==AMD-Virtualisierung (AMD-V)==
 
*AMD entwickelte die erste Generation von Befehlssatzerweiterungen für die Virtualisierungsunterstützung unter dem Namen „Pacifica“
 
*Ring Aliasing
 
*Ring Deprevilegierung
 
  
=Links=
+
= Weiterführende Informationen =
*https://tuxthink.blogspot.com/2011/12/kvm-introduction.html
+
* [https://tuxthink.blogspot.com/2011/12/kvm-introduction.html Einführung in KVM (tuxthink)]
 +
* [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