Aller au contenu

Linux : définition, origine et rôle du noyau

Linux, tout le monde en parle, presque personne ne désigne la même chose. Pour les uns c’est un système d’exploitation, pour les autres un logo de pingouin, pour d’autres encore une distribution avec un bureau et un navigateur. Techniquement, Linux est un noyau : quelques dizaines de millions de lignes qui arbitrent l’accès au processeur, à la mémoire, aux disques et au réseau, et rien d’autre. Le reste, c’est de l’assemblage. Reprendre l’origine du projet, sa licence et son rôle exact évite bien des malentendus, et explique surtout pourquoi ce bout de code démarré par un étudiant finlandais en 1991 fait tourner aujourd’hui les serveurs, les téléphones et les supercalculateurs.

→ Lire l’explication complète de la marmotte

Définition : Linux est un noyau, pas un système d’exploitation complet

Section intitulée « Définition : Linux est un noyau, pas un système d’exploitation complet »

Linux désigne un noyau de système d’exploitation, c’est-à-dire la couche logicielle qui parle directement au matériel et qui arbitre l’accès au processeur, à la mémoire, aux disques et au réseau. Tout le reste (shell, compilateur, gestionnaire de paquets, interface graphique) vit au-dessus, dans l’espace utilisateur, et communique avec le noyau par des appels système : environ 350 sur l’architecture x86_64, dont les classiques read, write, openat, mmap, clone, execve.

Techniquement, c’est un noyau monolithique modulaire : le code des pilotes s’exécute dans le même espace d’adressage que l’ordonnanceur, mais il peut être chargé et déchargé à chaud sous forme de modules .ko. Le sens courant du mot ratisse plus large et englobe l’écosystème complet, ce qui explique l’insistance du projet GNU (GNU’s Not Unix) sur l’appellation GNU/Linux : les outils userland historiques (glibc, coreutils, bash, GCC (GNU Compiler Collection)) viennent de là.

Linus Torvalds, 1991 : de MINIX (Mini-Unix) au premier noyau libre

Section intitulée « Linus Torvalds, 1991 : de MINIX (Mini-Unix) au premier noyau libre »

Linus Torvalds, alors étudiant à l’université d’Helsinki, poste le 25 août 1991 un message sur le groupe Usenet comp.os.minix pour annoncer un système « juste un hobby, rien de gros et professionnel comme GNU ». La version 0.01 sort en septembre 1991 : environ 10 000 lignes, pas de réseau, pas de portabilité, du 386 et rien d’autre. La 1.0 arrive en mars 1994, la 2.6 en 2003, la 3.0 en 2011 par simple lassitude de la numérotation.

Le nom vient d’Ari Lemmke, l’administrateur du serveur FTP (File Transfer Protocol) de l’université, qui a rebaptisé le répertoire prévu pour s’appeler « Freax ». Torvalds trouvait « Linux » trop égocentrique. L’histoire a tranché sans lui. Le même Torvalds écrira Git en 2005, dans l’urgence, après la rupture avec BitKeeper.

GNU General Public License version 2 (GPLv2) : le choix de licence qui a tout conditionné

Section intitulée « GNU General Public License version 2 (GPLv2) : le choix de licence qui a tout conditionné »

Les premières versions étaient diffusées sous une licence maison interdisant toute exploitation commerciale. En février 1992, avec la 0.12, Torvalds bascule sur la GPLv2. Ce basculement est la décision structurante du projet : la licence impose que toute redistribution d’une version modifiée du noyau s’accompagne des sources correspondantes.

Le noyau reste volontairement en GPL-2.0 only, sans clause « or later », ce qui l’exclut de la GPLv3 (GNU General Public License version 3) et de ses dispositions anti-tivoïsation. Conséquence pratique : les fabricants peuvent verrouiller le matériel tout en respectant la licence, et Android en a largement profité. Le développement suit un cycle de release d’environ neuf à dix semaines, avec des versions LTS (Long Term Support) maintenues plusieurs années, et rassemble plus de 15 000 contributeurs venus d’un millier d’entreprises.

