Linux FAQ

Seção 8. Perguntas respondidas e informações diversas.




Questão 8.2. O que é esse tal de ELF?

Veja o ELF HOWTO por Daniel Barlow, note que esse não é o arquivo move-to-elf, que é uma explicação de como atualizar para ELF manualmente.

Linux está migrando para um formato diferente de executáveis, arquivos objeto e bibliotecas de código objeto, conhecido por `ELF' (o formato antigo é chamado `a.out'). Este terá muitas vantagens, incluindo suporte melhorado para bibliotecas compartilhadas (shared libraries) e ligação dinâmica (dinamic linking).

Binários a.out e ELF podem coexistir em um sistema. Porém, como eles usam bibliotecas C compartilhadas diferentes, ambos tipos devem estar instaladas para isso.

Se você quer saber se seu sistema pode rodar binários ELF, procure /lib por um arquivo libc.so.5. Se este existir, ele provavelmente pode. Se você quer saber se a sua instalação relamtente é ELF você pode pegar um programa representativo, como ls, e rodar file nele:

   -chiark:~> file /bin/ls
   /bin/ls: Linux/i386 impure executable (OMAGIC) - stripped

   valour:~> file /bin/ls
   /bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1, stripped
Existe um patch para fazer o 1.2.x compilar usando compiladores ELF, e produzir coredumps ELF, no tsx-11.mit.edu em /pub/packages/GCC. Você não precisa do patch para meramente rodar binários ELF. 1.3.x e posteriores não precisam do patch.
Voltar para o Índice