5 - Virtuelle Maschinen [ID:10954]
50 von 774 angezeigt

Gibt Fragen, fangen wir mal damit an.

Der eine oder andere ist schon am Basteln.

Geht schon was?

Hängt an zu humpeln.

Super.

Darüber unterhalten wir uns die nächsten Wochen noch, wie man sowas beschleunigen kann.

Prima.

Du hast das dann wahrscheinlich gemacht nach der Methode Emulation, so wie ich das neulich mal vorgestellt habe.

Andere Leute haben das auch schon mal getan.

Jetzt nicht für Intel, sondern hier am Beispiel das Projekt WISE.

Ich weiß nicht, ob das jemand kennt.

Das ist mal das kleine Demo, was man damit schon mal machen kann.

Also simulieren tun die Leute.

Ich weiß nicht, wer die Rechner kennt.

Meine Generation hat damit angefangen.

Also mit dem PET habe ich in der Schule angefangen.

Das war so gerade 13. Jahrgang, da hatten wir den ersten Rechner an der Schule.

Das war so ein PET.

C64, den hatte ich so als Schüler zu Hause.

Die Nachfolger werden auch noch nachgemacht. Im Prinzip im Wesentlichen dieser C128-Nachfolgermodell von C64.

Und noch ein paar verbande Dinge.

Wer es sich mal angucken will, wiseteam.org, kann man sich runterladen.

Runterladen ist GPL.

Das Einzige, was nicht GPL ist, sind die Images von den ROMs, die ursprünglich da eingebaut waren.

Aber wenn man dann mal guckt im Internet, dann findet man die.

Kann man sich jetzt auch irgendwo runterladen.

Und dann kann man so einen C64 nachmachen.

Das sieht dann so aus wie da oben auf dem Bildchen.

Das sieht ja so winzig aus, macht nichts.

Der Bildschirm war früher nicht größer.

Das waren nur 320 x 200 Pixel, glaube ich.

Aber in heutigen Zeiten ist das ja, naja, selbst hier, das ist Originalgröße sozusagen, ein Pixel.

Das, was ich euch gezeigt habe, diese Immunationsmethode, die ist insofern schön, als macht man so, schreibt man entsprechend ein C-Programm.

Also wenn du das jetzt so in C hingehackt hast, dann kannst du es im Prinzip laufen lassen auf einem Intel-Prozessor,

auf einem RAM-Prozessor, auf einem, naja, herausgesetzt, du hast es sauber geschrieben, dann sollte das C-Programm eigentlich überall laufen.

Ich glaube, die Enden, wenn man das spielt, werden wir schon darauf her.

Okay, aber das, wie sie sich noch fixen, mit einer Handfalle Handgriffen, soll, anders ausgedrückt, soll heißen, die Methode ist eigentlich extrem portabel.

Also das kann man eigentlich überall laufen lassen.

Das kann jede echte Hardware, auf jeder, nein, jede virtuelle Hardware, auf jede echten Hardware zum Laufen bringen.

Gut, in diesem Falle, dieser Commodore 64, der lief damals mit einem Megahertz Taktfrequenz.

Heute haben wir so Größenordnung 2, 3, 4 Gigahertz, also wir haben so, naja, 2, 3, 4000 Befehle Zeit, um sozusagen einen alten Befehl nachzumachen.

Das sollte man hinkriegen.

Ja, natürlich reicht es jetzt nicht nur, die CPU nachzumachen, sondern in unserem Falle müssen wir natürlich auch noch nachmachen.

Grafikchip, Soundchip, was es so alles noch dazu gibt, haben die Leute hier mal gemacht.

Und ich zeige es euch dann auch mal, wie so etwas ausschaut.

Wie heißt das jetzt? X64, glaube ich.

Okay, Sound haben wir hier nicht, wir haben keine Lautsprecher dran.

Ja, das ist mein kleines Fensterchen.

Da ist dieser Bildschirm und jetzt kann ich hier so meinen, damals war es halt ein BASIC-Rechner,

vi gleich 1, 10, print i, next, an.

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:33:14 Min

Aufnahmedatum

2012-11-08

Hochgeladen am

2019-05-05 10:49: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

  • untersuchen CPU-Emulationen

  • untersuchen Geräte-Emulationen

Einbetten
Wordpress FAU Plugin
iFrame
Teilen