D'UNIX à Linux : l'histoire qui explique tout
Quitter

Leçon 4 sur 7 · Histoire

1991 — Linus Torvalds et le noyau Linux

35 min Ubuntu 24.04

Objectif

Savoir comment un étudiant a écrit, presque par jeu, le noyau qui fait tourner aujourd'hui la majorité des serveurs du monde, et comprendre comment ce noyau est développé et numéroté. Vous saurez lire une version comme 5.14.0-427.el9.x86_64.

L'essentiel

  • En 1991, Linus Torvalds, étudiant à l'université d'Helsinki, écrit un noyau pour son PC, en s'inspirant de Minix.
  • Il l'annonce le 25 août 1991 ; la version 0.01 sort en septembre 1991.
  • En 1992, Linux passe sous licence GPL : avec les outils GNU, un système entièrement libre existe enfin.
  • Linux 1.0 sort en mars 1994. Aujourd'hui, des milliers de développeurs, salariés de centaines d'entreprises, y contribuent.
  • Une nouvelle version sort environ toutes les 9 à 10 semaines ; certaines sont maintenues longtemps : ce sont les versions LTS.

1. Le noyau, c'est quoi ?

Le noyau (kernel) est le programme central du système. Il démarre en premier et ne s'arrête qu'à l'extinction. Il fait le lien entre les programmes et le matériel :

   Vous ──► bash, ls, nginx, mysql…        (les programmes)
                   │  « appels système » : lire, écrire, ouvrir, créer un processus
                   ▼
            ┌──────────────┐
            │ NOYAU LINUX  │  mémoire, processus, disques, réseau, pilotes
            └──────────────┘
                   │
                   ▼
        processeur, mémoire, disques, carte réseau      (le matériel)

Quand ls veut lire un dossier, il ne parle pas au disque : il demande au noyau. C'est ce qui permet à mille programmes de partager la même machine sans se marcher dessus.

2. Minix, l'UNIX des étudiants (1987)

À la fin des années 1980, UNIX est cher et son code n'est plus diffusé librement. Le professeur Andrew Tanenbaum, à l'université libre d'Amsterdam, écrit pour ses étudiants un petit UNIX éducatif : Minix (1987). Il est livré avec son livre de cours sur les systèmes d'exploitation, code source compris.

Minix a deux limites : sa licence ne permet pas de le modifier et de le redistribuer librement, et Tanenbaum veut le garder simple, pour l'enseignement. Il refuse beaucoup d'améliorations proposées par ses utilisateurs.

3. 1991 : un étudiant d'Helsinki

Linus Torvalds est né en 1969 à Helsinki. En janvier 1991, il achète un PC équipé d'un processeur Intel 386. Il y installe Minix et veut comprendre comment fonctionne ce nouveau processeur. Il commence par un petit programme qui affiche des « A » et des « B » en alternance, pour tester le passage d'une tâche à l'autre. Puis un émulateur de terminal pour se connecter à l'université. Puis un pilote de disque… et il se rend compte qu'il est en train d'écrire un noyau.

Le 25 août 1991, il publie un message sur le forum Usenet comp.os.minix. Il y annonce un système d'exploitation libre pour PC 386, en précisant que ce n'est « just a hobby, won't be big and professional like gnu » (« juste un hobby, rien d'aussi gros et professionnel que GNU »). Il demande aux lecteurs ce qu'ils aimeraient y trouver.

La version 0.01 est déposée sur un serveur de l'université d'Helsinki (ftp.funet.fi) en septembre 1991. Linus voulait l'appeler Freax (free + freak + x) ; l'administrateur du serveur, Ari Lemmke, range les fichiers dans un dossier nommé linux. Le nom reste.

Dès cette première version, Linux fait tourner bash et gcc, deux outils GNU (leçon 0.3).

4. 1992 : la GPL et la querelle avec Tanenbaum

