In einer Diskussion über die Abwärtskompatibilität in Linux - Kernel und GUI ABIs , Alan Cox stellt fest , dass „ mein 3.6rc Kernel wird eine Rogue binäre 1992 X gebaut noch läuft wieder kompatibel zu Anwendungen weit älter als Linux. “
Wie abwärtskompatibel sind die binären Schnittstellen der Linux- Anwendung ?
Was ist die älteste ausführbare Binärdatei, die vor Jahren geschrieben und kompiliert wurde und die noch auf einer modernen Linux-Distribution für allgemeine Zwecke ausgeführt werden kann?
Ich bin sicher, dass all diese Wörter interpretiert werden müssen. Mein Hauptgedanke ist, dass es nicht fair ist, es über einen Emulator oder eine spezialisierte virtuelle Maschine oder einen Binärübersetzer auszuführen, aber einige dieser Dinge sind wahrscheinlich in einige moderne Distributionen integriert, und dies zu lernen, macht hier Spaß.
Variationen nach Hardwarearchitektur, ausführbarem Dateiformat , Sprache und wichtigen Abhängigkeiten beim dynamischen Laden der Bibliothek sind ebenfalls von Interesse.
Wenn die Regeln gelockert sind, sehen Sie hier ein Beispiel dafür, wie Sie weiter zurückgehen. Die 2002 Webseite Lauf a.out ausführbare Dateien auf modernen Red Hat Linux Gespräche über die Verwendung von wirklich alter Linux Pre-ELF a.out-Format ausführbare Dateien nach tun modprobe binfmt_aout
und zu erhalten /lib/ld.so
und libc.so.4
wieder , dass die von peripherem Interesse für diese Frage, aber die Art von Dingen zeigen , dass kann beim Graben weiter zurück beteiligt sein.
Update für BSD-Fans. Es ist großartig zu sehen, dass iBCS2 alte Xenix-Apps (wie zork / dungeon-2.5.6 von 1990) und SCO OpenServer 5.0.x-Apps bis NetBSD 4.0.1 (von 2008) unterstützt: iBCS2 & NetBSD | Spaß mit der Virtualisierung . Aber dasselbe scheint in NetBSD 5.0.x nicht zu funktionieren.
Update 2 : Ein Jahr später, nachdem ich sogar ein "Ansager" -Abzeichen für diese Frage bekommen habe, suche ich immer noch nach einer Antwort. Und um zu verdeutlichen, da es sich um APIs handelt, sollte es sich um eine "echte" Binärdatei (Länge ungleich Null) handeln, die zumindest größtenteils noch in der ursprünglichen Weise funktioniert.