L’ordonnanceur répartit le temps CPU (Central Processing Unit) entre les tâches (CFS (Completely Fair Scheduler) jusqu’en 6.5, puis EEVDF (Earliest Eligible Virtual Deadline First) à partir de la 6.6). Le gestionnaire de mémoire virtuelle traduit les adresses via la MMU (Memory Management Unit), gère la pagination et le swap. Le VFS (Virtual File System) offre une interface unique par-dessus ext4, XFS (eXtended File System), Btrfs, F2FS (Flash-Friendly File System) ou NFS (Network File System). La pile réseau implémente TCP/IP (Transmission Control Protocol / Internet Protocol), Netfilter et, depuis la 3.15, eBPF (extended Berkeley Packet Filter) pour injecter du code vérifié directement dans le noyau.

Deux briques ont changé la donne côté isolation : les namespaces (PID (Process Identifier), mount, network, user, à partir de 2002) et les cgroups, contribués par Google en 2007. Docker, Podman et Kubernetes ne sont rien d’autre que de l’outillage autour de ces primitives noyau. Pas de magie de conteneur : juste des processus Linux avec une vue restreinte.

Un noyau seul ne fait rien d’exploitable. Une distribution empaquette le noyau, une libc, un système d’init, un gestionnaire de paquets et quelques milliers de logiciels. Slackware et Debian apparaissent en 1993, Red Hat en 1994, Ubuntu en 2004 sur base Debian.

Les familles se distinguent par le format de paquets (.deb avec APT (Advanced Package Tool), .rpm avec DNF (Dandified Yum), .pkg.tar.zst avec pacman) et par le rythme de mise à jour : Debian stable ou RHEL (Red Hat Enterprise Linux) misent sur des versions figées maintenues cinq à dix ans, Arch Linux sur du rolling release. Côté init, systemd, lancé par Lennart Poettering en 2010, s’est imposé sur la quasi-totalité des grandes distributions, non sans quelques débats mémorables.

Les chiffres parlent mieux que les slogans. Depuis novembre 2017, les 500 supercalculateurs du classement TOP500 tournent tous sous Linux, sans exception. Android, qui repose sur le noyau Linux avec la libc Bionic à la place de la glibc, équipe plus de 70 % des smartphones dans le monde. Côté infrastructure cloud, la majorité des instances des grands fournisseurs sont des machines Linux, et les images de conteneurs le sont par construction.

L’embarqué complète le tableau : box internet, téléviseurs, automates industriels, systèmes de divertissement en vol, la plupart via Yocto ou Buildroot. Le desktop reste la seule niche où la part de marché plafonne autour de quelques pourcents, avec une remontée notable poussée par le Steam Deck et sa couche Proton.

Trois raisons tiennent la route. La licence d’abord : aucune redevance par socket, aucun audit de conformité, ce qui a rendu le déploiement massif économiquement trivial face aux UNIX propriétaires facturés par machine. La portabilité ensuite : le noyau tourne sur x86, ARM (Advanced RISC Machines), RISC-V (Reduced Instruction Set Computer Five), POWER (Performance Optimization With Enhanced RISC), s390x et une trentaine d’autres architectures, ce qui en fait le seul dénominateur commun d’un parc hétérogène.

La gouvernance enfin. La règle « we do not break userspace », martelée par Torvalds, garantit qu’un binaire compilé en 2005 continue de fonctionner sur un noyau récent. Cette stabilité d’ABI (Application Binary Interface) côté espace utilisateur, combinée à une absence totale de stabilité d’API (Application Programming Interface) interne pour les pilotes, a poussé le matériel à faire remonter son code en amont. Un cercle vertueux plutôt qu’une stratégie.

Exemple : vérifier qu’un binaire de 2005 tourne encore aujourd’hui

Section intitulée « Exemple : vérifier qu’un binaire de 2005 tourne encore aujourd’hui »

La règle « we do not break userspace » n’est pas un slogan abstrait : un binaire ELF (Executable and Linkable Format) x86_64 compilé sous une distribution de 2005, sans recompilation, s’exécute encore sur un noyau 6.x récent tant qu’il n’utilise que des appels système stables. C’est une garantie de stabilité d’ABI, pas de code source, la preuve empirique de la compatibilité ascendante que le texte revendique.

