virtualisierung in mikrokern–basierten systemen

Werbung
Fakultät Informatik Institut für Systemarchitektur, Professur Betriebssysteme
VIRTUALISIERUNG IN
MIKROKERN–BASIERTEN
SYSTEMEN
Henning Schild
Dresden, 5.2.2009
Definition
• Einführung von Abstraktionsschichten zwischen physischen Ressourcen
und Anwendern bzw. Anwendungen.
– Partitionierung einzelner Ressourcen
– Zusammenfassung mehrerer Ressourcen
– und Kombinationen
TU Dresden, 5.2.2009
Folie 2 von 14
Virtualisierung in der Praxis
• Multitasking
– Betriebssystem als Abstraktionsschicht
– Partitionierung einer Maschine: Zeitscheiben, virtueller Speicher
• Anwendungs–Virtualisierung
– Unix chroot Umgebung
– FreeBSD Jails, Solaris Zones, Linux VServer
– Wine
• ...
• mehrere Betriebssysteme auf einer Maschine
– VMWare, QEMU, VirtualBox
– UML, Xen, L4 Linux
TU Dresden, 5.2.2009
Folie 3 von 14
Motivation
• erhöhte Auslastung
– Serverkonsolidierung
• Wiederverwendung vorhandener Software
– z.B: Windows auf Linux
• Isolation
– Sicherheitsgründe
– Unverträglichkeit von Anwendungen
• Entwicklung
– virtuelle Testrechner für BS–Entwicklung
TU Dresden, 5.2.2009
Folie 4 von 14
Geschichte
• wird schon seit den 1970er Jahren eingesetzt
– IBM Mainframes
• Virtualisierung boomt in jüngster Vergangenheit (1990er Jahre)
– X86–Hardware weit verbreitet, billig und leistungsstark
– Hardware–Unterstützung in aktuellen Intel und AMD CPUs
TU Dresden, 5.2.2009
Folie 5 von 14
Formale Anforderungen
• Äquivalenz
– Gast–Betriebssystem und Anwendungen sollen sich verhalten wie
auf realer Maschine
• Isolation
– Host kontrolliert jeglichen Zugriff auf Ressourcen und isoliert Gäste
voneinander
• Effizienz
– Gast–Code sollte möglichst direkt auf der Maschine ausgeführt
werden
TU Dresden, 5.2.2009
Folie 6 von 14
Techniken
• Emulation
• Paravirtualisierung
• Vollständige Virtualisierung
TU Dresden, 5.2.2009
Folie 7 von 14
Emulation
•
•
•
•
•
Interpretation oder Übersetzung von Gast–Code
Hardware–Architekturen von Gast und Host können sich unterscheiden
Isolation und Äquivalenz werden erreicht
nicht effizient (Verlangsamung um Faktor 10 bis 20)
Beispiele
– Bochs
– QEMU
TU Dresden, 5.2.2009
Folie 8 von 14
Paravirtualisierung
•
•
•
•
•
•
•
Anpassung des Gast–Betriebssystems für die Virtualisierung
Gast–BS läuft im Nutzermodus auf dem Host–BS
Zugriff auf Quellcode nötig
hoher Entwicklungs– und Wartungsaufwand
alle formalen Anforderungen können erfüllt werden
sehr effizient
Beispiele
– L4 Linux
– UML
– Xen
TU Dresden, 5.2.2009
Folie 9 von 14
Vollständige Virtualisierung
•
•
•
•
•
•
•
direkte Ausführung von unmodifizierten Gast–BS auf der Maschine
kein Zugriff auf Quellcode nötig
Verwendung beliebiger Gast–Betriebssysteme
Isolation und Äquivalenz auf X86–Hardware nicht einfach umsetzbar
Abhilfe durch Hardware–Erweiterungen
hohe Effizienz durch direkte Ausführung
Beispiele
– VMware
– VirtualBox
– KVM
– kqemu
TU Dresden, 5.2.2009
Folie 10 von 14
Mikrokern–basierte Systeme
• Mikrokern
– nur die nötigste Funktionalität im Kern
• Isolation (Prozesse)
• Kommunikation (IPC)
• keine Gerätetreiber, Dateisysteme oder Protokollstacks
• Multi–Server Umgebung
– Dienste im Nutzermodus in einzelnen Servern
• Gerätetreiber
• Speicherverwaltung
• Eigenschaften
– sehr gute Basis für sichere, robuste und vertrauenswürdige Systeme
– Codebasis für Anwendungen enthält nur benötigte Funktionalität
– Komponenten können ausgetauscht werden
TU Dresden, 5.2.2009
Folie 11 von 14
L4 Linux
Trusted Computing Base
Secure
Pinpad
App
paraVM
Trusted
Viewer
App
Linux App
Linux App
Linux App
Web
Browser
Office
Suite
Compiler
Key Management & Signature
L4Linux
Secure Base Infrastructure
Loader
Memory
Mgr
Secure
GUI
CPU
Mgr
Naming
Service
Device
Mgr
Microkernel / Hypervisor
TU Dresden, 5.2.2009
Folie 12 von 14
KVM–L4
paraVM
Trusted Computing Base
Secure
Pinpad
App
Trusted
Viewer
App
Key Management & Signature
VM
Linux App
Legacy
App
Legacy
LegacyApp
App
Full
Featured
Web
Browser
Legacy OS
QEMU
L4Linux/KVM-L4
Secure Base Infrastructure
Loader
Memory
Mgr
Secure
GUI
CPU
Mgr
Naming
Service
Device
Mgr
Microkernel / Hypervisor
TU Dresden, 5.2.2009
Folie 13 von 14
Weiterführende Informationen
• Virtualisierung ausprobieren
– VirtualBox für Windows/Linux/MacOS
– KVM für Linux
• Vorlesungen im Hauptstudium
– Mikrokernbasierte Betriebssysteme
• Publikationen
– Popek, Gerald J. ; Goldberg, Robert P.: Formal requirements for
virtualizable third generation architectures. In: Commun. ACM 17
(1974)
– Barham, Paul ; Dragovic, Boris ; Fraser, Keir ; Hand, Steven ;
Harris, Tim ; Ho, Alex ; Neugebauer, Rolf ; Pratt, Ian ; Warfield,
Andrew: Xen and the art of virtualization. In: SIGOPS Oper. Syst.
Rev. 37 (2003)
TU Dresden, 5.2.2009
Folie 14 von 14
Herunterladen