ELF (Executable and Linkable Format, format exécutable et liable ; anciennement Executable and Linking Format) est un format de fichier binaire utilisé pour l'enregistrement de code compilé (objets, exécutables, bibliothèques de fonctions). Il a été développé par l’USL (Unix System Laboratories) pour remplacer les anciens formats a.out et COFF qui avaient atteint leurs limites. Aujourd'hui, ce format est utilisé dans la plupart des systèmes d'exploitation de type Unix (GNU/Linux, Solaris, IRIX, System V, BSD), à l'exception de Mac OS X.

ELF
Executable and Linkable Format
Décomposition d'un fichier ELF
Caractéristiques
Extensions
-, .axf, .bin, .elf, .o, .prx, .soVoir et modifier les données sur Wikidata
PUID
Signature
7F 45 4C 46 (hexa)Voir et modifier les données sur Wikidata
Développé par
Unix System Laboratories (en)Voir et modifier les données sur Wikidata
Type de format
Spécification

Le format de fichier ELF

modifier

Chaque fichier ELF est constitué d'un en-tête fixe, puis de segments et de sections. Les segments contiennent les informations nécessaires à l'exécution du programme contenu dans le fichier, alors que les sections contiennent les informations pour la résolution des liens entre fonctions et le replacement des données. Sur la plupart des systèmes Unix, la commande man elf donnera de plus amples informations[1].

Entête d'un fichier ELF

modifier

L'entête d'un fichier ELF adopte le format suivant[2]:

Nom du champ Valeur
Identification
Indice Valeur
0 - Nombre Magique 0x7f
1 - Nombre Magique 'E'
2 - Nombre Magique 'L'
3 - Nombre Magique 'F'
4 - 64Bits ou 32Bits
  • (0) Aucun
  • (1) 32Bits
  • (2) 64Bits
5 - Endianness
  • (0) Aucun
  • (1) LSB
  • (2) MSB
6 - Version du format de l'entête
7 - ABI
  • (0) UNIX System V
  • (1) HP-UX
  • (2) NetBSD
  • (3) Linux
  • (6) Sun Solaris
  • (7) IBM AIX
  • (8) SGI Irix
  • (9) FreeBSD
  • (10) Compaq TRU64
  • (11) Novell Modesto
  • (12) OpenBSD
  • (64) ARM EABI
  • (97) ARM
  • (255) Standalone
8 - Version ABI
9-15 Bourrage 0
16 Taille du champ "Identification"
Type de fichier (16 Bits)
  • (0) Aucun
  • (1) Repositionable
  • (2) Executable
  • (3) Objet partagé
  • (4) Fichier Core
Machine cible (16 Bits)
Version (32 bits)
  • (0) Aucune
  • (1) Version actuelle
Point d'entrée (32 Bits ou 64 Bits) (0) si aucun point d'entrée
Offset (en octets) de la table contenant l'entête de programme (32 Bits ou 64 Bits)
Offset (en octets) de la table des entêtes de sections (32 Bits ou 64 Bits)
Drapeaux spécifiques au processeur (32 Bits)
Taille (en octets) de l'entête ELF (16 Bits)
Taille (en octets) d'une entrée dans la table contenant l'entête de programme (16 Bits)
Nombre d'entrées dans la table contenant l'entête de programme (16 Bits)
Taille (en octets) d'une entrée dans la table des entêtes de sections (16 Bits)
Nombre d'entrées dans la table des entêtes de sections (16 Bits)
Indice dans la table des entêtes de sections de l'entrée associée à la table contenant les noms des sections (16 Bits) (0) si non défini

La Structure D'un Fichier ELF

modifier

Comme beaucoup d'autres formats éxécutables (comme PE), les fichiers ELF sont organisés en sections. Ces sections sont les suivantes:

Section Utilité
.text Contient le code principal
.bss Contient les données non initialisées (équivalent à des variables déclarées mais non affectées)
.data Contient les données utiles au programme
.rodata Contient les données en lecture seule (impossible à modifier, même au cours du programme)

Comparaison avec d'autres systèmes d'exploitation

modifier

Les structures équivalentes sont :

Notes et références

modifier

📚 Artikel Terkait di Wikipedia

Elf

construites par l'écrivain J. R. R. Tolkien ; Executable and Linking Format, un format de fichiers exécutables sur les systèmes d'exploitation Linux-Unix ;

Correspondance entre formats ouverts et formats fermés

brevet a expiré. (lorsqu'il est intégré au conteneur Ogg) Format de données Format ouvert Format fermé OpenDocument Xiph.org Liste d'extensions de fichiers

Liste d'abréviations en informatique

Industry Standard Architecture EJB : Enterprise JavaBeans ELF (Executable and Linking Format) EMA : Entreprise Memory Architecture EM64T : Extended Memory

A.out

out » (voir la liste des auteurs). Executable and Linking Format (en) Le format a.out (en) Page de man Unix pour le format a.out Portail de la programmation

Microsoft Word

Microsoft Word ont vu le jour. Le format binaire de Word des versions 97 à 2007 implémente la technologie OLE (Object Linking and Embedding) de façon structurée

Uniface

grâce au Dynamic Object Library et les supports pour « Microsoft Object Linking and Embedding (OLE) » et Apple Macintosh sont ajoutés. Autres enrichissements :

Modélisation par objets typés

de formation qui peuvent être exportés selon différents formats, notamment un format exécutable dans les systèmes compatibles avec la norme IMS-LD. L’éditeur