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.
quelle
Antworten:
Ich denke, dass / bin / true die älteste Arbeit sein muss.
Können Sie eine Null-Byte-Datei als Binärdatei bezeichnen?
quelle
go.com
sowohl für CP / M als auch für DOS aufgerufen wurde und das die zuletzt geladene COM-Datei erneut ausführte. Also wurde es sogar verkauft. Tatsächlich ist es also älter als Linux. Es änderte nur, was es tat, als es Plattform sprang. Sprechen Sie über Abwärtskompatibilität! Wir haben ein CP / M-, DOS- und * nix-Programm, die alle gleichzeitig ausgeführt werden.zsh: exec format error
Den Analysebericht für den Linux-Kernel ABI finden Sie hier (2.6.36-4.4.5-Versionen):
Den gleichen Bericht finden Sie für mehrere Linux-Basisbibliotheken auf dieser Seite (Glibc, Qt, cairo, ...). Die Abwärts-Binärkompatibilität wird für jede Version in Prozent geschätzt, sodass Sie für jede Bibliothek eine Schlussfolgerung zur allgemeinen ABI-Kompatibilität ziehen können:
Viele weitere Berichte für etwa 700 Linux-Bibliotheken finden Sie auf der Website upstream.rosalinux.ru . Diese Ressource wird nicht mehr unterstützt (verwenden Sie stattdessen abi-tracker ), Sie können jedoch die Berichte für die alten Bibliotheksversionen einsehen.
quelle