Mit dem Prototyp des Olivenarchivsystems können Sie Vintage-Code auf modernen Computern ausführen

Anfang 2010 veröffentlichten die Harvard-Ökonomen Carmen Reinhart und Kenneth Rogov eine Analyse von Wirtschaftsdaten aus verschiedenen Ländern und kamen zu dem Schluss, dass eine Verschuldung von mehr als 90% des BIP das Wirtschaftswachstum des Landes gefährden wird. Bei so viel Verschuldung sollte das Wachstum ihrer Meinung nach negativ werden.
Ihre Analyse wurde kurz nach der Rezession von 2008 durchgeführt, sodass sie in direktem Zusammenhang mit der Arbeit des Gesetzgebers stand, von dem viele zuversichtlich waren, die Schulden zu erhöhen, um die Volkswirtschaften anzukurbeln. Gleichzeitig nutzten konservative Politiker wie der damalige
EU-Kommissar Olli Rehn und der US-Kongressabgeordnete Paul Ryan die Entdeckungen von Reinhart und Rogov, um sich für finanzielle Abstinenz einzusetzen.
Drei Jahre später fand Thomas Herndon, Absolvent der University of Massachusetts, einen Fehler in der Excel-Tabelle, die Reinhart und Rogov für ihre Berechnungen verwendeten. Ihre Bedeutung war enorm: Bei richtiger Analyse zeigte Herndon, dass die Verschuldung von 90% des BIP mit einem positiven Wirtschaftswachstum von 2,2% und nicht mit einem negativen Wachstum von -0,1% korrelierte, wie Reinhart und Rogov schrieben.
Herndon konnte die Schlussfolgerungen der Harvard-Ökonomen leicht überprüfen, da er Zugriff auf die Software hatte, mit der sie arbeiteten - Microsoft Excel. Was ist mit älteren Entdeckungen, bei denen alte Software verwendet wurde, die heute schwer zu finden ist?
Wir können entscheiden, dass die Lösung dieses Problems - die Wartung wichtiger Software für zukünftige Forscher - nicht kompliziert sein sollte. Schließlich ist Software nur eine Sammlung von Dateien, und diese Dateien können einfach in digitaler Form auf Ihrer Festplatte oder auf Band gespeichert werden. Der Programmcode einiger Programme kann sogar auf Papier reproduziert werden, um Probleme mit der Veralterung digitaler Medien zu vermeiden, für die er geschrieben wurde.
Programme werden auf diese Weise fortlaufend gespeichert, auch für Programme, die mehrere Jahrzehnte alt sind. Online finden Sie beispielsweise den Quellcode für den Apollo Guidance Computer, mit dessen Hilfe in den 1960er Jahren Astronauten zum Mond gebracht wurden. Es wurde aus Papier umgeschrieben und 2016 auf GitHub hochgeladen.
Und obwohl ein Hardcore-Programmierer ein sorgfältiges Studium eines solchen Vintage-Codes mag, sind die meisten Leute nicht interessiert. Sie sind an der Verwendung von Software interessiert. Es ist jedoch äußerst schwierig, die Software für längere Zeit betriebsbereit zu halten, da für die Ausführung der meisten alten Programme alte Computer und alte Betriebssysteme erforderlich sind.
Möglicherweise sind Sie selbst auf solche Probleme gestoßen, als Sie versucht haben, Computerspiele Ihrer Jugend zu spielen. Im Bereich der wissenschaftlichen und technischen Forschung kann die Unfähigkeit, ein altes Programm zu starten, zu weitaus schwerwiegenderen Konsequenzen führen.
Neben Ökonomen verwenden viele andere Forscher, beispielsweise Physiker, Chemiker, Biologen und Ingenieure, ständig Programme zur Datenverarbeitung und Visualisierung von Analyseergebnissen. Sie befassen sich mit der Simulation von Phänomenen mithilfe von Computermodellen, die in verschiedenen Programmiersprachen geschrieben sind, und mit einer großen Anzahl von Softwarebibliotheken, die ihre Arbeit und Verknüpfungen zu Datensätzen unterstützen. Solche Untersuchungen und die Software, auf die sie sich verlassen, spielen eine wichtige Rolle bei Entdeckungen und Berichten über Suchergebnisse.
Stellen Sie sich vor, Sie sind ein Forscher, der die Berechnungen eines anderen Wissenschaftlers überprüfen möchte, die vor 25 Jahren durchgeführt wurden. Wird Ihnen diese alte Software noch zur Verfügung stehen? Das Unternehmen, das es veröffentlicht hat, konnte bereits schließen. Selbst wenn es eine moderne Version davon gibt, werden die Daten im Originalformat akzeptiert? Werden alle Berechnungen - zum Beispiel mit Rundungsfehlern - mit den alten Berechnungen identisch sein, die vor einer Generation auf dem Computer erstellt wurden? Wahrscheinlich nicht.
Die Abhängigkeit von Forschern von Computern nimmt zu, und die Schwierigkeiten beim Versuch, alte Software auszuführen, nehmen zu. Dies hindert sie daran, zuvor veröffentlichte Ergebnisse zu überprüfen. Das Problem veralteter Software negiert das Konzept der Reproduzierbarkeit, das der Wissenschaft zugrunde liegt.
Dieses Problem kann sich auf die Durchführung forensischer Untersuchungen auswirken. Angenommen, die Berechnungen des Ingenieurs haben ergeben, dass das Gebäude stehen muss und danach das Dach des Gebäudes fällt. Hat der Ingenieur einen Fehler gemacht oder war die Software fehlerhaft? Wenn die Software viele Jahre später nicht gestartet werden kann, ist die Überprüfung sehr schwierig.
Aus diesem Grund haben Kollegen der Carnegie Mellon University und ich eine Möglichkeit entwickelt, Programme so zu archivieren, dass sie heute und in Zukunft problemlos gestartet werden können. Meine Kollegen, die Informatiker Benjamin Gilbert und Ian Harks, haben den größten Teil des Codes geschrieben. Der Software-Archivar Daniel Ryan und die Bibliothekare Gloriana Saint-Claire, Erica Linke und Kif Webster, die aus offensichtlichen Gründen ein großes Interesse daran haben, diesen Teil der modernen Kultur zu bewahren, nahmen ebenfalls an der Zusammenarbeit teil.
NCSA Mosaic 1.0, einer der ersten Browser mit Macintosh, 1993
Chaste (Krebs-, Herz- und Weichteilumgebung) 3.1 für Linux, 2013
The Oregon Trail 1.1, Spiel für Macintosh, 1990
Wanderer, ein Spiel für MS-DOS, 1988
Mystery House, Spiel für Apple II, 1982
The Great American History Machine, ein interaktiver Bildungsatlas für Windows 3.1, 1991
Microsoft Office 4.3 für Windows 3.1, 1994
ChemCollective, Educational Chemistry Software für Linux, 2013Da sich dieses Projekt auf die Erhaltung von Software und nicht auf die populäre Informatik bezieht, haben wir keine Mittel dafür von normalen staatlichen Stellen gesammelt, sondern von der Alfred Sloan Foundation und dem Institut für Museums- und Bibliotheksdienste. Mit ihrer Hilfe haben wir die Wiederherstellung längst vergessener Computersysteme demonstriert und sie allen online zur Verfügung gestellt, sodass jeder Computerbenutzer mit einem Klick in die Vergangenheit reisen kann.
Wir haben das
Olive- System erstellt, eine Abkürzung für Open Library of Images for Virtualized Execution. Mit Olive erhalten Sie über das Internet den gleichen Eindruck, den Sie beim Starten einer Anwendung, eines Betriebssystems oder eines Computers aus der Vergangenheit erhalten würden. Durch die Installation von Olive können Sie mit sehr alter Software arbeiten, als wäre sie modern. Dies ist ein Teil des
Wayback Machine- Internetarchivs für ausführbare Programme.
Um zu verstehen, wie Olive eine alte Computerumgebung wiederbeleben kann, müssen Sie mehrere Ebenen von Software-Abstraktionen durchlaufen. Ganz unten befindet sich die gemeinsame Basis der meisten modernen Computertechnologien: ein Standard-Desktop-Computer oder -Laptop mit einem oder mehreren x86-Mikroprozessoren. Darauf führen wir das Linux-Betriebssystem aus, das die zweite Schicht auf dem Stack bildet.
Über dem Betriebssystem befindet sich die VMNetX-Software, die in meinem Labor geschrieben wurde und eine virtuelle Maschine über ein Netzwerk ausführt [Virtual Machine Network Execution]. Eine virtuelle Maschine ist eine Computerumgebung, die die Umgebung auf einem Computer nachahmt, der auf einem anderen Computertyp vorhanden war. Mit VMNetX können Sie virtuelle Maschinen auf einem zentralen Server speichern und bei Bedarf remote ausführen. Der Vorteil ist, dass Ihr Computer nicht den gesamten Festplatten- und Speicherstatus vom Server herunterladen muss, um die virtuelle Maschine zu starten. Die auf der Festplatte und im Speicher gespeicherten Informationen werden bei Bedarf in Teilen heruntergeladen, um die nächste Schicht zu organisieren - den Virtual Machine Monitor (Hypervisor), der den Betrieb mehrerer Maschinen gleichzeitig unterstützen kann.
Auf jeder der virtuellen Maschinen funktioniert ein Hardware-Emulator - dies ist die nächste Ebene im Olive-Stack. Der Emulator gibt vor, einen Computer zu betreiben, der schon lange nicht mehr verwendet wird - zum Beispiel den alten Macintosh Quadra mit der Motorola 68040-CPU aus den 90er Jahren. Wenn die archivierte Software auf einem x86-basierten Computer ausgeführt werden kann, kann diese Virtualisierungsebene weggelassen werden.
Die nächste Schicht ist das alte Betriebssystem, auf dem Archivsoftware ausgeführt werden kann. Sie hat Zugriff auf eine virtuelle Festplatte, die ein Laufwerk und ein Dateisystem simuliert, die erforderlich sind, damit die nächsten Ebenen dieses Programmabstraktionskuchens funktionieren.
Über dem alten Betriebssystem befindet sich bereits das Programm selbst. Es kann die Spitze des Heaps sein, oder es kann eine andere Ebene haben, die aus Daten besteht, die das Programm einspeisen muss, um das zu erhalten, was Sie wollen.
Die obersten Ebenen von Olive sind für jedes Archivprogramm unterschiedlich und werden auf einem zentralen Server gespeichert. Die unteren Schichten werden als Client-Teil auf dem Computer des Benutzers installiert. Beim Starten des Archivierungsprogramms lädt der Olive-Client die erforderlichen Teile der oberen Schichten bei Bedarf vom zentralen Server herunter.