Linux n’est ni UNIX ni un dérivé d’UNIX : aucune ligne de code AT&T (American Telephone and Telegraph) n’a été reprise, seule la conception s’en inspire, avec une conformité POSIX (Portable Operating System Interface) partielle. Ubuntu n’est pas « un autre système que Linux », c’est une distribution qui embarque le même noyau. Enfin, « Linux est gratuit » mélange deux choses : la GPL (General Public License) parle de liberté de modification et de redistribution, pas de prix, et une souscription RHEL se facture bel et bien.

La marque « Linux » est déposée par Linus Torvalds et administrée par le Linux Mark Institute. Le code, lui, appartient à ses milliers de contributeurs individuels et entreprises, chacun conservant son copyright sous GPLv2. La Linux Foundation, créée en 2007, finance le développement et emploie Torvalds, mais ne détient pas le noyau.

Quelle différence entre le noyau et une distribution ?

Section intitulée « Quelle différence entre le noyau et une distribution ? »

Le noyau se télécharge sur kernel.org : une archive de sources qu’il faut configurer et compiler. Une distribution livre ce noyau déjà compilé, accompagné de l’espace utilisateur, d’un installeur et d’une politique de mise à jour. Comparer Debian et Linux revient à comparer une voiture et son moteur.

Rarement. Les noyaux fournis par les distributions activent plusieurs milliers d’options et couvrent la quasi-totalité du matériel courant. La compilation manuelle se justifie pour de l’embarqué contraint en taille, pour activer une option absente ou pour appliquer un patch de temps réel comme PREEMPT_RT (Preemptible Real-Time), fusionné en amont depuis la version 6.12.

Linux est le noyau écrit par Linus Torvalds à partir d’août 1991, placé sous GPLv2 dès 1992, qui gère processeur, mémoire, systèmes de fichiers et réseau pour tout ce qui s’exécute au-dessus. Il n’est utilisable qu’assemblé dans une distribution, il domine le serveur, le supercalcul, le mobile via Android et l’embarqué, et il doit cette position à une licence permissive en usage, une portabilité extrême et une obsession de la compatibilité ascendante côté espace utilisateur.

Ignorer que Linux n’est qu’un noyau, partagé par tout ce qui s’exécute au-dessus, conduit à des erreurs d’appréciation coûteuses. Un conteneur n’étant qu’un processus doté d’une vue restreinte, une faille du noyau de l’hôte concerne d’un seul coup tous les conteneurs qu’il porte ; les croire isolés comme des machines distinctes revient à surestimer la cloison. Négliger le cycle de publication conduit, lui, à conserver un noyau sorti de toute branche maintenue : les correctifs publiés ensuite ne lui sont plus destinés, et chaque vulnérabilité découverte y reste ouverte. Quant au binaire de 2005 qui tourne toujours, sa longévité est une prouesse de compatibilité, pas la preuve que ses propres failles ont été corrigées.

Linux est un noyau : le programme qui démarre en premier et parle directement au matériel. Il décide quel programme utilise le processeur à chaque instant, attribue la mémoire, donne accès aux disques et gère le réseau. Les autres programmes, comme l’interpréteur de commandes ou l’interface graphique, ne touchent pas le matériel eux-mêmes : ils adressent au noyau des demandes précises, appelées appels système, et le noyau les exécute ou les refuse. Les pilotes de matériel peuvent être ajoutés ou retirés pendant que la machine fonctionne. Le noyau sait aussi isoler des groupes de programmes : chacun ne voit qu’une partie du système et ne reçoit qu’une part limitée des ressources. Les conteneurs utilisés dans l’informatique moderne reposent entièrement sur ce mécanisme. Seul, le noyau ne suffit pas : une distribution, comme Debian ou Ubuntu, l’assemble avec des outils, un système de démarrage et un moyen d’installer des logiciels, puis publie les mises à jour. Linux est publié sous une licence qui oblige quiconque distribue une version modifiée à fournir aussi son code source. Cette règle, l’absence de frais par machine, la capacité à fonctionner sur des dizaines de types de processeurs et la promesse de ne jamais casser les programmes existants expliquent sa présence dans les serveurs, les téléphones Android et les supercalculateurs.

À lire aussi

Pages voisines

: les deux pages se citent l’une l’autre.