La première licence de Linus interdisait toute utilisation commerciale. Début 1992, avec la version 0.12, il annonce le passage à la GPL (version 2). Désormais, n'importe qui peut utiliser, modifier et redistribuer Linux, à condition de partager ses modifications. Avec le noyau Linux et les outils GNU, un système libre complet existe enfin. Linus dira plus tard que ce choix de la GPL est l'une des meilleures décisions qu'il ait prises.

En janvier 1992, Tanenbaum publie sur le même forum un message intitulé « LINUX is obsolete ». Ses deux reproches :

Critique de Tanenbaum Réponse de l'histoire
Linux est un noyau monolithique (tout le noyau dans un seul bloc), une conception dépassée selon lui ; l'avenir serait aux micro-noyaux Linux est resté monolithique, mais modulaire : les pilotes se chargent à la demande (lsmod, modprobe)
Linux est trop lié au processeur 386 et ne sera pas portable Linux tourne aujourd'hui sur x86, ARM, POWER, IBM Z, RISC-V… plus de plateformes qu'aucun autre système

Ce débat courtois mais vif est resté célèbre. Il montre que Linux n'était pas le « meilleur » système sur le papier ; il a gagné parce qu'il était libre, pratique et ouvert aux contributions.

5. Le noyau grandit (1992-2011)

Le moment est idéal : BSD est bloqué par son procès (leçon 0.2), le Hurd de GNU n'avance pas, Internet arrive dans les universités. Des centaines de développeurs envoient des correctifs à Linus.

Version Date Nouveauté marquante
0.01 septembre 1991 Première version publique
0.12 début 1992 Passage à la GPL
1.0 mars 1994 Première version jugée stable ; réseau TCP/IP
2.0 juin 1996 Plusieurs processeurs (SMP) ; arrivée de la mascotte Tux, le manchot
2.2 janvier 1999 Meilleur support du multiprocesseur
2.4 janvier 2001 USB, grandes quantités de mémoire : Linux entre dans les entreprises
2.6 décembre 2003 Nouveau modèle de développement ; noyau de RHEL 5 et RHEL 6 (2.6.32)
3.0 juillet 2011 Changement de numéro pour les 20 ans de Linux, sans rupture technique

En 2005, un conflit de licence prive les développeurs de l'outil qu'ils utilisaient pour gérer le code (BitKeeper). En quelques semaines, Linus écrit son propre outil : Git. Aujourd'hui, Git est utilisé par presque tous les développeurs du monde (GitHub, GitLab…). C'est la deuxième invention majeure de Linus.

6. Comment le noyau est développé aujourd'hui

Le noyau Linux est probablement le plus grand projet collaboratif de l'histoire du logiciel : plus de 30 millions de lignes de code, des milliers de contributeurs à chaque version, la plupart payés par leur employeur (Intel, Google, Red Hat, AMD, Meta, Huawei, SUSE, Linaro…).

Un cycle régulier

 version 6.N publiée
   │
   ├── 2 semaines : « fenêtre de fusion » (merge window)
   │      les nouveautés préparées par les mainteneurs entrent dans le noyau
   │
   ├── 6.(N+1)-rc1, rc2, … rc7 (parfois rc8) : une « release candidate » par semaine
   │      plus de nouveautés, seulement des corrections de bugs
   │
   └── environ 9 à 10 semaines plus tard : version 6.(N+1) publiée

Cela donne 5 à 6 versions par an. Il n'y a pas de date fixe : Linus publie quand la version est prête.

Une pyramide de mainteneurs

Linus ne relit pas tout lui-même. Le noyau est découpé en sous-systèmes (réseau, systèmes de fichiers, pilotes graphiques, USB, sécurité…). Chacun a ses mainteneurs, listés dans le fichier MAINTAINERS du code source. Les contributeurs envoient leurs correctifs par e-mail au bon mainteneur ; celui-ci les relit, les teste, puis les transmet vers le haut. Linus fusionne le travail des mainteneurs principaux.

Mainline, stable, longterm

Sur kernel.org, vous verrez plusieurs sortes de versions :

Catégorie Ce que c'est Maintenue par
mainline La version de développement de Linus (ex. 6.N-rc3) Linus Torvalds
stable La dernière version publiée, avec des correctifs (ex. 6.N.4) jusqu'à la suivante Greg Kroah-Hartman et l'équipe stable
longterm (LTS) En général la dernière version de chaque année, corrigée plusieurs années Des mainteneurs volontaires

