Hardware-basierte Virtualisierung



Ähnliche Dokumente
Hardware-basierte Virtualisierung

Paravirtualisierung (2)

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

Projekt für Systemprogrammierung WS 06/07

Was meinen die Leute eigentlich mit: Grexit?

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Calogero Fontana Fachseminar WS09/10. Virtualisierung

Anwendungsbeispiele Buchhaltung

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Workshop: Eigenes Image ohne VMware-Programme erstellen

Benutzerkonto unter Windows 2000

Betriebssystem-basierte Virtualisierung

Verwendung des Terminalservers der MUG

WIE ERHÖHT MAN DIE EFFIZIENZ DES BESTEHENDEN RECHENZENTRUMS UM 75% AK Data Center - eco e.v. 1. Dezember 2009

Datensicherung. Beschreibung der Datensicherung

Ihr CMS für die eigene Facebook Page - 1

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Persönliches Adressbuch

Bibliotheks-basierte Virtualisierung

Das Festkomitee hat die Abi-Seite neu konzipiert, die nun auf einem (gemieteten) Share Point Server

> Mozilla Firefox 3. Browsereinstellungen optimieren. Übersicht. Stand Juli Seite. Inhalt. 1. Cache und Cookies löschen

Die Post hat eine Umfrage gemacht

Leichte-Sprache-Bilder

Jahresabschluss Finanzbuchhaltung INGARA. Provisorisch und Definitiv. INGARA Version

e-books aus der EBL-Datenbank

Virtuelle Maschinen. von Markus Köbele

Computeria Solothurn

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

Technische Analyse der Zukunft

Den Durchblick haben. VOLKSBANK BAD MÜNDER eg. Online aber sicher: Unsere Produkt- und Sicherheitshotline hilft und informiert

Tipps und Tricks zu Netop Vision und Vision Pro

Wie lizenziert man die Virtualisierung von Windows Desktop Betriebssystemen?

Lehrer: Einschreibemethoden

Installation eines BM-33k6/ISDN pro USB an einem Windows XP-Rechner

TeamSpeak3 Einrichten

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

XEN Virtualisierung und mehr

> Mozilla Firefox 3.5

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

Partitionieren in Vista und Windows 7/8

Hinweis, sofern Sie Probleme beim Download der Excel-Dateien für das LIOS-Makro haben:

icloud nicht neu, aber doch irgendwie anders

Systeme 1. Kapitel 10. Virtualisierung

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Durch Doppelklick auf die Zeile der entsprechenden Schnittstelle gelangt man in die Detaileingabe der Schnittstelle.

FORUM HANDREICHUNG (STAND: AUGUST 2013)

ARCO Software - Anleitung zur Umstellung der MWSt

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

PHPNuke Quick & Dirty

5 Speicherverwaltung. bs-5.1 1

Aufgabe 6 Excel 2013 (Fortgeschrittene) Musterlösung

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Agentur für Werbung & Internet. Schritt für Schritt: Newsletter mit WebEdition versenden

Lizenzierung von Windows Server 2012

Hilfe zur Urlaubsplanung und Zeiterfassung

Outlook-Daten komplett sichern

Herzlich Willkommen bei der nfon GmbH

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Mediumwechsel - VR-NetWorld Software

WLAN Konfiguration. Michael Bukreus Seite 1

Anmeldung und Zugang zum Webinar des Deutschen Bibliotheksverbandes e.v. (dbv)

Der Fahrscheinautomat

4D Server v12 64-bit Version BETA VERSION

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Quick Guide Mitglieder

EasyWk DAS Schwimmwettkampfprogramm

Aufruf der Buchungssystems über die Homepage des TC-Bamberg

Klicken Sie mit einem Doppelklick auf das Symbol Arbeitsplatz auf Ihrem Desktop. Es öffnet sich das folgende Fenster.

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Updatehinweise für die Version forma 5.5.5

GRUNDLEGENDES ZUM EINRICHTEN DES LAPTOP-ABGLEICHS

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Den Fehler session error bei der Kalenderanmeldung beheben:

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem

Sie finden im Folgenden drei Anleitungen, wie Sie sich mit dem Server der Schule verbinden können:

EINE PLATTFORM

Excel-Anwendung Wartungsplan

Video Unlimited -Nutzungsbeschränkungen

VERWALTUNG. Postfächer, Autoresponder, Weiterleitungen, Aliases. Bachstraße 47, 3580 Mödring

Kfz-Versicherung für Fahranfänger. mit der Lizenz zum Fahren

Wenn Sie das T-Online WebBanking das erste Mal nutzen, müssen Sie sich zunächst für den Dienst Mobiles Banking frei schalten lassen.

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Schritt-Schritt-Anleitung zum mobilen PC mit Paragon Drive Copy 10 und VMware Player

Senioren helfen Junioren

Beschreibung Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Windows Server 2012 R2 Essentials & Hyper-V

Einrichten eines HBCI- Zugangs mit Bank X 5.1

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

NEWSLETTER // AUGUST 2015

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

Transkript:

Hardware-basierte Virtualisierung Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 V. Sieh Hardware-basierte Virtualisierung (WS14/15) 1 22

Hardware-basierte Virtualisierung Idee: Host-CPU kann sich selbst perfekt emulieren. Host-CPU emuliert sich selbst in Echtzeit. Nehmen wir doch die... Bedingung (große Einschränkung!): Zu emulierende CPU = Host-CPU. Wichtig/schwierig: Sicherstellen, dass eine laufende VM nicht das Host-OS, andere Applikationen oder andere VMs stören kann. Kritische Instruktionen ausfiltern und auf bekannte Weise emulieren. V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 2 22

Hardware-basierte Virtualisierung Idee nicht neu (z.b. Paper von Popek und Goldberg, 1974, IBM-Mainframes). Neu: 80x86-Erweiterungen, um kritische Instruktionen auszufiltern AMD: Pacifica Intel: Vanderpool (VT-x) V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 3 22

Hardware-basierte Virtualisierung Kritische Befehle Unterscheidung von Befehlen; Beispiele 80x86-Befehle: cli, sti, inb, outb, mov *, %cr*,... : Instruktionen, die im User-Mode der CPU nicht ausgeführt werden können ( Privilege Violation -Exception). Problemlos. popf: Instruktionen, die sich im User-Mode und Supervisor-Mode der CPU anders verhalten. Problematisch! sidt, sgdt,... : nicht-priviligierte Instruktionen, die Informationen abfragen, die emuliert werden sollen. Problematisch! übrige Befehle: Problemlos. V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 4 22

Hardware-basierte Virtualisierung Beispiel (Auslesen eines im Interrupt beschriebenen Puffers): pushf cli <- kritisch cmpl $0, avail je.l1 movzbl buf, %eax movl $0, avail jmp.l2.l1:movl $-1, %eax.l2:popf <- kritisch ret cli generiert im User-Mode Exception. Mit aktiviertem Virtualisierungs-Modus unter Pacifica/Vanderpool auch popf. V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 5 22

Hardware-basierte Virtualisierung Verschiedene Typen kritischer Instruktionen: inb, outb: Ein-/Ausgabe soll i.a. emuliert werden. cli, sti: Sollen virtuelle Interrupts disablen/enablen. mov *, %cr*: Soll eigentlich so ablaufen (Voraussetzung: übertragener Wert zulässig ).... : V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 6 22

Hardware-basierte Virtualisierung Zustände der Intel-VMX-Erweiterung V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 7 22

Hardware-basierte Virtualisierung vmlaunch, vmresume starten CPU-Emulation bzw. setzen sie fort. Die Assembler-Instruktionen speichern den aktuellen CPU-Zustand ab und laden den Zustand der zu emulierenden CPU. Ein exit-event tritt auf, wenn z.b. in- oder out-instruktionen ausgeführt werden sollen, eine hlt-instruktion ausgeführt werden soll, Control-Register beschrieben werden sollen, ein Interrupt auftritt,... Dann wird der aktuelle Zustand der zu emulierenden CPU abgespeichert und der beim vmlaunch/vmresume gespeicherte Host-CPU-Zustand zurückgeladen. V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 8 22

Hardware-basierte Virtualisierung I/O Zugriffe auf I/O-Geräte müssen i.a. immer virtualisiert werden. Sonst kann eine virtuelle Maschine den Host stören. inb, outb,... müssen immer abgefangen werden ( Privilege Violation ). movb, movw,... müssen wenn sie auf I/O-Geräte gehen abgefangen werden ( Page Fault ). Virtualisierung hier kein Problem. Entsprechende Exceptions existieren bei allen relevanten CPUs. U.U. problematisch: Umschaltzeiten zur/von der Geräte-Emulation. V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 9 22

Hardware-basierte Virtualisierung I/O Ungünstig: I/O über viele einzelne in-/out-instruktionen; Beispiele: viele alte I/O-Geräte (IDE, NE2000,... ) Günstig: I/O über wenige in-/out-instruktionen und (virtuelles) DMA sowie Command-/Buffer-Chaining; Beispiele: viele neue I/O-Geräte (EIDE, EEPRO100,... ) Und Grafik...? V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 10 22

Hardware-basierte Virtualisierung I/O (Grafik) Zugriff auf Grafik-Karte über sehr viele mov-instruktionen. => sehr viele Wechsel virtueller Modus <=> normaler Modus => katastrophale Performance...! V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 11 22

Hardware-basierte Virtualisierung I/O (Grafik) Drei Möglichkeiten: mov-instruktionen auf Funktionsaufrufe abbilden katastrophale Performance bei Grafik-Operationen optimale Performance bei sich nicht änderndem Bildschirminhalt Nachbildung von GPUs möglich mov-instruktionen einfach in den Grafik-Speicher schreiben lassen (ohne Bildschirm-Update); Bildschirm-Update periodisch durch zweiten Prozess (FAUmachine: 5mal pro Sekunde) perfekte Performance bei Grafik-mov-Operationen dauernde Belastung durch Bildschirm-Update (auch wenn keine/kaum Schreiboperationen durchgeführt wurden; FAUmachine: ca. 10% der Rechenleistung bei 1024x768) keine Nachbildung von GPUs möglich Für diesen Zweck entwickelte Grafik- Hardware mit speziellem Grafik-Treiber verwenden. V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 12 22

Hardware-basierte Virtualisierung Interrupts Interrupts dürfen vom Guest nicht abgeschaltet werden können. Sonst kann eine virtuelle Maschine den Host stören. cli, sti und popf können unter Vanderpool/Pacifica Exceptions generieren. Problem: cli/popf-aufrufe sehr häufig; Umschaltzeiten groß. Lösung: Vanderpool/Pacifica merken sich das Interrupt-Enable-Bit der virtuellen Maschine, ändern aber das Interrupt-Enable-Bit des Hosts nicht. Interrupts des Hosts gehen an das Host-OS. V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 13 22

Hardware-basierte Virtualisierung Interrupts Wenn Interrupts an den Host gehen wie bekommt der Guest Interrupts? Beim vmresume können dem Guest Events (Interrupts) mitgegeben werden. V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 14 22

Hardware-basierte Virtualisierung Exceptions Exceptions oder System-Calls in der virtuellen Maschine können in der virtuellen Maschine selbst abgehandelt werden. Vanderpool/Pacifica haben für eine virtuelle Maschine ein Extra-Register zum Speichern der Adresse der Interrupt/Exception/System-Call-Descriptor-Tabelle. lidt-/sidt-instruktionen funktionieren daher in der virtuellen Maschine ganz normal, ändern aber ein anderes Register als im Host. V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 15 22

Hardware-basierte Virtualisierung Segmentierung Segmentierung hat keinen Einfluss auf die Sicherheit des Host-OS. Sicherheit bei Speicherzugriffen wird bei modernen Systemen nur noch über Paging hergestellt. Das Laden/Speichern der Segment-Register (mov..., %?s, mov %?s,... und der Segment-Descriptor-Tabellen-Pointer (lgdt, lldt, sgdt, sldt) kann daher von der Hardware zugelassen werden. V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 16 22

Hardware-basierte Virtualisierung Segmentierung Ausnahme: Bei x86-prozessoren enthält Code-Segment-Register den Privilege-Level. Lösung: Es gibt unter Vanderpool/Pacifica 4 zusätzliche Privilege-Level: Host Ring 0: höchste Priviligierungsstufe (i.a. Host-OS)... Ring 3: niedrigste PS (i.a. Host-User-Level) Guest Ring 0: höchste Priviligierungsstufe (i.a. Guest-OS)... Ring 3: niedrigste PS (i.a. Guest-User-Level) V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 17 22

Hardware-basierte Virtualisierung MMU mov..., %cr3 (Page-Directory-Basis-Register laden) ist die kritische Instruktion (gebraucht bei jedem Kontext-Wechsel). mov..., %cr0 und mov..., %cr4 kritisch, aber nur selten gebraucht. invlpg unkritisch. V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 18 22

Hardware-basierte Virtualisierung MMU Laden des Page-Directory-Basis-Registers ist kritisch für die Sicherheit des Hosts und kritisch für die Performance des Gastes: Hardware stellt 4 (Intel) Werte zur Verfügung. Wenn einer der 4 Werte dem Wert entspricht, der in das %cr3-register geladen werden soll, wird (ohne Exception) geladen. Sonst wird virtuelle Maschine unterbrochen. => schnelle Kontext-Wechsel, wenn wenige Prozesse lauffähig sind. Check und ggf. Umbau der Page-Tabellen nur beim erstmaligen Start einer Applikation. V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 19 22

Hardware-basierte Virtualisierung Hardware-basierte Virtualisierung (hier: Pacifica/Vanderpool) erlauben I/O-Geräte zu virtualisieren mit Performance-Einbußen die CPU direkt zu verwenden MMU: mit Performance-Einbußen Rest: ohne Performance-Einbußen V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 20 22

Hardware-basierte Virtualisierung Quelle: Diplomarbeit T. Lindinger V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 21 22

Hardware-basierte Virtualisierung User-Mode Und ohne teure/neue CPU...? Im Allgemeinen problemlos: Emulation der CPU durch sich selbst im User-Modus. Idee: Standard-Emulation, solange VM im Supervisor-Modus. Nutzung der Host-CPU, wenn VM im User-Modus. Umschaltung sehr aufwändig: Übertragung der emulierten in die realen Register Umprogrammierung der Segmentierung Umprogrammierung der MMU; Aufbau neuer Page-Tabellen Lauf der realen CPU muss durch reale Interrupts unterbrechbar sein => nicht deterministisch. V. Sieh Hardware-basierte Virtualisierung (WS14/15) Hardware-basierte Virtualisierung 22 22