Executable and Linkable Format
Predefinição:Caixa de informação Formato de arquivo Em computação, o Executable and Linking Format (ELF, também chamado de Extensible Linking Format) pode ser traduzido como Formato Executável e de Linkagem é um padrão comum de arquivo para executáveis, código objeto, bibliotecas compartilhadas, e core dumps. O ELF foi escrito por um desenvolvedor da Marinha dos EUA sem usar o código liberado pelo comitê [1]
A principio publicado no System V interface de aplicação binária especificação, e mais tarde no Padrão de ferramentas de interface, ele foi rapidamente aceito entre diferente vendedores de sistemas Unix. Em 1999 ele foi escolhido como padrão de arquivo binário para os sistemas Unix e similares ao Unix pelo projeto 86open .
hoje o formato ELF foi substituído pelos formatos de execução tais como a.out e COFF nos sistemas operacionais Linux, Solaris, IRIX, FreeBSD, NetBSD, e OpenBSD O sistema operacional (DragonFly BSD foi ramificado em FreeBSD após a mudança para o ELF). Por causa dos outros tipos de formato são proprietários, e de plataforma especifica, ou menos extensível do que o ELF, alguns usuários defendem que o ELF fazer tem uma melhor qualidade que outros formatos, onde os outros formatos podem o considerar um competidor destes formatos. O ELF é também usado nas versões de Itanium do OpenVMS, um sistema operacional não baseado no UNIX (sistema operacional), além de substituir o Portable Executable no BeOS Revisão 4 e mais tarde na computadores baseados em x86 (computadores PPC o mantém como Formato Preferivelmente Executado, nunca usando as Portable Executable), que não são também baseadas no UNIX. Os consoles PlayStation Portable, PlayStation 2 e PlayStation 3 também usa o ELF como seu formato de execução.
O layout do arquivo ELF
Cada arquivo ELF tem um cabeçalho, seguido por arquivos de dados. O arquivo contém os seguintes seções:
- modulo de cabeçalho do programa, descrevendo o zero ou mais segmentos;
- modulo de cabeçalho das seção, descrevendo zero ou mais seções;
- dados referidos pela entrada no programa ou modulo de cabeçalho das seções.
Os segmentos contem informações que são necessárias para a execução dos arquivos, enquanto a seção importantes dados para a linkagem e recolocação. Cada byte no arquivo inteiro e não mais do que uma seção por vez, mas pode haver bytes órfão, que não são cobertospela seção. No caso de um executável do UNIX um ou mais seções são encapsuladas em cada segmento [2] .
Ferramentas
readelf
é um utilitário para binários do UNIX que mostra informações sobre um ou mais arquivos ELF. Um implementação da GPL é disponível pelo GNU Binutils.elfdump
é um comando do Solaris para ver informações sobre os arquivos elf.objdump
mostra um grande gama de informações sobre os arquivos ELF e outros tipos de objeto.
Ver também
Referencias
- ↑ "SYSTEM V RELEASE 4 Programmer's Guide: ANSI C and Programming Support Tools", AT & T (Corporate Author), 800 paginas, 24 de Dezembro de 1992. ISBN 0-13-933706-7 ou ISBN 978-0130206299
- ↑ "Unix System V: Understanding Elf Object Files and Debugging Tools (Programmer Collection)", Mary Lou Nohr, Prentice Hall, Outubro de 1993, ISBN 0-13-933706-7
Ligações Externas
- Manual dos formatos dos binarios do FreeBSD
- "Tool Interface Standard" (TIS) ferramenta de padrões dos executáveis e formatos de especificações de formatos de Linkagem (ELF) Versão 1.2 (PDF)
- Descrição dos fomatos de arquivos binarios ELF
- Article "LibElf e GElf - Um biblioteca para manipular arquivos ELF" por Neelakanth Nadgir
- biblioteca de acesso liberado para objetos de arquivos ELF
- elf(5) manual
- biblioteca de rotinas Elf
- ELFIO: uma biblioteca C++ para leitura e geração de arquivosno formato binario ELF.
- "Um tutorial gigantesco sobre a criação de pequeninos executáveis ELF para o Linux"
- Um herói não celebrado: O funcional ELF
- Perguntas mais freqüentes sobre NetBSD ELF
- Objeto ELF (formato de arquivo) para Dissecção
- ELF-64 detalhes sobre o formato do arquivo objeto