Depuis 2023, les nouvelles versions LTS de kernel.org sont annoncées pour environ deux ans (contre six ans pour certaines auparavant), faute de moyens pour en maintenir plus. Des projets comme le CIP (Civil Infrastructure Platform) entretiennent certaines versions pendant dix ans pour l'industrie.

Le numéro du premier chiffre ne veut rien dire de technique : Linus le change quand le second devient trop grand (3.0 en 2011, 4.0 en 2015, 5.0 en 2019, 6.0 en 2022…).

7. Les noyaux des distributions

Les distributions d'entreprise ne suivent pas la dernière version de kernel.org. Elles choisissent une version au lancement et la maintiennent elles-mêmes pendant toute la vie du produit, en y ajoutant les correctifs de sécurité et même des nouveautés (on dit qu'elles les « rétroportent »).

Distribution Noyau de base
RHEL 6 / CentOS 6 2.6.32
RHEL 7 / CentOS 7 3.10
RHEL 8 / Rocky 8 / Alma 8 4.18
RHEL 9 / Rocky 9 / Alma 9 5.14
RHEL 10 / Alma 10 6.12
Debian 12 « bookworm » 6.1
Debian 13 « trixie » 6.12
Ubuntu 22.04 LTS 5.15
Ubuntu 24.04 LTS 6.8

Comment lire une version de noyau Red Hat :

uname -r
# 5.14.0-427.13.1.el9_4.x86_64
#   5.14.0        → version de base choisie par Red Hat (kernel.org 5.14)
#   427.13.1      → numéro de construction Red Hat : des centaines de correctifs ajoutés
#   el9_4         → « Enterprise Linux 9 », mise à jour 9.4
#   x86_64        → architecture (PC 64 bits)

Un noyau 5.14 de RHEL 9 de 2025 est donc très différent du noyau 5.14 de kernel.org de 2021 : il contient des années de corrections.

8. La frise de la leçon

1987  Minix (Andrew Tanenbaum)
1991  Janvier : Linus achète son PC 386 — 25 août : l'annonce — septembre : Linux 0.01
1992  Linux passe sous GPL (0.12) ; débat « LINUX is obsolete »
1994  Linux 1.0 (mars)
1996  Linux 2.0 ; la mascotte Tux
2003  Linux 2.6
2005  Linus crée Git
2007  Création de la Linux Foundation (qui emploie Linus)
2011  Linux 3.0, pour les 20 ans
2022  Linux 6.0 ; premiers éléments en langage Rust dans le noyau (6.1)

Pièges fréquents

  • Confondre version du noyau et version de la distribution. uname -r donne le noyau ; /etc/os-release donne la distribution. Rocky 9.4 et Rocky 9.5 ont le même noyau de base 5.14.
  • Croire qu'un vieux numéro de noyau veut dire « pas à jour ». Le noyau 4.18 de RHEL 8 reçoit encore des correctifs de sécurité. Ce qui compte, c'est la date du paquet, pas le numéro de base.
  • Installer « le dernier noyau de kernel.org » sur un serveur d'entreprise. Vous perdez le support de l'éditeur et les modules tiers (pilotes, antivirus) risquent de ne plus fonctionner.
  • Dans un conteneur, croire que le noyau est celui de la distribution. Un conteneur partage le noyau de la machine hôte. Vous allez le constater dans le lab.

Lab

Vous êtes sur une machine Ubuntu 24.04. Interrogez le noyau :

uname -r                           # la version du noyau
uname -r | cut -d. -f1             # le premier nombre seulement
cat /proc/sys/kernel/ostype        # là où uname va chercher ses réponses
cat /proc/sys/kernel/osrelease
grep PRETTY_NAME /etc/os-release   # la distribution