Das hat das System unter der Haube. Aber was kann Olive tun? Heute enthält es 17 verschiedene virtuelle Maschinen, auf denen eine Vielzahl von Betriebssystemen und Anwendungen ausgeführt werden können. Die Wahl, was in das System aufgenommen werden soll, basierte auf einer Mischung aus Neugier, Zugänglichkeit und persönlichen Interessen. Zum Beispiel erinnerte sich ein Mitglied unseres Teams liebevoll daran, wie er Anfang der neunziger Jahre während seines Schulbesuchs auf dem Oregon Trail gespielt hatte. Als Ergebnis haben wir eine alte Version des Spiels für Mac gefunden und es über Olive gestartet. Nachdem dies bekannt wurde, kamen viele Leute mit Fragen über die Möglichkeit, ihre Lieblingssoftware aus der Vergangenheit wiederzubeleben, zu uns.
Die älteste Anwendung, die wir wiederhergestellt haben, ist Mystery House, ein Grafikspiel aus den frühen 1980er Jahren für einen Apple II-Computer. Ein weiteres Programm ist das NCSA-Mosaik, das, wie sich Menschen eines bestimmten Alters erinnern können, ihnen WWW-Wunder bescherte.
Olive hat eine Version von Mosaic, die 1993 für das Macintosh System 7.5 geschrieben wurde. Dieses Betriebssystem läuft auf dem Motorola 68040-CPU-Emulator, der mit Software erstellt wurde, die auf einem x86-basierten Computer unter Linux ausgeführt wird. Trotz all dieser Virtualisierung ist die Leistung nicht schlecht, da moderne Computer viel schneller arbeiten als die ursprüngliche Apple-Hardware.
Es ist sehr interessant, das restaurierte Mosaik von Olive auf moderne Stätten zu lenken. Es erschien früher als moderne Webtechnologien wie JavaScript, HTTP 1.1, Cascading Style Sheets und HTML 5 und kann daher die meisten Websites nicht anzeigen. Möglicherweise möchten Sie jedoch nach
Websites suchen
, die so lange erstellt wurden, dass sie in diesem Browser perfekt sichtbar sind.
Was kann Olive sonst noch? Sie fragen sich möglicherweise, welche Tools unmittelbar nach dem Erscheinen des Intel Pentium-Prozessors im Geschäftsleben verwendet wurden. Olive kann dabei helfen. Starten Sie Microsoft Office 4.3 seit 1994 (das glücklicherweise herauskam, bevor der nervige Clip-Assistent erschien).
Vielleicht möchten Sie einen nostalgischen Abend mit Doom for DOS verbringen oder sehen, warum Ego-Shooter Anfang der 90er Jahre so beliebt wurden. Oder Sie müssen Ihre Steuern ab 1997 wiederholen und finden auf dem Dachboden keine Festplatte mit dieser Version von TurboTax. Mach dir keine Sorgen, Olive wird sich um dich kümmern.
Wenn Sie über ernstere Dinge sprechen
möchten , wird in Olive
Chaste 3.1 gespeichert. Dies ist die Abkürzung für Cancer, Heart and Soft Tissue Environment (Krebs, Herz und Weichgewebe). Dies ist eine an der Universität Oxford entwickelte Simulation, mit der Rechenprobleme in Biologie und Physiologie gelöst werden können. Version 3.1 bezog sich auf ein im März 2013 veröffentlichtes Forschungspapier. Zwei Jahre nach der Veröffentlichung wurde der Quellcode von Chaste 3.1 jedoch nicht mehr in neuen Linux-Versionen kompiliert. Dies ist ein großartiges Beispiel für die Probleme der wissenschaftlichen Reproduzierbarkeit, die das Olivensystem lösen sollte.

