Vai al contenuto

Executable and linkable format

Da Wikipedia, l'enciclopedia libera.
Versione del 11 mag 2006 alle 12:20 di Onof (discussione | contributi) (stub: traduzione)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

In informatica, Executable and Linkable Format (Formato eseguibile e linkabile), abbreviato in ELF (formalmente chiamato Extensible Linking Format) è un formato file standard per eseguibili, codice oggetto, librerie condivise, e core dumps. Pubblicato inizialmente in System V Application Binary Interface specification e poi in Tool Interface Standard, è stato quindi accettato da diversi produttori di sistemi Unix.

Oggi il formato ELF ha rimpiazzato formati eseguibili come a.out e COFF in Linux, Solaris, IRIX e BSD, con l'eccezione di Mac OS X che usa Mach-O. ELF è anche usato nella versione Itanium di OpenVMS, un sistema operativo non unix e ha rimpiazzato il Preferred Executable Format su BeOS Revision 4 and poi su architetture x86 (PPC utilizzano ancora PEF), anch'essi non UNIX-based.

Layout di un file ELF

Ogni ELF file è formato da una intestazione ELF, seguita da zero o più segmenti and zero o più sezioni. I segmenti contengono informazioni necessarie per l'esecuzione del file, mentre le sezioni contengono dati importanti for il linking e la relocation. Ogni byte nell'intero file è associato da non più di una sezione per volta ma ci possono essere byte orfani, non coperti da una sezione. Nel caso normale di un eseguibile Unix, una o più sezioni sono incluse in un segmento. I segmenti e le sezioni del file sono elencate rispettivamente in una tabella nell'intestazione del programma e in una tabella nell'intestazione della sezione.

Su molti sistemi Unix, il comando

man elf

può dare più dettagli

Strumenti

  • readelf è una utility che mostra informazioni su uno o più file ELF. Un implementazione GPL è fornita da GNU Binutils.
  • elfdump è un comando di Solaris per mostrare informazioni su un file ELF.

Voci collegate