Surprise : votre lab est un conteneur. La distribution est bien Ubuntu 24.04, mais le noyau affiché n'est pas le 6.8 d'Ubuntu : c'est celui de la machine qui héberge le lab. Un conteneur emprunte le noyau de son hôte ; seuls les programmes et les fichiers sont ceux d'Ubuntu. Réalisez les tâches, puis cliquez sur Vérifier.


Quiz

  1. Quel système Linus Torvalds utilisait-il avant d'écrire Linux, et qui l'avait créé ?
  2. Pourquoi le passage à la GPL en 1992 a-t-il été si important ?
  3. Qu'est-ce qu'une « fenêtre de fusion » dans le développement du noyau ?
  4. Quelle est la différence entre une version stable et une version longterm (LTS) sur kernel.org ?
  5. Un serveur RHEL 9 affiche 5.14.0-503.el9.x86_64. Pourquoi n'est-il pas « en retard » alors que kernel.org propose des versions 6.x ?
Réponses
  1. Minix, un petit UNIX éducatif créé par le professeur Andrew Tanenbaum (1987).
  2. La GPL permet à tous d'utiliser, modifier et redistribuer Linux tout en obligeant à partager les améliorations ; elle a attiré les contributeurs et permis d'associer le noyau aux outils GNU pour former un système entièrement libre.
  3. Les deux semaines qui suivent une version, pendant lesquelles les nouveautés entrent dans le noyau ; ensuite viennent les versions -rc, réservées aux corrections.
  4. Une version stable est corrigée seulement jusqu'à la sortie de la suivante ; une version longterm est corrigée pendant plusieurs années.
  5. Red Hat a choisi la base 5.14 et la maintient lui-même en y ajoutant correctifs de sécurité et nouveautés (le nombre 503 le montre). Le numéro de base ne dit pas si le noyau est à jour.

Sources de référence : documentation du noyau Linux (docs.kernel.org, GPL-2.0), kernel.org, « Just for Fun » de L. Torvalds. Texte original MasterLinux.

Exercices pratiques

À réaliser sur Ubuntu 24.04

Le terminal en ligne ouvre bientôt. En attendant, réalisez ces tâches sur votre machine Linux, une machine virtuelle ou WSL.

  1. Enregistrez la version exacte du noyau qui fait tourner votre machine (uname -r) dans /root/version-noyau.txt
    Afficher un indiceuname -r > /root/version-noyau.txt
    Voir la solution
    uname -r > /root/version-noyau.txt

    Vérification : grep -qx "$(uname -r)" /root/version-noyau.txt

  2. Gardez seulement le premier nombre de cette version (la version majeure) dans /root/majeure.txt
    Afficher un indicecut découpe une ligne : uname -r | cut -d. -f1 > /root/majeure.txt (séparateur : le point, champ n° 1)
    Voir la solution
    uname -r | cut -d. -f1 > /root/majeure.txt

    Vérification : grep -qx "$(uname -r | cut -d. -f1)" /root/majeure.txt

  3. uname lit ses réponses dans le noyau. Écrivez dans /root/proc.txt le contenu de /proc/sys/kernel/ostype puis celui de /proc/sys/kernel/osrelease
    Afficher un indicecat accepte plusieurs fichiers : cat /proc/sys/kernel/ostype /proc/sys/kernel/osrelease > /root/proc.txt
    Voir la solution
    cat /proc/sys/kernel/ostype /proc/sys/kernel/osrelease > /root/proc.txt

    Vérification : grep -qx Linux /root/proc.txt && grep -qx "$(uname -r)" /root/proc.txt

  4. Écrivez dans /root/annee-linux.txt l'année de la toute première version de Linux (0.01).
    Afficher un indiceLa version 0.01 est sortie un mois après le célèbre message d'août. Exemple : echo 2000 > /root/annee-linux.txt
    Voir la solution
    echo 1991 > /root/annee-linux.txt

    Vérification : grep -qx 1991 /root/annee-linux.txt

Références officielles consultées : The Linux Kernel documentation — « How the development process works » (docs.kernel.org) ; kernel.org — Releases (mainline, stable, longterm) ; L. Torvalds et D. Diamond, « Just for Fun » (2001). Texte original MasterLinux.