Binário mais antigo trabalhando no Linux?

34

Em uma discussão sobre compatibilidade com versões anteriores no kernel do Linux e ABIs da GUI , Alan Cox observa que " meu kernel 3.6rc ainda executará um binário Rogue criado em 1992. O X é compatível com aplicativos muito mais antigos que o Linux. "

Então, quão compatíveis com versões anteriores são as interfaces binárias do aplicativo do Linux?

Qual é o executável binário mais antigo, realmente escrito e compilado anos atrás, que ainda será executado em uma distribuição Linux moderna de propósito geral?

Tenho certeza de que todas essas palavras estão sujeitas a interpretação. Minha principal noção é que não é justo executá-lo através de um emulador ou máquina virtual especializada ou tradutor binário, mas algumas dessas coisas provavelmente estão embutidas em algumas distros modernas, e aprender sobre isso é 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 de interesse.

Note que, quando as regras estão relaxadas, aqui está um exemplo de ir mais longe. A página da Web de 2002 A execução de executáveis no moderno Red Hat Linux fala sobre como usar realmente antigos executáveis Linux pré-ELF a.out-format depois de fazer modprobe binfmt_aout e obter /lib/ld.so e libc.so.4 Novamente, isso é de interesse periférico para essa questão, mas ilustra o tipo de coisas que podem estar envolvidas quando se busca mais. / p>

Atualize para você fãs do BSD, é ótimo ver que o iBCS2 estava suportando aplicativos antigos do Xenix (como o zork / dungeon-2.5.6 de 1990) e aplicativos do SCO OpenServer 5.0.x recentemente como o NetBSD 4.0.1 (de 2008): iBCS2 & NetBSD | Diversão com a virtualização . Mas a mesma coisa parece quebrada no NetBSD 5.0.x.

Atualização 2 : um ano depois, depois de receber um selo "Anunciante" para essa pergunta, ainda estou procurando uma resposta. E para esclarecer, uma vez que isso é sobre APIs, deve ser um binário "real" (comprimento diferente de zero), que ainda pelo menos funciona na maior parte do modo original.

    
por nealmcb 07.09.2012 / 20:57

2 respostas

10

Eu acho que o / bin / true tem que ser o mais antigo que funciona ..

Bem, você pode chamar um arquivo de zero bytes de binário?

touch /tmp/old_true
chmod 755 /tmp/old_true
/tmp/old_true
echo $?
    
por 18.09.2012 / 03:01
2

So just how backwards-compatible are the Linux Application binary interfaces?

Você pode ver o relatório de análise do ABI do kernel Linux aqui (2.6.36-4.4. 5 versões):

OmesmorelatórioquevocêpodeencontrarparaváriasbibliotecasdebasedoLinuxem esta página (Glibc, Qt, cairo, ... ). A compatibilidade binária atrasada é estimada para cada lançamento em porcentagens, assim você pode fazer uma conclusão sobre a compatibilidade geral da ABI para cada biblioteca:

Muitomaisrelatóriosparacercade700bibliotecasLinuxquevocêpodeencontrarno upstream.rosalinux.ru . Este recurso não é mais suportado (use abi-tracker ), mas você pode ver os relatórios das versões antigas das bibliotecas .

    
por 20.03.2016 / 23:26