X86-Virtualisierung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 45: | Zeile 45: | ||
*Ring Aliasing | *Ring Aliasing | ||
*Ring Deprevilegierung | *Ring Deprevilegierung | ||
| + | =Links= | ||
| + | *https://tuxthink.blogspot.com/2011/12/kvm-introduction.html | ||
Version vom 23. März 2022, 07:15 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
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
