Pregunta:
En una discusión sobre la compatibilidad con versiones anteriores en el kernel de Linux y las ABI de GUI , Alan Cox señala que " mi kernel 3.6rc seguirá ejecutando un binario Rogue construido en 1992. X es compatible con aplicaciones mucho más antiguas que Linux " .
Entonces, ¿qué tan compatibles con las versiones anteriores son las interfaces binarias de la aplicación Linux?
¿Cuál es el ejecutable binario más antiguo, en realidad escrito y compilado hace años, que todavía se ejecutará en una distribución de Linux de uso general moderno?
Estoy seguro de que todas esas palabras están sujetas a interpretación. Mi idea principal es que no es justo ejecutarlo a través de un emulador o una máquina virtual especializada o un traductor binario, pero algunas de estas cosas probablemente estén integradas en algunas distribuciones modernas, y aprender sobre eso es parte de la diversión aquí.
También son de interés las variaciones por arquitectura de hardware, formato de archivo ejecutable , idioma y las principales dependencias de carga dinámica de bibliotecas.
Tenga en cuenta que cuando las reglas se relajan, aquí hay un ejemplo de retroceder más. La página web de 2002 Ejecutando a.out ejecutables en Red Hat Linux moderno habla sobre el uso de ejecutables de Linux pre-ELF a.out-format realmente antiguos después de modprobe binfmt_aout
y obtener /lib/ld.so
y libc.so.4
interés periférico por esta pregunta, pero ilustra el tipo de cosas que pueden estar involucradas cuando se investiga más atrás.
Actualización para los fanáticos de BSD, es genial ver que iBCS2 era compatible con aplicaciones antiguas de Xenix (como zork / dungeon-2.5.6 desde 1990) y aplicaciones SCO OpenServer 5.0.x tan recientemente como NetBSD 4.0.1 (desde 2008): iBCS2 y NetBSD | Diversión con la virtualización . Pero lo mismo parece roto en NetBSD 5.0.x.
Actualización 2 : Un año después, incluso después de obtener una insignia de "Anunciante" para esta pregunta, todavía estoy buscando una respuesta. Y para aclarar, dado que se trata de API, debería ser un binario "real" (longitud distinta de cero), que todavía al menos funciona en su mayoría de la manera original.
Respuesta:
Creo que / bin / true tiene que ser el trabajo más antiguo …
Bueno, ¿se puede llamar binario a un archivo de cero bytes?
touch /tmp/old_true
chmod 755 /tmp/old_true
/tmp/old_true
echo $?