Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03247.jsonl.gz/251

Di, 24. Mai 2022, Ralf Hersel
Könnt ihr euch noch an Lotus 1-2-3 erinnern? "Rechnet schneller als Sie 1-2-3 sagen können". Das war ein altes Tabellenkalkulationsprogramm, das den frühen PC-Markt dominierte und dem etablierten Visicalc damals den Rang ablief. Tavis Ormandy hat es geschafft, die alte Software nativ unter Linux zum Laufen zu bringen - eine ziemliche Leistung für eine Software, die rund 40 Jahre alt ist und für ein anderes Betriebssystem geschrieben wurde.
Wer erst vor kurzem auf Linux umgestiegen ist, erinnert sich vielleicht nicht mehr daran, wie mühsam es früher war, Software zu installieren. Aber in diesem Fall war es noch schlimmer, denn die Software war nicht einmal für Linux gedacht. Das ganze Abenteuer begann damit, dass Tavis das API-Kit finden wollte, mit dem man Plugins zu Lotus hinzufügen konnte. Theoretisch könnte man damit das altehrwürdige Tabellenkalkulationsprogramm um moderne Funktionen erweitern.
Das 395 Dollar teure Softwareentwicklungskit war nicht sehr verbreitet, und es gab auch eine Unix-Version von Lotus 1-2-3, von der aber niemand eine Kopie zu haben schien. Tavis fand schliesslich jemanden, der ein BBS aus den 1990er Jahren betrieb und die Daten auf Band hatte. Es stellte sich heraus, dass es eine aktuelle Kopie des SDKs gab, die er verwenden konnte. Aber er bemerkte noch etwas anderes in der Dateiliste des BBS: die lange verschollene Unix-Version von Lotus 1-2-3.
Eine Untersuchung ergab, dass das Installationsprogramm TD0-Dateien verwendete, was einige Nachforschungen erforderte. Glücklicherweise gibt es ein Dienstprogramm, das diese Dateien in Rohdateien umwandeln kann. Darin befand sich eine sehr grosse Objektdatei. Anscheinend wurde dieses Objekt in den Tagen ohne dynamisches Laden mit Plug-in-Modulen verknüpft, um sie zu installieren.
Die Objektdatei enthielt alle Debugging-Informationen, die viel Aufschluss über die internen Operationen des Programms gaben. Die alten ausführbaren Dateien verwendeten das COFF-Format, bei denen es möglich ist, sie in eine ELF-Datei umzulinken. Natürlich war das nicht ganz so einfach. Tavis hat ein kleines Programm geschrieben, um die Unix-Systemaufrufe im alten Stil zu entfernen, damit sie in Linux-Systemaufrufe umgeleitet werden können. Einige Aufrufe funktionierten einfach dadurch, andere mussten aufgrund von Unterschieden bei Strukturlayout, Grösse und Ausrichtung übersetzt werden.
Am Ende funktionierte alles, aber es gab keine gültige Lizenz. Aber Tavis war der Meinung, da er eine Lizenz hatte und die Software aufgegeben wurde, die Lizenzprüfung übergehen zu können. Wer Lust hat, diesen Dinosaurier der Tabellenkalkulationen wiederzubeleben, findet auf der Github-Seite eine Anleitung zum Bauen.
Quellen: