 Ja, hallo, da sind leider nicht so viele Leute gekommen. Ich bin hier, um darüber zu reden, wie wir morgen noch die Sachen von gestern hätten können. Der Titel ist The Past and the Cloud. Ich bin Mitarbeiter an der Universität Freiburg und was wir dort machen am Lehrstuhl für Kommunikationssysteme ist ein Web Framework entwickeln, einen Clouddienst entwickeln, der Emulation as a Service implementiert. Das heißt, nicht so wie Software as a Service oder Plattform as a Service, dass wir eine bestimmte Software einfach zur Verfügung stellen in der Cloud, sondern wir stellen ein komplettes Emulations Framework eben zur Verfügung. Warum ist sowas interessant? Wir haben ganz viele digitale Objekte mittlerweile. Wir sind alle damit aufgewachsen mit irgendwelchen Computerspielen oder eBooks sind gerade immer noch im Kommen. Es gibt einfach verschiedene Dinge, die unsere Kultur mit beeinflusst haben, die unser Leben mit beeinflusst haben, die aber aus technischer Sicht nicht mehr so einfach jetzt zum Laufen zu kriegen sind. Also ich behaupte mal, dass auf diesem Laptop hier ein Windows 3.11 nicht so richtig super gut funktionieren wird. Um an so was hier ran zu gehen, ist es, man kann natürlich ein Video machen, man kann immer den Quellcode sich abschreiben und kopieren und immer anpassen, dass es irgendwie richtig funktioniert. Aber das erfordert zum einen, dass ich das für jedes Objekt einzeln mache, was natürlich ein enormer Aufwand ist, wenn man ganz viele von solchen Objekten hat und erfordert auch enormes Wissen an die Programmierumgebung, die ich da benutzt habe. Das ist eben wirklich immer den Quellcode möglicherweise lesend, verstehen auch in 50 oder 100 Jahren. Das sind alles Sachen, Dinge unserer Kultur, die dadurch verloren gehen. Ein kleines Beispiel. Wir hatten in Freiburg ein Sprachwissenschaftler, der untersucht hat, wie sich geografisch verändert Dialekte entwickelt haben. Und darauf basierend hat er eine Software entwickelt, die eine Latech-Map erzeugt hat. Also das waren dann einfach Konturenkarten, wo dann irgendwie in diesem Tal wurde dieser Dialekt gesprochen und in dem nächsten Tal wurde jener Dialekt gesprochen und so weiter. Das war unglaublich komplex. Bestand aus einer Servermaschine und sechs Clients, die man dann einfach benutzen konnte, um sich das anzugucken. Und das alles war entwickelt unter OS 2. Naja, ist so halbwegs noch ein Standardsystem, IBM PC, das waren alles 486 Prozessoren, beziehungsweise der Server hatte ein Pensium Overdrive CPU, hatte also vorher auch schon mal ein 486er und nicht so besonders viel RAM. Das sind alles Sachen, die man heute noch überblicken kann. Naja, die Aufgabe war es dann, nachdem die Maschinen alle gestorben sind, weil die waren irgendwie Anfang der 90er, die wären jetzt 20 Jahre alt geworden und irgendwann nagt der Zahn der Zeit dann da doch dran. Wie kriegen wir das jetzt wieder zum Laufen? So sah die Kiste aus. Wir sind da hingegangen, haben die Hardware eingesammelt, beziehungsweise haben die Festplatten eingesammelt, weil das war eigentlich das Einzige, was uns interessiert hat, und haben die versucht zu imagen. Das ging bei der Serverplatte noch relativ einfach. Das war eine Standard-Skasi-Platte. Da kann man dann ganz viele verschiedene Adapter benutzen, sodass man dann von dem alten Skasi 2 zu irgendetwas modernem Multrawide 160 weiterging. Das war nicht so oder ist das das richtige Problem. Aber wir hatten auch eben diese Kleintrechner und die hatten IDE-Platten. Jetzt könnte man ja denken, IDE ist IDE ist IDE. Das heißt, ich hänge das Ding einfach an ein IDE-Controller dran und haben wir so ein OSB-Ding genommen und der Kernel sagt dann sowas hier. Das ist eine Vantum-Platte, das ist doch so halbwegs richtig. Sagt er unten, es ist eine Very Big Device. Was versteht er unter Very Big? Er hat aus irgendeinem Grund erkannt, dass das Ding 2TB groß ist. Für Anfang den 90er war das wirklich eine Very Big Device, wenn das so war. Das haben wir dann mit mehreren Controllern ausprobiert und haben dann irgendwann festgestellt, dass das IDE eben doch nicht IDE ist. Also wir können nicht einfach nur, weil das elektrische Interface irgendwie gleich heißt, nicht davon ausgehen, dass das alles funktionieren wird, weil das waren irgendwie subtile Timing-Bugs, die dann dazu geführt haben, dass der Controller irgendwas Falsches gelesen hat. Das haben wir dann irgendwann immer weitergemacht und haben dann rausgefunden, ja okay, man kann das doch lesen. Mit einem bestimmten Adapter, ich glaube, wir hatten dann ein Indie-Cable-Adapter benutzt, der irgendwie so kompatibel war, dass das eben doch ging. Und dann haben wir das Festplatten-Image gezogen und haben es in einen Emulator gesteckt und dann kamen mehr oder weniger der nächste Fehler. Ja, das Ding bootet erstmal ganz normal. Man erwartet ja nichts Böses dabei, keiner von uns wusste so richtig, wie OS2 funktioniert. Und dann hieß es da im Befehl Country in Zeile 34, nicht der Datei-Confixes-Angebende-Datei-Bla konnte nicht gefunden werden. Er ist erstmal schade, was macht man da? Die Lösung war quasi, dass der Bootloader, also das System hat schon ein Stück weit gebootet, hat den Kernel gebootet, hatte einen eigenen Dateisystem-Treiber. Und dieser Dateisystem-Treiber, oder hatte einen eigenen Festplattentreiber. Dieser Festplattentreiber, der kam mit so mehr oder weniger allem klar. Wenn er dann aber nachher der Kernel angefangen hat, irgendwas zu machen, dann musste es was ganz Bestimmtes sein. Der Fehler war, dass der emulierte ID-Controller nicht mit dem übereingestimmt hat, der im System vorher vorhanden war. Und die Fehlermeldung ist dann, naja, ich kann das Dateisystem nicht lesen. Normalerweise würde man erwarten, dass irgendwie so die Fehlermeldung lautet, naja, ich kann die Festplatte auf die Festplatte generell nicht zugreifen. Aber das funktioniert relativ weit, bis es dann eben irgendwann doch nicht mehr funktioniert. Naja, dann hatten wir das Problem auch gelöst. Dann saßen wir dann endlich vor der Oberfläche und konnten damit dann sinnvoll was machen. Dann die nächste Aufgabe war es, dann die Clients per Netzwerk anzuschließen. Das hat dann auch funktioniert. Und da konnte man eben tatsächlich dieses Off der Wiederum nutzen. Das war jetzt ein Einzelfall, der relativ viel Arbeit gekostet hat und der uns aber auch einige Ergebnisse gebracht hat. Nämlich zum einen die ganz banale Tatsache, da war ein Wissenschaftler, der hat irgendwas gemacht und der hat etwas in unserer Computertechnik gemacht, der wir als Informatiker uns mehr oder weniger wohlfühlen. Aber uns ist selten bewusst, dass das in 2, 3, 4, 5, vielleicht 10 Jahren alles weg ist. Das, was wir heute machen, wird wahrscheinlich in 10 Jahren genauso nicht wieder funktionieren. Und genau so ging es eben auch diesem Wissenschaftler. Die Hardware ist verreckt und naja, die Software damit auch. Das war eben eine sehr arbeitsintensive Aufgabe, das irgendwie wieder zum Laufen zu kriegen. Und dann haben wir uns Gedanken darüber gemacht, naja, was kann man denn da irgendwie sinnvoll machen, um diese Kosten zu minimieren, dass man das irgendwie nicht immer wieder machen muss für jede Software, die man hat, sondern naja, irgendwie etwas Generischeres schaffen. Dann kommen wir jetzt zu den Bond Digital Objects. Das ist ein Foto aus der TIB in Dresden. Das ist die Technische Informationsbibliothek, die sammelt Software. Das ist so, wie jeder andere Bücherei Bücher sammelt. So sammelt die CDs, DVD, Medien. Wir haben von denen mal ein Karton geschickt bekommen, die sammeln tatsächlich so Zeitungen wie Chip mit den CDs, die dabei sind. Wer sich daran noch erinnert, ich weiß gar nicht, ob aktuell noch bei der Chip irgendwie Software CDs dabei liegen. Aber sowas findet man dort alles. Und dann naja, die haben halt eine Sammlung von hunderten von tausenden CDs mit Software drauf, die möglicherweise wichtig sind, möglicherweise nicht so wichtig sind, aber das kann man ja so nicht sagen. Und wenn irgendwie in 100 Jahren eine Historiker ankommt und diese Sammlung findet, kann er damit wahrscheinlich nicht so viel anfangen. Naja, wir haben also sehr viele verschiedene Standards. Allein schon an Betriebssystemen, wenn man ein bisschen weiter zurückgeht, da gab es dann noch deutlich mehr, als es jetzt gibt, mit diversen Amiga-Attendari-Plattformen und ganz vielen anderen Kram. Einzelne Konsolen, die möglicherweise auch nur ein einziges Stück Software implementiert haben. Vielleicht erinnert ihr euch alle an das Internet Archive, das vor kurzem erst Dosbox.js veröffentlicht hat quasi. Und was vorher auch mit Mame und Messjs quasi, die in der JavaScript-Emplimentierung von einem Akade-Immulator veröffentlicht hat. Mit dem auf einen Schlag ganz, ganz viele alte Akadespiele wieder zum Laufen gebracht werden konnten in aktuellen Browsern. Das ist jetzt aber ein sehr spezieller Fall davon, weil die haben quasi den Emulator genommen, haben den in den Browser gepackt und damit irgendwie weiter was gemacht. Aber naja, was wir machen wollen, ist noch eine weitere Stufe zurückgehen quasi und überlegen, wie kann man jetzt den Emulator ohne ihn zu verändern, ohne ihn irgendwie auf JavaScript zu portieren oder irgendwas anderes damit zu machen, zum Laufen zu kriegen. Und da gibt es eine ganz spezielle Anforderung, auch gerade in den Geisteswissenschaften, die wollen das Zitierbar haben. Die wollen nachvollziehen können, wie dieses Software tatsächlich aussah. Wir hatten eine Kooperation mit dem Computerspielemuseum, die haben auch gesagt, dass ganz viele Spieldesigner, Designstudien auch an alten Spielen machen und dass sie sich dafür interessieren, wie früher Spiele gemacht wurden und wie das Gameplay aussah und so was. Das muss authentisch sein, das muss interaktiv sein. Also ein Video reicht nicht. Ich muss wirklich, naja, ohne das Objekt selber zu beeinflussen, damit interagieren können. Und dafür kann man eben Immunation benutzen. Ich muss einmal abgrenzen, wo hört das ein Objekt auf, wo fängt das andere Objekt an. Also ich habe eine PowerPointer-Teil, das ist erstmal eine PowerPointer-Teil. Und ich muss mir dessen bewusst sein, dass PowerPoint selbst davon losgelöst ist und dass das wieder ein eigenes Objekt ist, dass ich PowerPoint wieder irgendwie zum Laufen kriegen muss, was dann auf Windows basiert, was quasi wieder ein eigenes Objekt ist, mehr oder weniger. Und dass ich das so geschichtet aufbauen kann, weil nur dann habe ich eigentlich eine Chance, das auf möglichst wenig Informationen runterzubrechen. Ich muss das generalisieren. Ich möchte gerne, dass das überall läuft quasi und idealerweise soll das auch für immer funktionieren. Na, das für immer, das ist immer so eine komische Aussage. Aber wir hoffen, dass das ein sinnvoller Beitrag ist, um wenigstens einige Cornercases da irgendwie doch für fast immer zum Laufen zu erhalten. Hier ist das Ganze grafisch dargestellt, was ich eben schon angedeutet habe. Wir haben unendlich viele digitale Objekte und die kann man alle so ein bisschen einschränken dann auf immer weniger Betriebssysteme zum Beispiel. Und die unterste Ebene, wo es wirklich nur sehr wenig Varianz gibt, ist dann tatsächlich die Hardware. Weil ein Betriebssystem kann ich auf viele hunderte verschiedenen Arten und Weisen konfigurieren, einstellen und ja auch implementieren teilweise. Allein für ein IBM PC gibt es eine Unzahl von Betriebssystemen, aber darunter ist eben ein IBM PC. Das heißt, wir machen uns die Arbeit mehr oder weniger so einfach wie möglich. Wir nehmen nur die kleinste Spitze der Pyramide und bieten da eben Emulation as a Service an. Das heißt, dass wir die Hardware emulieren und alles, was da drüber kommt, interessiert uns erstmal nicht. Es ist uns egal, was da drauf läuft. Wir können da ganz viele verschiedene Sachen mitmachen. Die Idee an sich ist nicht neu, Emulation für die Archivierung zu benutzen oder auch allein um Zugriff auf alte Hardware und Software zu erlauben. Die IBM System 360 war zum Beispiel mehr oder weniger das erste System, was so weit abwärts kompatibel war zu den Vorgänger-Versionen, dass sie es erlaubt hat, die alte Software weiter zu benutzen. Das war damals etwas mehr oder weniger ganz Besonderes, weil ich eben nicht nur, weil ich die neue Hardware gekauft habe, komplett meine gesamte Infrastruktur umstellen muss. Die Diskussion im Kunstsinn bzw. im geisteswissenschaftlichen Sinne wurde dann Mitte der 90er wieder aufgekreimt, weil da die Rechner zum ersten Mal leistungsfähig genug waren, um deutlich ältere Software wirklich zu emulieren. Aber es war immer noch ein enormer Aufwand. Also ich muss immer noch sehr viel darüber wissen, wie die Hardware funktioniert hat. Ich muss irgendwie meinen Emulator anstatt kriegen, ich muss Software installieren, das will ich als User alles nicht. Vor allem möchte ich das nicht, wenn ich eigentlich ein Archivar bin oder ein Bibliotheker, der eigentlich von Computern nicht so viel Ahnung hat wie jetzt eine Informatik. Das sind alles Sachen, die das Behindern quasi das breite Verwendung findet. Und deswegen haben wir den Emulator so weit wie möglich abgekapselt quasi. Wir haben sogenannte Emulation Components entwickelt, die den Emulator komplett abstrakt beschreiben. Das heißt, das Ding ist einfach irgendeine Maschine. Das Ding hat ein Laufwerk, ein Floppy, ein festplattet CD, was auch immer. Das Teil hat Netzwerkkarten, wie auch immer die aussehen mögen und hat bestimmte Interfaces, mit denen ich auf den Bildschirm und die Tattoo zugreifen kann. Das ist in unserem Fall ein HTML5 Frontend. Und wie der Emulator an sich implementiert ist, das ist nicht wichtig, welche Parameter denn, wie ich den richtig bediene. Das macht quasi alles die Software im Hintergrund. Das Ganze ist als Webservice implementiert und erlaubt so quasi beliebige Frontends davor zu montieren quasi. Ich kann das in meinem Workflow, den ich sowieso benutze, um irgendwie diese 100.000 CDs, die ich in dem Regal stehen habe, zu archivieren. Ich frage sie direkt an den Imagingprozess, kann ich anschließen eben so ein Test quasi, wie das Objekt wirklich ausgesehen hat, damals mit dem Originalbetriebssystem. Die kann ich beliebig zusammenstecken. Wir sehen hier rechts oben so ein Virtual Network Switch, das können wir auch. Wir können tatsächlich zwei oder mehrere Computer miteinander verbinden und dann per Netzwerk virtuell miteinander kommunizieren lassen. Das heißt, gerade das Beispiel eben auch mit dem Sprachwissenschaftler hätte super funktioniert. Wir hätten da irgendwie die Servermaschine an den Start bringen können und die Clients, die dann auf den Server zugreifen und das eben alles über standardisierte und möglichst abstrakte Interfaces. Was wir uns davon erhoffen quasi ist, dass wir die gesamte Technologie, die dahinter steckt, zentralisieren können. Wir müssen nicht mehr jeden einzelnen Bibliothek oder jeden einzelnen Geistwissenschaftler schulen, wie man jetzt irgendetwas Bestimmtes benutzt, sondern wir können sagen, hier habt ihr Innovation Access Service, klickt auf diesen Link und dann seht ihr da ein altes Betriebssystem und so sah das dann nachher aus. Das heißt auch, dass die Pflege und die Wartung zentral stattfinden können oder generell der gesamte Betrieb und auch, dass man die Kosten teilen kann. Also, dass man quasi nur ein Rechenzentrum braucht oder eben die Cloud nimmt und dort diese Emulation Components verteilt und jeder kann da drauf zugreifen quasi. Was uns ganz besonders wichtig war, war ein Browser-Based Access. Also, das gesamte Frontend basiert eben auf HTML5. Wir haben keinen FNC-Viewer als Java-Applet oder so einen Quatsch da drin. Das wird alles, naja, komme ich später zu, wird alles über HTML5 Canvas gemacht. Und was auch besonders ist quasi, ist, dass wir Ableitungen erlauben. Das heißt, man kann die Sachen modifizieren und wieder so abspeichern, wie man sie modifiziert hat. Ich kann das Hintergrundbild ändern und nachher ist es dann auch wirklich geändert. Der Sinn dahinter ist, dass wir bestimmte Betriebssysteme zur Verfügung stellen können, die wir getestet haben auf dem Emulator. Wir haben alle Treiber schon installiert und man kommt nur noch an und sagt, ich brauche unbedingt ein Windows 11 und installiert dann da eben das Objekt, der hätte irgendwie die Encarta von, keine Ahnung, irgendwie ganz früh. Ja, das ganze, diese ganzen Emulation-Components sind vollkommen unabhängig voneinander und wir können die, wie ich schon gesagt, in der Cloud, man hätte auch Baldschild-Bindung spielen können, wir können die in der Cloud deployen. Wir haben zum einen in Freiburg lokal ein Cluster, dass Maschinen tatsächlich physikalisch vorhält. Das ist natürlich relativ teuer, weil die Maschinen laufen 24 Stunden am Tag, 7 Tage die Woche und verbrauchen Strom, obwohl da gar keiner was drauf macht. Na ja, dann kann man eben hingehen und sagen, okay, ich pack das eben alles on demand, irgendwo hin, wo ich nur für die tatsächlich Rechenzeit bezahle, das kann zum Beispiel Amazon sein, das kann auch die Google-Compute-Cloud sein für beides haben wir bereits Interfaces und beide funktionieren auch noch relativ gut. Und das Ganze funktioniert dann so, dass irgendwie der Benutzer hier unten dann eine Anfrage schickt, ich möchte gerne dieses Environment haben und dann kommt der Allocation-Policy an und sagt, ja, okay, dann kriegst du jetzt diese Maschine oder du kriegst diese Maschine, da musst du ein bisschen warten, weil das dauert halt ein Augenblick, bis das alles in die Cloud kopiert wurde und was er am Ende sieht, ist wirklich nur noch diese Emulation-Component-Team seinen alten Computer zeigt. Dann gibt es da ein paar Beispiele für. Das hier ist der gute Herr Flusser, der in dem Fall jetzt eine Hypertext-Interactive-Vorlesen hält. Das kann man ausprobieren. Ich habe nachher auch noch mehr Demos. Das kann man einbetten, seinen eigenen Block, wie auch immer, und kann dann da seinen Gästen eben dieses Werk zur Verfügung stellen. Was wir auch haben, ebenfalls von Willem Flusser, ist die Schrift. Das wird wahrscheinlich eines der ersten E-Books gewesen sein. Damals noch in, naja, ASCII-Art, mehr oder weniger. Das, wie gesagt, wird eines der ersten E-Books gewesen sein. Der Hatschreiben Zukunft war der Titel von 1987. Das war so der Beginn, als sich auch andere Leute da miteinander gesetzt haben, wie den Computer unser Leben beeinflussen werden. Deswegen auch der Untertitel Hatschreiben Zukunft, weil das eben das erste Werk war, was er allein digital veröffentlicht hat. Und ja, was quasi nur auf Computern zugänglich war. Und da kommen wir dann jetzt dazu, dass man eben diese Umgebungen, die wir da schaffen, auch anpassen kann. Hier sehen wir jetzt irgendeinen komischen Installer, der gerade irgendeinen Viewer installiert. Also, ich meine, wer kennt es nicht, der früher Video vor Windows installierten musste, damit irgendein komisches Spiel läuft oder so was. Es gibt auch ganz viele Sachen, die QuickTime erfordert haben. Insbesondere aus der Kunstecke gibt es ganz viele Sachen, die teilweise exotische Software benötigen, die man ja erstmal wieder da reinkriegen muss. Und wenn man so lange man diese Software hat, kann man die eben installieren und das dann so speichern. Und das so quasi vorbereiten, dass man dann tatsächlich auch das Werk betrachten kann. Das kann ich dann eben abspeichern. Und einfach indem ich hier quasi das E-Kchen setze, dann steht das quasi allen zur Verfügung. Dann habe ich jetzt ein, in dem Fall ein altes Mac OS 8, was allen zum Beispiel QuickTime zur Verfügung stellt. Genau, das Ganze kann ich dann, auf das Ganze kann ich dann zugreifen, indem ich hier so eine bestimmte URL eingebe, das ist ein Handel, vielleicht gern einige von euch Deuss, das ist so das Standardmittel, um wissenschaftliche Texte zu verlinken. Das ist der Digital Object Identifier. Und das basiert technisch auf HDL bzw. auf Handelnet. Und das ist die Technologie, die wir auch benutzen, um quasi diese Objekte zitierbar zu machen. Das heißt, ich kann sagen, ich habe hier jetzt irgendwas vorbereitet, da läuft diese Software drauf, da habe ich diese Untersuchungen drauf angestellt, habe diese Designstudie gemacht oder sonst irgendwas. Und hier ist der Link, und wenn du das nachvollziehen willst, dann klickst du da drauf und dann siehst du genau das, was ich auch gesehen habe. Das ist quasi das Entscheidende daran, warum das auch so wichtig ist, dass das nachvollziehbar ist. Ja, dann die Connectivity. Wir können tatsächlich ins Internet damit, das haben wir auch ausprobiert. Es gibt das GeoCities Archive. One Terabyte of the Kilobyte Age dragern erst im Spiel, bevor GeoCities dann ganz den Bach runtergegangen ist, ein Archiv angelegt von allen GeoCities-Webseiten. Also es ist einfach mit einem Crawler drübergegangen und hat die Seiten alle runtergeladen und aufbewahrt. Und die werden jetzt wieder zur Verfügung gestellt. Das heißt, man kann sich tatsächlich anschauen, wie das Internet nach Mitte der 90er, Ende der 90er ausgesehen hat. Da sieht man dann ganz viele bunte GIFs und überall blinkt es und dann gibt es noch MIDI im Hintergrund, der spielt. Das sind aber alles Sachen, die heute nur noch teilweise funktionieren. Der Firefox kann schon lange keinen BlinkTag mehr. MIDI Sound im Hintergrund, das wird wahrscheinlich auch nicht so richtig funktionieren. Das so war das aber früher. Aber wenn man das nachvollziehen will, muss man das auch irgendwie wieder erfahrbar machen. Und das ist genau das, was wir machen können. Wir können jetzt tatsächlich einen alten Internet Explorer, 4 oder 5 oder was das war, auf einem alten Zeitgenössischen Mac OS 9 zum Laufen bringen und können dem sagen, hier benutze bitte diesen Proxim, auf das GeoCities-Archiv zuzugreifen. Und dann kann ich das Web der 90er browsing, zumindest das GeoCities-Web. Das Entscheidende daran ist jetzt, das klingt alles so, als müssten wir das alles einsammeln und als würden wir dann die Images dann in die Cloud schieben und so weiter, ist eigentlich gar nicht so. Weil das kommt im Prinzip schon aus der grundlegenden Anforderung. Das sind teilweise archivierte Sachen, die urheberrechtlich geschützt sind, die nur sehr eingeschränkt nutzbar sind oder genutzt werden dürfen. Und diese Institutionen, die das nutzen sollen später, also Bibliotheken und Archive, dürfen die Daten möglicherweise gar nicht weitergeben. Das heißt, es bringt einfach nichts, wenn die mit einer großen Festplatte voll ISO-Images zu uns kommen, weil die Festplatte müssen sie anschließend wieder mitnehmen. Das heißt, dass auch der Zwergzugriff auf diese virtuellen Festplatte und auch auf die virtuellen CDs übers Netzwerk dezentral stattfinden kann. Das heißt, jedes Archiv kann seinen eigenen Dienst zur Verfügung stellen, der mit Evolution Access Service dann reden kann und eben die Daten zur Verfügung stellt. So sieht das Ganze dann in der Praxis aus. Wir haben irgendwo ein Imagearchiv. Da sind ganz viele Base-Images drin. Das ist unser Name für das Betriebssystem ohne alles quasi. Und es gibt User-Modifications. Da ist zum Beispiel schon das Video vor Windows oder Quicktime installiert. Ich überhörne mich dann noch ein paar Meter Daten. Und der eigentliche Emulation-Teil findet da unten statt in dem gestrichelten Kasten. Und dort wird immer nur eine Referenz auf das eigentliche Imagearchiv erzeugt quasi. Und ich greife live auf dieses Imagearchiv zu. Das sieht dann so aus, dass wir Copy and Write verwenden dafür, damit das irgendwie Halbfix-Performant ist. Das heißt, alle geschriebenen Sachen, der benutzt, der wirklich vor dem Bildschirm oder vor dem Browser sitzt und darum klickt, die gehören erstmal tatsächlich uns. Aber wir haben wirklich ein blockweises Diff. Das heißt, man kann hier unten so eine Map sehen. Na ja, die Blöcke 0 bis 10.000, die wurden irgendwie modifiziert auf irgendeiner Art und Weise. Und dann kommen danach wieder ganz viele, also ganz viele Zeichen, die auf das Basis-Image zurückverweisen. Und dann gibt es danach nochmal ganz viele Bytes, die auf das Basis-Image zurückverweisen und so weiter. Das heißt, wir können tatsächlich nachvollziehen, was hat der User verändert? Das ist auch ganz interessant für digitale Forensiker, die dann irgendwie eine Festplatte analysieren müssen und rausfinden müssen. Und wenn das Betriebssystem butet zum Beispiel, dann schreibt es ganz viele verschiedene Sachen auf die Festplatte. Aber welche Sachen sind das dann ganz genau und wie kann ich das erreichen, dass ich das live benutzen kann, ohne die komplette Festplatte zu kopieren und nachher trotzdem nachvollziehen kann, was habe ich dann daran tatsächlich getan? Das können wir genau mit diesem Copy and Write Mechanismus machen. Und die Metadaten sehen dann erstmal so aus, dass ich hier irgendwie mir so ein Betrieb, so ein Computer definiere, das ist jetzt in dem Fall ein i3680er, ganz viel mehr hardware, ein Soundcard und was es uns noch so alles hat. Und dann kommt ein Laufwerk und dann kommt ein Binding, also eine Datenressource. Und die schauen wir uns zuerst an. Die sieht dann so aus, dass ich zum Beispiel sage, die liegt jetzt an dieser Stelle, unter dieser URL, finde ich das. Und ich möchte da gerne per Copy and Write draufzugreifen. Wir können das auch Passwort schützen, wenn wir wollen, also dass man ein bestimmtes Passwort eingeben muss, quasi um auf den Speicher zuzugreifen. Das kann man dann da drin machen. Das ist jetzt was ganz Besonderes, das ist nämlich ein Floppy Data Minding. Das ist erstmal nur der Name. Was wir machen können, ist, Disketten-Sammlungen in einem einzigen Container zu speichern. Wir können zum Beispiel ein Tarbol nehmen oder ein UDF nehmen und da einfach alle Floppy Images reinmachen, wer irgendwie mal Monkey Island auf zwei Disketten gespielt hat, der weiß, dass man da dann ab und zu mal die Diskette wechseln muss. Das heißt, eigentlich ist es ein Objekt, ein Spiel oder ein Stück Software, aber das verteilt auf ganz viele Medien. Und da kann man dann entsprechend draufzugreifen in so einem Drive. Das ist jetzt in dem Fall einfach ein Floppy-Disk. Also ein Floppy-Drive fängt an Bus 0, ist die Unit 0, ist also in dem Fall jetzt Laufhek A und in Dosssprache. Und wir können dann eben innerhalb dieses Containers auf Disk 1, 2, 3 ganz viele zugreifen und so eben das abbilden, dass man da verschiedene Medien auf einmal haben möchte. Dann zu der eigentlich interessanten Sache, der Netzwerk-Transport. Wie funktioniert das, dass ich tatsächlich das Imagearchiv irgendwo anders habe, aber mein Emulator nochmal ganz woanders in der Cloud ist und selbst wir wissen möglicherweise gar nicht genau wo der ist. Wir verwenden dafür den Blockdriver von Koimu und der unterstützt dankungswetterweise ganz ganz ganz viele Netzwerk-Protokolle. Die einfachen Fälle sind NFS und ZIFS, die muss ich irgendwie in meinem Emulator, also beziehungsweise nicht in dem Emulator, sondern in dem Host-System, Mountain einbinden, aber FDP und HTTP und so was, das kann ich alles direkt verwenden, ohne dass ich da irgendwie was großartig für machen muss. Das Problem da dran ist, naja, ich brauche immer eine volle Kopie, das heißt ich muss das tatsächlich runterladen, das komplette Image. Ein bisschen schöner ist es da, wenn ich NBD benutzen kann, das ist das Network-Block-Device-Protokoll. Da kann ich tatsächlich sagen, ich brauche von dieser Datei das byte Nummer 7338 bis 7345 und kriege dann genau diese. Das ist ungefähr das Gleiche, was HTTP Range auch kann und wir können auch tatsächlich beides. Also wir können sowohl NBD als auch HTTP mit Range verwenden, um effizient eben diese Images zu verteilen. Das heißt auch das Einzige, was jetzt so ein Archiv zur Verfügung stellen muss, ist ein so mittelmoderner Apache, der Range Requests kann. Das ist besonders effizient und wir können auch den Emulator dann sofort starten, weil wir müssen nicht erst warten, bis das komplette Image kopiert ist, sondern der Emulator sagt genau, ich brauche jetzt hier zum Beispiel den Bootsektor und ich brauche irgendwie den Kernel-Block und so weiter und so fragt er sich da quasi durch und kriegt genau die Blocke, die er haben will. Dann geht es dazu, wie kriegen wir das denn hin, dass jetzt die UI da irgendwie sichtbar ist. Die alte Lösung war tatsächlich, dass wir so ein FNC-Applet genutzt haben in Java, im Browser, in einer Webseite, der die Downside war, dass wir dafür eben FNC-Support brauchten in allen Immulatoren. Da gibt es zwar ein Patch für die lib.sdl, der ist aber schon lange nicht mehr gemeinteilt worden. Der war auch so ein bisschen kirky, den haben wir dann selber nochmal patchen müssen. Damit hat man erst mal so ein bisschen wenigstens QEMO und die Sheepshelver und Vasilisk ist das, was wir für die alten Mac-Systeme benutzen, verwenden können. Aber erst mal natürlich, man braucht Java, das ist schon mal doof. Dann braucht man irgendwie FNC, was nicht so durch jede Firewall möchte und ganz entscheidend eigentlich ist, es gab keinen Ton, weil FNC hat keinen Audio Support. Dann haben wir Guacamole gefunden. Guacamole ist ein Remote Desktop-Viewer in JavaScript, bzw. hat auch eine Java-Webservice-Seite, aber der Kleint ist in JavaScript geschrieben, der uns alles, was wir da so haben, per FNC auf einen HTML5 Canvas schickt. Für RDP kann er sogar Sound. Das funktioniert dann so, dass er irgendwie immer den Ton nimmt, den er gerade per RDP bekommen hat, das wieder ein kleines Ock-Stückchen packt und dieses Ock-Worbes-Stückchen an den Browser schickt, was der dann da wieder ein Audio-Tag draus macht und das abspielt. Das Render daran ist, dass wir jetzt endlich Ton hatten, zumindest in der Virtualbox, weil die Virtualbox ist der einzige Emulator, der von sich aus RDP kann, zumindest mit den Close Source Extensions. Dann haben wir uns überlegt, wie kriegen wir das damit mit dem Audio auch hin. Es hat mir schon Guacamole, der hat schon irgendwie eine Pipeline, um Audio zu machen. Also schreiben wir doch irgendwie einen Treiber für SDL und für Guacamole, die über Namepipes kommunizieren können. Wir schreiben also den Ton, den der Emulator per SDL rausgibt, einfach in so ein Pipeline und dann liest Guacamole das wieder aus und schickt es an den Browser, so wie er das mit dem RDP-Kram auch macht. Das hat dann auch funktioniert. Man kann sich ein bisschen vorstellen, dass das nicht so ganz optimal war, weil man hat einfach zwei Kanäle über die Daten übertragen werden mit unterschiedlichen Laufzeiten. Audio und Video Sync ist dann nicht so ganz einfach. Aber wir hatten jetzt erstmal Audio auf allen Plattformen, die wir unterstützt haben. Na ja, das Sync-Problem konnte man dann wie folgt lösen. Wir haben einfach gesagt, ja gut, wenn wir jetzt schon den Ton über so eine Namepipe schicken, dann machen wir doch einfach das gesamte SDL-Protokoll. Also alle Draw-Befehle quasi und auch alle Tonbefehle eben über so eine Namepipe. Das haben wir dann gemacht. Und raus kam dann, dass wir endlich gar kein VnC mehr brauchten. Das heißt, zum einen konnten wir diesen Patch loswerden und man braucht keine Ports mehr öffnen für VnC. Es läuft einfach ein VnC-Server weniger im System. Das ist immer irgendwie schön. Und wir haben aber vor allem keine unterschiedlichen Code-Branches mehr, die wir warten müssen. Also wir haben nicht irgendwie, der eine macht RDP, der andere macht VnC. Wir haben hier noch irgendwie was, eine Sonderregelung für Ton. Wir konnten das irgendwie alles zusammenfassen und jetzt passiert eben alles über SDL-Named Pipes. Und ja, endlich konnten wir dann alle Immulatoren auch Virtualbox, weil es gibt Virtualbox, also Vbox-SDL, die auch die Grafikausgabe dann eben per SDL macht, dazu überreden quasi mit uns zu sprechen, beziehungsweise mit Gurkamole zu sprechen. Und was uns Gurkamole auch liefert, ist ein automatisches Record-on-Replay. Wir können uns in diesen Strom einklinken quasi, also naja, hier sieht man irgendwie, das kommt dann, es kommen Input-Events aus dem Kleinen, das heißt der Nutzer tippt da irgendwas oder bewegt die Maus und zurück kommt irgendwie ein Bild und wir können es da einklinken und so einen Interceptor schreiben. Das hat den ganz praktischen Nutzen eigentlich, dass wir, wenn man da so ein bisschen dann noch Bilderkennung drauf anwendet und so ein bisschen Mustererkennung, Installationsprozesse automatisieren können. Wir können einmal ein Benutzer durchklicken lassen. Ich klicke jetzt auf dieses Alken und dann klicke ich hier auf Next und dann funktioniert das. Und wenn ich das einmal aufgezeichnet habe, kann ich das für mehrere Plattformen rekonstruieren. Ich kann das wieder abspielen. Ich kann wieder auf dieses Alken klicken und ich kann wieder auf diesen Next-Button klicken und dann installiert sich die Software quasi von alleine, ohne dass da immer einer davor sitzen muss. Außerdem bringt es uns ein schönes Debug-Tool. Diese ScreenUpdates sehen dann irgendwie so aus, dass es ein DOS, was gebutet hat in einem Coemo. Und man sieht dann auch schön, wie die einzelnen Betriebssysteme oder die einzelnen Emulatoren mit ScreenUpdates arbeiten. Hier ist zum Beispiel irgendwie so ein eigener Kasten, nur um das B und ich weiß nicht so genau warum, dann werden mal größere und mal kleinere Bereiche geupdatet. Interessant ist vor allem Coemo unter Windows, also Windows als Gast mit Maussupport. Wenn man die Maus bewegt, würde man ja denken, okay, dann update ich nur das kleine Stückchen, was um die Maus drumherum ist. Aber nee, Coemo schickt die gesamte Bildschirmzeile, egal wie lang sie ist, mit der Maus verschoben. Also kriegt man da relativ große ScreenUpdates für eigentlich sehr kleine Änderungen. Ja, kann man sich darüber streiten, ob das irgendwie sinnvoll ist oder nicht, oder welche Gründe das haben kann, ist auf jeden Fall ein Ansatzpunkt, wenn wir irgendwie Performance Probleme haben, was man dagegen machen kann. Wir arbeiten derzeit zusammen mit verschiedenen Leuten. Zum einen gibt es ein DFG-Forschungsprojekt, um eben genau diese multimedialen Objekte, diese CDs-Software in Bibliotheken zur Verfügung zu stellen. Das heißt, man kann sich da dann in Lesesaal setzen. Derzeit ist es so, man kriegt dann die CD in die Hand gedrückt oder die Diskette, und dann wird gesagt, da hinten stehen die Rechner, viel Spaß damit. Das kann gut gehen, kann aber auch nicht gut gehen, weil ich weiß zum Beispiel nicht, wie ich das OS2 richtig konfiguriere, sodass es dann auch funktioniert. Das Ziel des DFG-Projekts ist es dann, diesen Prozess so weit zu automatisieren, dass man sich dann eben dahin stellen kann und beliebige Computer nehmen kann und da einfach im Browser dann seine Software benutzen kann. Außerdem gibt es die Yale Library, also von der University Yale, die das untersucht gerade, was wir da so treiben und das dann gerne auch benutzen möchte. Wir haben schon mit der Transmediale in Berlin, das ist eine Ausstellung für diverse Kunst. Die haben Archive mit Objekten, die uns teilweise auch zur Verfügung stehen und die das dann eben ausstellen. RISOM und E-Mail sind derzeit zwei große Partner von uns, die tatsächlich sich auf digitale Kunst spezialisiert haben und die auch gerne ausstellen möchten. In Berlin, also in Brüssel startet der nächste Ausstellung über zeitgenössische Kunst in Computern, also zeitgenössisch im Sinne von vergangenen 10, 20 Jahre, die das eben gerne ausstellen möchten, die genauso wie ich ins Louvre gehen kann und mir irgendwie ein altes Bild anschauen kann, möchten, dass man das mit Software auch so machen kann. Probleme, die wir damit haben oder die derzeit noch keine Beachtungen gefunden haben, zum einen die Copyright-Fragen, derzeit halten wir uns eigentlich an das Easter-Hack-Motto und sagen, we don't care. Wir haben natürlich ein Windows in verschiedenen Varianten zur Verfügung, die Fragen sind aber derzeit nicht geklärt. Man kann natürlich argumentieren, naja, wir verarbeiten die Daten nicht oder wir stellen das irgendwie, oder wir kopieren das sowieso nicht und das ist nur zur externen Verarbeitung und im Auftrag kann man das da irgendwie machen, aber genau untersucht haben wir das bisher noch nicht. Ein ganz großes Problem für uns sind Hardware-Dongles, also wenn man irgendwie Software hat, für die man irgendwie so ein komisches Ding an den LPD-Port stecken musste, damit die Software überhaupt lief, das sind Sachen, die wir noch lösen müssen, um eben auch diese Hardware zu emulieren, diese spezielle Hardware. Ähnliches Problem haben wir mit externen Lizenzservern, also es gibt im Bereich, also vor allem auch naturwissenschaftlich, wenn ich Forschungsdaten auf diese Art und Weise zur Verfügung stellen möchte, das heißt, ich habe irgendwie eine Datenanalyse gemacht und habe dafür ein Matlab-Skript benutzt und ich brauche eine Matlab-Lizenz dafür. Dann ist der Server irgendwo und wenn der Server offline ist in 20 Jahren, naja, dann kann ich halt das Analyseskript nicht mehr laufen lassen, ist dann entsprechend doof. Gerade aktueller wird, immer aktueller wird, vor allem durch die Mobiltelefone, sind besondere Sensoren. Wie kriege ich jetzt meinen Browser dazu, irgendwie, naja, wenn ich den jetzt so bewege, dass ich da dann, weil sich mein Rennauto lenken kann, das sind noch Sachen, die noch auf uns zukommen werden, die nicht jetzt aktuell sind, aber wahrscheinlich eben in 10 Jahren, wenn man auf das von vor 10 Jahren wieder zugreifen möchte. Und ja, dann gibt es natürlich immer noch so ein Risikoabwägung. Ich kann jetzt ganz viel Arbeit und Geld und Zeit in die Emulatoren stecken, aber wer sagt mir denn, dass das in 5 Jahren oder in 10 Jahren noch funktionieren wird? Wir benutzen jetzt Coemo, wer sagt mir denn, dass es in 10 Jahren noch Coemo geben wird? Da muss man irgendwie Möglichkeiten finden, vielleicht über öffentliche Stiftungen, genau mit diesem Ziel, die Emulatoren weiter am Leben zu erhalten. Es gibt natürlich andere Wege, es wird je nachdem, welchen Bibliothekar man fragt, wird er bei Emulationen gleich die Pickel kriegen, die davon ausgehen, dass das Emulation sowieso der falsche Weg ist. Aber ich denke, dass es nicht den einen richtigen Weg gibt. Für manche Sachen sind Videos oder Abschriebe oder sowas durchaus sinnvoll. Für andere Sachen eher nicht. Insbesondere dann, wenn ich verdeutlichen möchte, wie sich das wirklich angefühlt hat. Also wenn ich nicht nur das E-Book als Text betrachte, sondern das E-Book als Medium betrachte, es ist schon zumindest nicht uninteressant nachzuvollziehen, wie das tatsächlich funktioniert hat. Dann gibt es noch eine öffentliche Demo. Die Userdaten könnt ihr aufschreiben, fotografieren wie auch immer. Da kann man ein bisschen rumklicken. Wir haben verschiedene Betriebssysteme. Die Demo auch verschiedene digitale Objekte, die wir benutzen dürfen dankenswerterweise für genau solche Sachen. Und weil ich jetzt noch 10 Minuten Zeit habe, können wir zum einen, falls ihr noch Fragen habt, darauf eingehen. Zum anderen kann ich versuchen, selbst die Demo zu starten und ein paar Sachen zu zeigen, die wir machen können. Gibt es denn Fragen dazu? Na gut, dann zeige ich mal, was wir so machen können. Und zwar funktioniert das jetzt natürlich nicht. Zum einen können wir, ich hoffe, das funktioniert ja auch mit dem Ton, das Box emulieren und da dran dann Doom spielen. Das funktioniert zumindest im lokalen Netz ziemlich gut. Es ist auch sehr flüssig. In Freiburg, also der Emulator, ist physikalisch in Freiburg. Mit dem Ton funktioniert das leider nicht so. Schade. Normalerweise gäbe es auch Ton. Und die Daten werden live quasi erzeugt. Ich kann auch, wenn ich versuchen kann, irgendwie das Menü zu erreichen. Genau, dann kann ich auch selber da rumlaufen welche Taste war das denn? Steuerung, genau. So was können wir eben machen. Das heißt, wir können tatsächlich irgendwie einem Game Designer sagen, so sah Doom damals aus. Das ist Original Doom. Wir können auch uns anschauen eben dieses Geosities Projekt. Das ist jetzt ein MacOS 9 in dem Fall. Das auch bootet quasi live. Also ich muss dem Ding schon irgendwie so ein bisschen zugucken dabei. Ist aber glaube ich immer noch relativ schnell verglichen mit dem, wie das damals lief. Und das ist jetzt die Maschine, die wir tatsächlich eben in diesen Proxy-Gang haben, der Geosities-Served, die Geosities-Archive. Diese wurden auch so modifiziert von Drakern, dass sie funktionieren. Also dass die Links zum Beispiel darin tatsächlich wieder auf das Archiv selber zurückführen und nicht irgendwo sonst irgendwo hin, was eben nicht mehr existiert. Und da kann man jetzt, ich weiß jetzt nicht, ob man das auf den Beamer so gut sehen kann, wahrscheinlich nicht. Im Hintergrund, also das Hintergrundbild ist so ein Raumnebel, da sind ganz viele kleine Sterne drin und die Funkeln auch, also als animiertes GIF. Und wir sehen auch tatsächlich, dass damals schon Cut Content existiert hat, oder erzählt irgendeiner über seine Katze und die kleinen Kätzchen. Man kann hier jetzt irgendwo weiterklicken und kriegt dann tatsächlich eben die Webseite von damals. Da sieht man dann auch die Katze. Irr, etwas mühsam. So, man kann da schön scrollen und kann eben der Katze beim Schlafen zusehen. Das ist wahrscheinlich einer ersten Cut Content, die so entstanden sind. Und die können wir uns jetzt auf diese Art und Weise so anschauen, wie man das auch damals gesehen hat. Eigentlich würde die Seite auch in Media spielen. Das würde auch funktionieren. Meist nicht, vielleicht gibt er gerade den Ton über HDMI aus und ich bin zufrieden, um das umzustellen. Ja, wenn es dann immer noch keine Fragen gibt, bedanke ich mich für die Aufmerksamkeit. Und wenn damit am Ende. Ja, natürlich. Na, jetzt habe ich das Ding nochmal wieder zugemacht. Die werde ich auch in den Fahrplanstellen sofern das irgendwie möglich ist, dass man da dann ein bisschen mehr drum spielen kann.