12.2.  Pourquoi utiliser (qu'est-ce) a.out et les formats exécutables ELF ?

Afin de comprendre pourquoi FreeBSD utilise le format a.out, vous devez d'abord savoir quelques trucs sur les 3 formats exécutables courant "dominants" pour UNIX :

FreeBSD vient du camp "classique" et utilise traditionnellement le format a.out, une technologie esssayée et éprouvée à travers des générations de releases BSD. Bien qu'il a aussi été quelques fois possible de construire et de lancer des binaires natifs ELF (et noyau) sur un système FreeBSD, FreeBSD a initiallement résisté à la "pression" de passer à ELF comme format par défaut. Pourquoi ? Bien, quand le camp Linux ont fait leur difficile transition vers ELF, il ne suffisait pas de fuir le format exécutable a.out. mais leur mécanisme de librairies partagées basé sur des table de sauts inflexible ce qui rendait la construction de librairies partagées difficiles pour les vendeurs et développeurs. Depuis comme les outils ELF offrent une solution au problème des librairies partagées et semblent en général perçus comme "la voie du progrès" de toute façon, le coût de migration a été entendu comme nécessaire, et la transition a été réalisée.

Dans le cas FreeBSD, notre mécanisme de librairie partagée se rapproche plus des style de mécanisme de librairie partagée des SunOS de Sun, et de la sorte, est très simple à utiliser. Quoiqu'il en soit, à partir de 3.0, FreeBSD supportera officiellement les binaires ELF comme format par défaut. Même si les formats exécutables a.out nous ont beaucoup servis, les gens du GNU auteurs des outils de compilation que nous utilisons ont arrêté leur supports pour le format a.out. Cela nous a forcé à maintenir des versions divergentes du compilateur et de l'éditeur de liens, et nous a empêché de bénéficier des derniers efforts du développement GNU. Et puis, les demandes de ISO-C++, notemment pour les constructeurs et les destructeurs, nous ont aussi conduit à supporter de l' ELF natif pour les futures release de FreeBSD.

Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.

Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.