24 - Virtuelle Maschinen [ID:10998]
50 von 867 angezeigt

Mayorssävile Kissi

Junger hade lieb Flo thy

Jo, können wir den hinterher noch erklären oder kommt es gegebenenfalls mit, dann fragst

ihn mal.

Jo, ok, dann grüße ich den verbleibenden Rest, wo auch der andere Rest immerhin ist,

egal.

Jo, worum geht es heute?

Also einmal den Rest von Betriebssystemen basierter Virtualisierung.

Ihr erinnert euch einfach, ich sag mal, einen Linux-Kern im Beispiel installieren.

Ganz normal, nur der Linux-Kern im Bauch hat so ein paar mehr Checks drin, als er normalerweise

hätte.

Wenn aus einem bestimmten Bereich ein Systemcall kommt, dass er dann checkt, ob die User-ID

die Berechtigung für diese virtuelle Maschine hat oder bei einem Kill, dass die Prozess-ID,

die jemand in dem Bereich angibt, auch wirklich einen Prozess identifiziert aus der virtuellen

Maschine und nicht einer Nachbar-virtuellen Maschine.

Ich habe euch kurz angedeutet, Vorteile, also Performance ist super.

Das merkt ihr nicht mehr, dass das unter der Haube irgendwas verlangsamen.

Auf der anderen Seite dann, dass ihr nur noch ein Betriebssystem für alle virtuellen Maschinen

habt.

Wenn jemand gerne windlos auf Linux laufen lassen würde, Pech gehabt, funktioniert mit

dem überhaupt nicht.

Und diese Sicherheitsgeschichten, dass man jedes Mal, wenn ein neuer Linux-Kern rauskommt,

diese Sicherheit wieder überprüfen muss, sind jetzt alle Sicherheitsabfragen drin und

da fehlt noch einer, das ist halt das Problem.

Das Ganze gibt, das haben Leute mal umgesetzt.

Hier ein Beispiel, V-Server, es gibt allerdings noch ein paar ähnliche.

Jetzt fragt mich nicht, wie die Projekte im Einzelnen alle heißen, aber es gibt noch

mehr.

Also wenn da sich interessiert, einfach mal betriebssystembasierte Virtualisierung oder

so bei Google eingeben, dann kriegt ihr noch ein paar mehr Treffer.

Was ist V-Server?

So ein Beispiel, Ziel war das, was ich euch mal schon gesagt habe.

Also man möchte, sagen wir mal, mehrere Linux-Rechner vermieten.

Das ist so das Standardbeispiel schlicht hin.

Oder man hat natürlich vielleicht auch eine Firma, wo man verschiedene Linux-Distributionen

testen möchte.

Dann hat man einen Linux-Kern, aber man hat vielleicht einen Debian, einen Ubuntu, einen

Red Hat und einen SUSE parallel laufen.

Das funktioniert.

Auf einem normalerweise etwas dickeren Rechner.

Was ist V-Server?

V-Server selber ist im Prinzip nur ein vergleichsweise kleiner Patch für den echten Linux-Kern.

Einfach die normalen Checks, Prozess-ID ist richtig, darf derjenige den anderen Prozess

killen, ja oder nein.

Der Check ist halt ein klein bisschen länger.

Dachten die Betriebs-Bases würden es mittlerweile ohne Patches gehen, sagen die V-Mailer-Körner?

Das ist sehr ähnlich.

Es stimmt so weit, ich weiß, noch ein paar Sachen zusätzlich finden.

Das ändert sich alle Monate, alle Woche mal.

Ich bin da sicher nicht auf dem allerletzten Stand.

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:26:25 Min

Aufnahmedatum

2016-01-22

Hochgeladen am

2019-05-08 02:59:03

Sprache

de-DE

Vorgestellt werden verschiedene Virtualisierungs-Ansätze:

  • Emulation

  • Just-In-Time-Compiler

  • Para-Virtualisierung

  • Bibliotheks-basierte Virtualisierung

  • OS-Virtualisierung

Lernziele und Kompetenzen:

Studierende, die das Modul erfolgreich abgeschlossen haben:

  • erläutern verschiedene Motivationen für den Einsatz von VMs

  • unterscheiden verschiedene VMs

  • klassifizieren verschiedene Ziele unterschiedlicher VMs (z.B. Performance, Konfigurierbarkeit, Genauigkeit, ...)

  • hinterfragen verschiedene Simulationansätze für MMUs

  • erstellen virtuelle Komponenten und Busse

  • strukturieren Callbacks und entsprechendes Forwarding und Caching

  • unterscheiden zwischen Architektur, Chip und Komponente

  • klassifizieren unterschiedliche Just-In-Time-Compiler-Ansätze

  • erzeugen JIT Code aus vorgefertigten Code-Teilen

  • bewerten unterschiedliche JIT-Code-Optimierungen

  • erläutern Probleme bei der JIT-Code-Invalidierung

  • nennen JIT Probleme mit Exceptions/Interrupts sowie berechnete Sprüngen und Return-Instruktionen

  • unterscheiden verschiedene JIT Cache-Verwaltungen

  • beschreiben Möglichkeiten der Fehlerinjektion durch VMs

  • entwickeln ein an JIT angepasstes virtuelles "Hardware"-Design

  • erläutern die Java-VM Instruktionssatz-Architektur

  • nutzen Hardware-basierte Virtualisierung

  • entwickeln Verfahren zum Ausfiltern bestimmter Befehle

  • erläutern Probleme der Speicherverwaltung bei HW-basierter Virtualisierung

  • nutzen User-Mode-Emulation zur Paravirtualisierung

  • diskutieren Möglichkeiten von Debuggern für die Umleitung von System-Calls und die Ausfilterung von Befehlen

  • nutzen einen Hypervisor zur Paravirtualisierung

  • unterscheiden verschiedene Ansätze zur Geräteverwaltung in paravirtualisierten Systemen

  • erläutern Betriebssystem-basierte Virtualisierung

  • entwickeln unterschiedliche Bibliotheks-basierte Virtualisierungen

  • erläutern Probleme beim Speicher-Layout bei Bibliotheks-basierte Virtualisierung

  • konzipieren Personalities für Bibliotheks-basierte Virtualisierungen

  • beurteilen Probleme bei der korrekten Zeit-Simulation

  • nennen Ideen für die dynamische Anpassung der Zeit-Simulation

  • klassifizieren bekannte VMs (z.B. VICE, FAUmachine, QEMU, Bochs, JVM, KVM, User-Mode-Linux, Xen, VServer, Wine)

  • diskutieren in der Gruppe Vor- und Nachteile von bestimmten VM-Ansätzen

  • entwickeln selbst CPU-Emulationen

  • entwickeln selbst Geräte-Emulationen

  • verteilen Implementierungsaufgaben in ihrer Gruppe

Einbetten
Wordpress FAU Plugin
iFrame
Teilen