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

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 dump.

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.

Storia

modifica

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.

Note

modifica
  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

Altri progetti

modifica

Collegamenti esterni

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

📚 Artikel Terkait di Wikipedia

Piattaforma (informatica)

2011 (archiviato dall'url originale il 13 ottobre 2007). «Creating an executable that works on almost all Linux distributions is a challenge. There are

Application programming interface

giugno 2024. Libreria (software) Linguaggio di programmazione Application binary interface API key Altri progetti Wikizionario Wikimedia Commons Wikizionario

Fobos (astronomia)

consultato il 4 gennaio 2019. ^ Human Journey to Mars - Thoughts on an Executable Program (PDF), su nasa.gov. URL consultato il 10 gennaio 2019 (archiviato

Android

compilatore just-in-time per l'esecuzione di Dalvik dex-code (Dalvik Executable), che di solito viene tradotto da codice bytecode Java. Questa virtual

Registro di sistema

tecnicamente REG_SZ) una sequenza arbitraria di byte (valore binario, REG_BINARY) un numero a 32 bit (che ammette quindi valori da 0 a 4 294 967 295, cioè