How Linux Became Linux
Linux n’est pas le fruit d’un plan génial ou d’une évolution naturelle, mais le résultat de sept choix architecturaux pragmatiques, chacun avec ses avantages et ses compromis, qui ont façonné le noyau tel que nous le connaissons aujourd’hui.

SYNTHÈSE STRUCTURÉE
Le noyau monolithique : un choix de performance dès 1991
Dès septembre 1991, Linus Torvalds choisit un noyau monolithique, bien avant son célèbre débat avec Andrew Tanenbaum. Ce choix n’est pas une réponse à la critique de Tanenbaum, mais une décision prise dès la première ligne de code. L’avantage est immédiat : tout le noyau tourne dans le même espace d’adressage, les appels entre sous-systèmes sont de simples appels de fonction, sans coût de passage entre espace utilisateur et espace noyau. Sur un processeur 386 avec 8 Mo de RAM, cette différence est cruciale. Comme le dit l’intervenant : « C’est la différence entre un système qui tourne et un système qui rampe. » Le prix, encore payé aujourd’hui, est l’absence d’isolation : un bug dans un pilote peut planter tout le système.
GPLv2 : le pivot vers l’industrie
En février 1992, Torvalds abandonne sa licence personnelle anti-commerciale pour adopter la GPL version 2. Ce changement permet la redistribution commerciale à condition que le code source reste disponible. Sans cela, « il n’y aurait pas de Red Hat, pas de SUSE, pas d’Android sur 3 milliards d’appareils ». Le prix est le refus de passer à GPLv3 en 2007, ce qui laisse Linux sans protection contre la tivoïsation (utilisation de code libre dans des appareils verrouillés). Chaque Android est techniquement un Linux libre sur du matériel fermé.
ELF : la transition qui a permis l’échelle
En mars 1995, Linux passe du format a.out à ELF (Executable and Linkable Format). Le format a.out, hérité des années 1970, nécessitait d’enregistrer chaque bibliothèque partagée auprès d’une autorité centrale, ce qui devenait ingérable à grande échelle. Comme l’écrivait Eric Youngdale dans le Linux Journal d’avril 1995, « Linux était littéralement sur le point d’être écrasé par le poids de ses propres bibliothèques partagées au format a.out. » ELF a ouvert la voie au support complet du C++, à l’architecture croisée et au débogage moderne. Le prix a été une transition douloureuse : chaque binaire a dû être recompilé. Le support de a.out n’a été retiré du noyau qu’en 2019, 25 ans plus tard.
Le Big Kernel Lock : un patch devenu dette technique
Avec le noyau 2.0 en juin 1996, Linux supporte le multiprocesseur symétrique (SMP) via un verrou global appelé Big Kernel Lock (BKL). Quand un CPU entre dans le noyau, il prend le verrou ; les autres attendent. « Vous avez quatre processeurs, mais le noyau ne peut être exécuté que par un seul à la fois. » Ce choix pragmatique a permis à Linux d’être multi-processeur rapidement, mais a nécessité 15 ans de refactorisation pour remplacer le BKL par des verrous plus granulaires. Le BKL n’a été complètement retiré qu’en 2011 avec le noyau 2.6.39.
Des threads Linux à NPTL : de la caricature à la crédibilité
En 1996, Xavier Leroy écrit Linux Threads, une première implémentation des threads POSIX. Mais chaque thread est un processus séparé avec son propre PID, ce qui cause des problèmes de signaux et d’affichage dans ps. En 2003, NPTL (Native POSIX Thread Library) arrive, écrit par Ulrik Drepper et Ingo Molnar. Ils réécrivent l’appel clone, ajoutent des primitives comme futex, et implémentent enfin le standard correctement. L’avantage est que Linux devient crédible pour les applications multi-threadées sérieuses. Le prix est une fracture : deux ABI différentes coexistent pendant des années, causant des régressions.
Git : né d’une urgence en 10 jours
Pendant 11 ans, le développement du noyau se fait sans système de gestion de versions : Torvalds reçoit les patches par email et les applique à la main. En 2002, il adopte BitKeeper, un système propriétaire. En avril 2005, après que Andrew Tridgell ait extrait des données des dépôts BitKeeper sans accepter la licence, BitMover révoque la licence gratuite. Torvalds écrit alors Git en 10 jours. « 10 jours de travail en 2005 ont changé la façon dont des milliards de lignes de code sont écrites. » Le prix est une interface utilisateur notoirement hostile, jamais repensée pour l’ergonomie.
Le modèle mainline : un cycle fixe reposant sur une seule personne
Entre 2005 et 2010 émerge le modèle mainline : un cycle fixe d’environ 9 semaines (2 semaines de fenêtre de fusion, puis 7 à 8 candidats de correction). Plus de « versions majeures » traumatiques comme le passage de Windows 7 à Windows 8. L’intervenant souligne : « Le modèle mainline repose sur un point de défaillance humain unique. » Quand Torvalds a pris une pause en 2018, Greg Kroah-Hartman a assuré l’intérim, mais la question de l’après-Torvalds reste sans réponse.
CONCEPTS CLÉS
- Noyau monolithique : Architecture où tout le noyau tourne dans le même espace d’adressage, offrant des performances élevées mais aucune isolation entre sous-systèmes.
- GPLv2 : Licence GNU General Public License version 2, qui permet la redistribution commerciale à condition de fournir le code source. Contrairement à GPLv3, elle n’interdit pas la tivoïsation.
- ELF : Executable and Linkable Format, format standard des exécutables et bibliothèques partagées sur Linux, remplaçant
a.outen 1995. - Big Kernel Lock (BKL) : Verrou global utilisé dans les premiers noyaux SMP, permettant un support multi-processeur rapide mais au prix d’une exclusion mutuelle totale.
- NPTL : Native POSIX Thread Library, implémentation correcte des threads POSIX pour Linux, remplaçant Linux Threads en 2003.
- Git : Système de gestion de versions distribué, créé par Linus Torvalds en 2005 pour remplacer BitKeeper.
- Modèle mainline : Cycle de développement fixe du noyau Linux, avec une fenêtre de fusion de 2 semaines suivie de corrections, reposant sur l’autorité d’un mainteneur unique.
CONCLUSION
Linux n’est pas un chef-d’œuvre d’ingénierie planifié, mais une série de décisions pragmatiques prises sous pression. Chaque choix a fermé des portes et ouvert des possibilités imprévues. Comme le résume l’intervenant : « C’est un chef-d’œuvre construit avec des marteaux, pas des ciseaux. Et c’est exactement pour ça qu’il a gagné. » Comprendre ces compromis permet d’apprécier la robustesse du noyau tout en reconnaissant ses fragilités structurelles, notamment la dépendance à une seule personne et l’absence d’isolation entre sous-systèmes.