15 - Virtuelle Maschinen [ID:10964]
50 von 1024 angezeigt

Moin Moin, gibt es Fragen?

Okay, dann geht es weiter.

Allerdings vorher noch die Ankündigung.

Ihr erinnert euch dran, morgen nicht um 10.15 Uhr, sondern morgen um 10.45 Uhr.

Weil mein Chef den Raum hier haben will.

Für eine Besprechung fragt mich nicht.

Da ich ein paar mal überzogen habe, kriegt er die halbe Stunde dann auch wieder.

Okay, was haben wir letzte Woche gemacht?

Letzte Woche haben wir gemacht diese Geschichten.

Wir wollen im User-Modus die Simulation sozusagen laufen lassen.

Und wir wollen zum Beispiel den Linux-Kern portieren auf ein anderes Betriebssystem.

Gut, im Beispiel haben wir jetzt hier auch Linux genommen.

Wenn ich das richtig sehe, kennen die meisten hier ganz gut.

Den Körnern auch nicht so, aber was ihr schon mit diskutiert habt mit M-Map-System-Goll

und Signals und so, da klickt ja doch durch, dass ihr da das meiste von kennt.

Hallo, einspaziert.

Noch schnell das Dope hingeholt.

Jo, gut, letzte Woche haben wir uns angeguckt von dieser Geschichte, die ganzen Memory-Sachen.

Also wie mappe ich mir die Seiten, wie anmappe ich mir Seiten, also sprich wie mache ich die

M-M-U nach.

Haben wir gesehen, naja, ein bisschen schlau muss man schon anstellen, sonst dauert das

mappen und anmappen länger als der eigentliche Kontextwechsel.

Aber wenn wir dann sagen, er mappt immer nur on demand, dann hat er halt, keine Ahnung,

während eines Kontextwechsels erstmal gar nichts und dann mappt er sich so langsam das

rein, worauf er tritt, was er gerade braucht und dann läuft er einigermaßen und dann kommt

halt der nächste Kontextwechsel und schmeißt alles wieder weg.

Jo, Fazit war allerdings keine Kernel-Protection, es sei dann, man fängt noch mit Segmenten

an und versucht die zu verdrehen und so.

Prinzipiell ja, praktisch aufwendig, wir haben das ja schon mal gesehen mit VM-Ware, wie

die das wohl machen, da kommt man dann vom hundertsten ins tausendste und so.

Aber gut, wenn man sagen wir mal freundliche Applikationen laufen lässt, die eigentlich

nur da hingreifen, wo sie auch hin dürfen und auch gar nicht versuchen, was Böses zu

tun, dann kann man damit natürlich zum Beispiel Linux auf Linux laufen lassen und man kann

mal andere Distributionen zum Beispiel ausprobieren.

Wenn wir auch on demand mappen, dann müssen wir dann Kontextwechsel zumindest jetzt anmelden,

oder?

Ja, sonst sieht der neue thread die Seiten von dem alten.

Also das ist nicht kritisch, performance-mäßig, auf Syscrolls, also nur die, die ich davon

gemerkt habe natürlich.

Aber gut, sagen wir mal, er mappt sich vorher zehn, dann muss man im Prinzip auch zehnmal

wieder ein Unmap machen.

Bei Linux ist sogar so, da reicht ein Unmap von 0 bis 4G, macht platt und weg.

Das ist bei BSD und so ein bisschen anders, da kann man immer nur genau das anmappen,

was man auch gemapped hat, sonst sagt einem irgendein illegal Parameter oder so was.

Aber im Linux-Fall kein Problem, ein Unmap und alles weg.

Jo, was hatten wir noch?

Wir hatten noch gesagt, wenn wir dann den Linux-Kern auf Linux portieren, Linux als

Hardware sozusagen drunter liegen, dann können wir ja, dann haben wir keine Interrupts mehr,

aber sowas ähnliches, Signale.

Irgendjemand hat es dann auch schon gesagt, ja, da gibt es doch den System Call SIG Action,

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:30:07 Min

Aufnahmedatum

2012-12-13

Hochgeladen am

2019-05-05 11:19:04

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

  • untersuchen CPU-Emulationen

  • untersuchen Geräte-Emulationen

Einbetten
Wordpress FAU Plugin
iFrame
Teilen