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