mardi 22 mars 2011

ELF - Executable And Linking Format

Voila un article difficilement classable car il s'agit avant tout d'une curiosité personnelle concernant Linux. Bonne lecture :-)

ELF (Executable And Linking Format) est le format de fichier utilisé depuis ~1995 pour le stockage des exécutables et des librairies partagées sous Linux.
Le format ELF fut justement mis en place pour supporter plus facilement la mise en place des shared library mais aussi pour pouvoir autoriser le chargement dynamique de ces librairies.
Il était pourtant possible de bricoler des chargements dynamiques avec l'ancien format a.out, ce que fit d'ailleurs Sun, mais ce fut au prix de nombreuses complications obscurcissant le fonctionnement des exécutables.
Avec l'apparition d'ELF déjà adopté par de nombreux systèmes Unix, le monde Linux s'était doté d'une technologie essentielle nécessaire à son expansion.

Pour les curieux, je vous invite à consulter les articles introductifs
Pour les plus curieux, je recommande la lecture de l'article "The ELF Object File Format: Introduction" de Eric Youngdale paru en 1995 dans Linux Journal.
C'est une excellent article de fond qui présente les différences entre l'ancien et le nouveau format, abordant la compilation pour librairie statique et dynamique, les principes de relocation, GOT (Global Offset Table) et PLT (Procedure Linkage Table).

Aucun commentaire: