Dans une discussion sur la rétrocompatibilité dans les ABI de noyau Linux et d'interface graphique , Alan Cox note que " mon noyau 3.6rc continuera d'exécuter un fichier binaire Rogue construit en 1992. X est de nouveau compatible avec les applications bien plus anciennes que Linux. "
Dans quelle mesure les interfaces binaires de Linux Application sont-elles rétrocompatibles ?
Quel est le plus ancien exécutable binaire, écrit et compilé il y a des années, qui fonctionnera toujours sur une distribution courante standard de Linux?
Je suis sûr que tous ces mots sont sujets à interprétation. Mon idée principale est qu'il n'est pas juste de l'exécuter via un émulateur, une machine virtuelle spécialisée ou un traducteur binaire, mais certaines choses de ce genre sont probablement intégrées à des distributions modernes, et en apprendre davantage à ce sujet fait partie du plaisir ici.
Les variations par architecture matérielle, format de fichier exécutable , langage et dépendances majeures du chargement dynamique de la bibliothèque présentent également un intérêt.
Notez que lorsque les règles sont assouplies, voici un exemple de remonter plus loin. La page Web 2002 Exécution de fichiers exécutables a.out sous Red Hat Linux moderne explique comment utiliser de très anciens fichiers exécutables au format a.out pré-ELF après avoir fait modprobe binfmt_aout
et obtenu /lib/ld.so
. libc.so.4
Encore une fois, c’est un intérêt secondaire pour cette question, mais il illustre le genre de choses que peut être impliqué en creusant plus en arrière.
Mise à jour pour les fans de BSD, il est bon de constater qu'iBCS2 prenait en charge les anciennes applications Xenix (telles que zork / dungeon-2.5.6 de 1990) et les applications SCO OpenServer 5.0.x aussi récentes que NetBSD 4.0.1 (depuis 2008): iBCS2 & NetBSD | Amusez-vous avec la virtualisation . Mais la même chose semble cassée dans NetBSD 5.0.x.
Mise à jour 2 : Un an plus tard, après avoir obtenu un badge "Annonceur" pour cette question, je cherche toujours une réponse. Et pour clarifier, puisqu'il s'agit d'API, il devrait s'agir d'un "vrai" fichier binaire (longueur non nulle), qui fonctionne toujours du moins principalement de la manière originale.