Damit Chaste 3.1 funktioniert, bietet Olive eine zeitlose Linux-Umgebung. In Olive Chaste neu erstellt enthält auch Beispiele für Daten, die mit einer Arbeit von 2013 veröffentlicht wurden. Durch die Verarbeitung dieser Daten wird die Arbeit der Muskeln visualisiert. Zukünftige Physiologieforscher, die diese Visualisierungen untersuchen oder Korrekturen an veröffentlichter Software vornehmen möchten, können Olive verwenden, um Code auf einer virtuellen Maschine zu bearbeiten und auszuführen.
Olive ist derzeit für eine begrenzte Anzahl von Benutzern verfügbar. Aufgrund von Lizenzbeschränkungen steht die Olive-Suite alter Software nur Personen zur Verfügung, die an der Entwicklung des Projekts beteiligt waren. Software-bezogene Unternehmen müssen die Erlaubnis erteilen, wiederbelebte Programme einem breiten Publikum vorzustellen.
Wir sind nicht allein auf der Suche nach Möglichkeiten, das Leben in alter Software aufrechtzuerhalten. Internet Archive speichert Tausende alter Programme mit einem browserbasierten MS-DOS-Emulator. In Yale entwickeln sie das EaaSI-Projekt (Emulation als Service-Infrastruktur), um allen Zugriff auf Tausende von Emulationen von Software-Umgebungen aus der Vergangenheit zu ermöglichen. Wissenschaftler und Bibliothekare des Software Preservation Network arbeiten an diesem und anderen Projekten. Sie arbeiten auch an der Lösung von Urheberrechtsproblemen, die beim Starten alter Software auf diese Weise auftreten.
Olive ist bereits gut entwickelt, aber sie ist noch weit von einem vollständig fertigen System entfernt. Neben dem Lizenzproblem muss sie einige technische Hindernisse überwinden.
Eines der Hindernisse ist der Import neuer Daten zur Verarbeitung durch das alte Programm. Bisher müssen solche Daten manuell eingegeben werden, und diese Methode ist schwierig und fehleranfällig. Diese Methode begrenzt auch die Datenmenge, die analysiert werden kann. Selbst wenn wir einen Datenimportmechanismus hinzufügen würden, wäre die gespeicherte Datenmenge durch die Größe der virtuellen Festplatte der virtuellen Maschine begrenzt. Dies mag wie ein kleines Problem erscheinen, aber Sie müssen bedenken, dass die Dateisysteme alter Computer manchmal solche Einschränkungen hinsichtlich des Volumes hatten, die jetzt als seltsam empfunden werden.
Eine weitere Hürde ist die GPU-Emulation. Seit geraumer Zeit verwenden Wissenschaftler Parallel Computing, um verschiedene Berechnungen zu beschleunigen. Um ausführbare Software zu archivieren, die eine GPU verwendet, muss das Olive-System virtuelle Versionen solcher Chips neu erstellen - und dies ist eine schwierige Aufgabe. Dies liegt daran, dass die GPU-Schnittstellen - was sie eingeben und was sie ausgeben können - nicht standardisiert sind.
Offensichtlich bleibt noch viel zu tun, bevor wir die Lösung von Problemen bei der Archivierung ausführbarer Programme bekannt geben. Olive ist jedoch ein guter Anfang für die Erstellung der Systeme, die erforderlich sind, um sicherzustellen, dass alte Programme in einem Zustand gehalten werden, in dem sie lange untersucht, getestet und verwendet werden können.