Em uma discussão sobre compatibilidade com versões anteriores no kernel do Linux e ABI da GUI , Alan Cox observa que " meu kernel 3.6rc ainda executará um binário do Rogue criado em 1992. O X é compatível novamente com aplicativos muito mais antigos que o Linux " .
Então, quão compatíveis são as interfaces binárias de aplicativos Linux ?
Qual é o executável binário mais antigo, realmente escrito e compilado anos atrás, que ainda será executado em uma moderna distribuição Linux de uso geral?
Tenho certeza de que todas essas palavras estão sujeitas a interpretação. Minha noção principal é que não é justo executá-lo por meio de um emulador ou máquina virtual especializada ou tradutor binário, mas algumas dessas coisas provavelmente estão embutidas em algumas distribuições modernas, e aprender sobre isso faz parte da diversão aqui.
Variações por arquitetura de hardware, formato de arquivo executável , idioma e principais dependências de carregamento dinâmico da biblioteca também são interessantes.
Observe que, quando as regras são flexíveis, eis um exemplo de como voltar mais longe. A página web 2002 Correndo a.out executáveis em modernas Red Hat Linux fala sobre o uso realmente velha Linux pré-ELF a.out formato executáveis depois de fazer modprobe binfmt_aout
e obter /lib/ld.so
e libc.so.4
novamente, é de interesse periférico para esta pergunta, mas ilustra os tipos de coisas que pode estar envolvido ao cavar mais para trás.
Atualizando para os fãs do BSD, é ótimo ver que o iBCS2 estava suportando aplicativos antigos do Xenix (como zork / dungeon-2.5.6 de 1990) e aplicativos do SCO OpenServer 5.0.x tão recentemente quanto o NetBSD 4.0.1 (de 2008): iBCS2 e NetBSD Diversão com virtualização . Mas a mesma coisa parece quebrada no NetBSD 5.0.x.
Atualização 2 : um ano depois, depois de receber o selo "Anunciador" para esta pergunta, ainda estou procurando uma resposta. E para esclarecer, como se trata de APIs, ele deve ser um binário "real" (comprimento diferente de zero), que ainda funciona pelo menos principalmente da maneira original.