X86-Virtualisierung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 8: | Zeile 8: | ||
=VT Modell= | =VT Modell= | ||
{{#drawio:vt-ring}} | {{#drawio:vt-ring}} | ||
| + | *VT-x ist eine CPU-Virtualisierung für die Intel 64- und IA-32-Architektur. | ||
| + | *Für Intels Itanium gibt es VT-I. | ||
| + | *Für die I/O-Virtualisierung gibt es VT-d. | ||
| + | *Unter VT-x arbeitet eine CPU in einem von zwei Modi: Root und Nicht-Root. | ||
| + | *Diese Modi sind orthogonal zu Real, Protected, Long usw. und auch orthogonal zu Privileg-Ringen (0–3). | ||
| + | *Sie bilden sozusagen eine neue „Ebene“. | ||
| + | *Hypervisor wird im Root-Modus ausgeführt und VMs werden im Nicht-Root-Modus ausgeführt. | ||
| + | *Im Nicht-Root-Modus wird CPU-gebundener Code meistens genauso ausgeführt wie im Root-Modus, | ||
| + | *Was bedeutet, dass die CPU-gebundenen Operationen der VM größtenteils mit nativer Geschwindigkeit ausgeführt werden. | ||
| + | *Es hat jedoch keine volle Freiheit. | ||
| + | *Privilegierte Befehle bilden eine Teilmenge aller verfügbaren Befehle auf einer CPU. | ||
| + | *Dies sind Anweisungen, die nur ausgeführt werden können, wenn sich die CPU in einem höher privilegierten Zustand befindet, | ||
| + | *z. aktuelle Berechtigungsebene (CPL) 0 (wobei CPL 3 am wenigsten privilegiert ist). | ||
| + | *Eine Teilmenge dieser privilegierten Anweisungen können wir „globale zustandsändernde“ Anweisungen nennen – diejenigen, die den Gesamtzustand der CPU beeinflussen. | ||
| + | *Beispiele sind solche Befehle, die Takt- oder Interrupt-Register modifizieren oder auf eine Weise in Steuerregister schreiben, die den Betrieb des Root-Modus ändern. | ||
| + | *Diese kleinere Teilmenge sensibler Anweisungen kann der Nicht-Root-Modus nicht ausführen. | ||
=Softwarebasierte Virtualisierung= | =Softwarebasierte Virtualisierung= | ||
Version vom 23. März 2022, 07:56 Uhr
Was ist x86-Virtualisierung?
- hardware- und softwarebasierte Mechanismen zur Unterstützung der Virtualisierung für Prozessoren, die auf der x86-Architektur basieren.
- Unter Verwendung eines Hypervisors kann man mehrere Betriebssysteme parallel auf einem x86-Prozessor auszuführen
- Man kann die Ressourcen isoliert und effizient zwischen den parallel ausgeführten Betriebssystemen aufteilen.
- Die (Gast-)Betriebssysteme sollten keinen Unterschied zwischen virtualisiertem und den Betrieb direkt auf der Hardware erkennen können.
Ring Model
VT Modell
- VT-x ist eine CPU-Virtualisierung für die Intel 64- und IA-32-Architektur.
- Für Intels Itanium gibt es VT-I.
- Für die I/O-Virtualisierung gibt es VT-d.
- Unter VT-x arbeitet eine CPU in einem von zwei Modi: Root und Nicht-Root.
- Diese Modi sind orthogonal zu Real, Protected, Long usw. und auch orthogonal zu Privileg-Ringen (0–3).
- Sie bilden sozusagen eine neue „Ebene“.
- Hypervisor wird im Root-Modus ausgeführt und VMs werden im Nicht-Root-Modus ausgeführt.
- Im Nicht-Root-Modus wird CPU-gebundener Code meistens genauso ausgeführt wie im Root-Modus,
- Was bedeutet, dass die CPU-gebundenen Operationen der VM größtenteils mit nativer Geschwindigkeit ausgeführt werden.
- Es hat jedoch keine volle Freiheit.
- Privilegierte Befehle bilden eine Teilmenge aller verfügbaren Befehle auf einer CPU.
- Dies sind Anweisungen, die nur ausgeführt werden können, wenn sich die CPU in einem höher privilegierten Zustand befindet,
- z. aktuelle Berechtigungsebene (CPL) 0 (wobei CPL 3 am wenigsten privilegiert ist).
- Eine Teilmenge dieser privilegierten Anweisungen können wir „globale zustandsändernde“ Anweisungen nennen – diejenigen, die den Gesamtzustand der CPU beeinflussen.
- Beispiele sind solche Befehle, die Takt- oder Interrupt-Register modifizieren oder auf eine Weise in Steuerregister schreiben, die den Betrieb des Root-Modus ändern.
- Diese kleinere Teilmenge sensibler Anweisungen kann der Nicht-Root-Modus nicht ausführen.
Softwarebasierte Virtualisierung
- Es darf nur dem Hypervisor direkter Zugriff auf die Prozessor-Hardware gewährt werden
- Gastsysteme wie alle anderen Applikationen dürfen nur eingeschränkte Zugriffsrechte auf die Hardware haben.
- Gastsysteme dürfen keine Speicherbereiche sehen bzw. ändern können, die der Hypervisor zur Verwaltung benötigt.
Protected Mode
- Es gibt vier verschiedene als Ringe bezeichnete Schutzebenen bzw. Befugnisstufen
- Ablaufenden Codesegmenten wird unterschiedliche Rechte gewährt.
- Im Protected Mode läuft der Betriebssystem-Kernel in einem höher privilegierten Modus, der als Ring 0 bezeichnet wird
- Applikationen in einem weniger privilegierten Modus, in der Regel entweder Ring 1 oder Ring 3.
- 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.
Deprivilegierung
- x86-Betriebssysteme sind so implementiert, dass sie von der Ring-0-Berechtigung ausgehen
- Um in einer Virtualisierungslösung zu funktionieren müssen zwei Features implementiert sein
- Ring-Deprivilegierung
- Sie sorgt dafür, dass das Gastsystem alle Befehle so ausführen kann, als hätte es Ring-0-Berechtigungen auf der Hardware
- Obwohl es durch die Virtualisierung weniger privilegierte Berechtigungen hat.
- Ring Aliasing
- Es sorgt dafür, dass das Gastsystem, wenn es eine Aktion ausführt, immer die Antwort erhält, die es erhalten würde, wenn der Befehl mit Ring-0-Berechtigungen ausgeführt worden wäre.
- Beispielsweise existiert ein Befehl zur Abfrage des Privilegierungslevels, der mit allen Berechtigungsleveln aufgerufen werden darf.
- Würde ein Gastsystem diesen Befehl ohne Ring Aliasing aufrufen, würde es Ring 1 oder 3 als Antwort erhalten, mit Ring Aliasing erhält es Ring 0
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

