Conception et vie d'un programme : le format ELF

Magazine
Marque
GNU/Linux Magazine
Numéro
129
Mois de parution
juillet 2010


Résumé

Dans le précédent article, nous avions disséqué le processus de compilation d'un programme et étudié les différents états qu'il traverse. Mais le fichier binaire obtenu à la fin de cette chaîne nous semble bien opaque... Pourtant, bien que la distinction soit toujours faite entre fichiers « programmes » exécutables et fichiers « classiques » de données, les premiers ne sont guère différents des seconds en ce qu'ils obéissent à un format bien précis et sont gérés par un programme tiers, le chargeur. Afin de mieux comprendre ce qui fait un programme, nous allons dans le présent article disséquer le format exécutable ELF utilisé par Linux et de nombreux autres systèmes d'exploitation.


Le format ELF (Executable and Linkable Format) est un format binaire spécifié en 1999, qui s'est imposé comme une évidence pour représenter les programmes. Il est utilisé entre autres par Linux, les variantes *BSD, Solaris, IRIX, BeOS, les consoles Sony Playstation, ainsi que les Wii et DS de Nintendo. La raison de cette adoption massive, à laquelle seul Microsoft semble résister, est qu’ELF propose un standard satisfaisant la majorité des besoins, extensible, facilement manipulable et pouvant être utilisé quasiment à l'identique sur de nombreuses architectures.

En raisons de ses nombreuses qualités, les systèmes GNU/Linux utilisent massivement le format ELF. C'est dans ce format que le noyau est construit avant d'être converti en image chargeable, et c'est également sous cette forme que sont stockés tous les exécutables et bibliothèques du système. Il est donc essentiel de le comprendre si l'on veut saisir le fonctionnement interne de ce dernier, et cet...

Cet article est réservé aux abonnés. Il vous reste 97% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite