Executable and linkable format

formato di file standard per eseguibili, codice oggetto, librerie condivise e core dump

L'Executable and Linkable Format[1] (ELF, lett. Formato eseguibile e collegabile, precedentemente noto come Extensible Linking Format) è un formato di file standard per eseguibili, librerie condivise e core dump.

Executable and Linkable Format
Struttura di un file ELF
Estensione.bin, .elf, .o, .out, .so
Magic number0x7F 'E' 'L' 'F'
SviluppatoreUNIX System Laboratories

Pubblicato inizialmente nelle specifiche application binary interface di System V e poi in Tool Interface Standard, è stato quindi accettato da diversi produttori di sistemi Unix. Nel 1999 è stato scelto come formato standard dei file binari per i sistemi Unix e Unix-like su architettura x86 dal progetto 86open.

Il formato ELF ha rimpiazzato formati eseguibili come a.out e COFF in Linux, Solaris, IRIX e BSD, con l'eccezione di macOS 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 e successive su architetture x86, AmigaOS 4.0 e MorphOS su architettura PowerPC (BeOS su PowerPC utilizza ancora PEF), anch'essi non UNIX-based. Persino la PlayStation 2 e la PlayStation Portable usano ELF come loro formato per i file eseguibili.[senza fonte]

Layout di un file ELF

modifica

Ogni ELF file è formato da una intestazione ELF, seguita da zero o più segmenti e zero o più sezioni. I segmenti contengono informazioni necessarie per l'esecuzione del file, mentre le sezioni contengono dati importanti per il linking e la relocation. Ogni byte nell'intero file è associato a 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

modifica
  • 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.
  1. ^ (EN) TIS Committee, Tool Interface Standard (TIS) Portable Formats Specification Version 1.1 (PDF), ottobre 1993, p. i. URL consultato il 20 settembre 2023.

Bibliografia

modifica

Voci correlate

modifica

Collegamenti esterni

modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica