GNU Hurd — the old kernel of the future

Cette vidéo explore l’histoire, l’architecture et l’état actuel de GNU Hurd, un micro-noyau libre développé depuis 36 ans, en expliquant pourquoi il n’a jamais percé face à Linux et comment il pourrait trouver une place dans un écosystème plus fragmenté.

Voir la source

SYNTHÈSE STRUCTURÉE

L’origine philosophique de GNU Hurd

En septembre 1983, Richard Stallman publie le Manifeste GNU et annonce la construction d’un système d’exploitation entièrement libre – pas gratuit, mais libre au sens des libertés : code lisible, modifiable, redistribuable sans autorisation. Pendant six ans, le projet GNU construit presque tout (compilateur GCC, éditeur Emacs, shell, bibliothèques, utilitaires), mais il manque le noyau, la pièce maîtresse. L’intervenant rappelle que « le noyau qui n’arrivait jamais » est devenu un sujet de plaisanteries, notamment pour les poissons d’avril.

Le choix de Mach : une décision technique lourde de conséquences

En 1987, Stallman se tourne vers Mach, un micro-noyau développé à Carnegie Mellon. Mach fait très peu de choses volontairement : il gère la mémoire virtuelle, l’ordonnancement de base et le passage de messages entre processus. Tout le reste (système de fichiers, réseau, authentification) s’exécute en espace utilisateur comme des serveurs indépendants. Stallman y voit une cohérence philosophique avec GNU : modularité, séparation des privilèges, remplaçabilité des composants. Mais les problèmes de licence avec l’université retardent le projet de plusieurs années. L’intervenant cite Stallman : « Je prends l’entière responsabilité de la décision technique de développer le noyau GNU basé sur Mach. Je pensais que cela accélérerait le travail. J’avais tort. »

L’architecture de Hurd : micro-noyau et serveurs isolés

Dans GNU Hurd, le micro-noyau GNU Mach fait le strict minimum. Les composants comme ext2fs (système de fichiers), finet (réseau), proc (gestion des processus) et auth (authentification) sont des serveurs indépendants en espace utilisateur. Chaque serveur a ses propres privilèges et est isolé des autres. L’intervenant explique : « Si ext2fs plante, le reste du système peut continuer à fonctionner. Vous pouvez redémarrer juste ce serveur. Vous pouvez le remplacer par une implémentation différente sans redémarrer la machine. » C’est une propriété émergente de la conception, pas une fonctionnalité ajoutée après coup.

Les traducteurs : une innovation unique

La fonctionnalité la plus originale de Hurd est le système de traducteurs. Un utilisateur normal, sans privilège root, peut monter une archive tar, un système de fichiers distant, ou un répertoire avec du contenu généré dynamiquement exactement de la même manière que le système monte une partition. L’intervenant souligne : « C’est ‘tout est fichier’, le principe fondamental d’Unix, poussé à sa conclusion logique avec une séparation des privilèges garantie par le micro-noyau. » Aucun autre système grand public n’a jamais implémenté cela.

Le coût de l’élégance : surcharge IPC et lenteur

Chaque opération d’entrée-sortie génère un message IPC (Inter-Process Communication) vers le serveur approprié, qui le traite et répond. Sous Linux, la même opération est un appel direct au noyau. L’intervenant précise : « Hurd n’est pas lent par paresse. Il est lent par architecture. » Cette surcharge est le prix à payer pour l’isolation et la modularité. C’est une limitation fondamentale, pas un bug.

Débogage complexe et support multi-cœurs limité

Dans un noyau monolithique, un crash produit une backtrace lisible. Dans Hurd, un dysfonctionnement peut résulter d’un message IPC mal formé entre deux serveurs écrits par des personnes différentes. L’intervenant note : « La frontière entre un bug dans le serveur, un bug dans Mach et un bug dans le protocole de communication est souvent impossible à tracer sans outils spécifiques que Hurd lui-même a du mal à fournir. » De plus, le support SMP (multi-cœurs) est encore partiel : le système boote sur le processeur principal, mais les cœurs supplémentaires sont un travail en cours. En 2026, un système monocœur est académique, pas pratique.

Le problème des pilotes et de la compatibilité matérielle

Sous Linux, les pilotes vivent dans le noyau et sont directement contribués par les fabricants (Intel, AMD, Nvidia). Sous Hurd, chaque pilote est un serveur séparé que quelqu’un doit écrire, maintenir et mettre à jour manuellement. Le projet DDE (Driver Development Environment) a réussi à porter environ la moitié des pilotes réseau d’un noyau Linux 2.6.29 – datant de 2009. L’intervenant résume : « L’écart ne se comble pas par la bonne volonté seule. »

L’héritage de Mach et la compatibilité POSIX

Mach a été conçu dans les années 1980 pour le matériel et les schémas d’accès de cette époque. Il n’a pas été bâti pour NVMe, le calcul GPU ou les architectures NUMA avec des dizaines de cœurs. Les tentatives de portage vers des micro-noyaux plus modernes (L4, etc.) n’ont jamais atteint la maturité nécessaire. La compatibilité POSIX est encore incomplète : même des outils Unix fondamentaux ont un comportement non standard sur Hurd et nécessitent des correctifs spécifiques. L’intervenant cite un exemple frappant : « En 2024, quelqu’un travaillait à corriger la suite de tests Perl sur Hurd. Perl, en 2024. Ce seul fait vous dit combien de travail reste à faire. »

Une équipe de développement minuscule

Debian GNU Hurd est maintenu essentiellement par une seule personne, Samuel Thibault. Il y a d’autres contributeurs, mais le noyau actif est minuscule. Linux a des milliers de développeurs payés par Red Hat, Google, Intel. Hurd repose sur des bénévoles travaillant sur leur temps libre. L’intervenant précise : « Ce n’est pas une critique, c’est une pure admiration, mais c’est aussi la réalité qui explique tout le reste. »

Le tournant de 2026 : portage x86-64 et regain d’intérêt

En mars 2026, GNU Hurd obtient son portage x86-64, après des décennies bloqué sur i386 (32 bits). Le 1er avril 2026, Gentoo publie une annonce – apparemment un poisson d’avril – indiquant qu’elle abandonne Linux pour Hurd. Mais cachée au bas de l’annonce se trouve une information réelle : Gentoo a un port expérimental GNU Hurd avec une image disque pré-construite testable via QEMU. Parallèlement, des développeurs travaillent sur un portage aarch64 (ARM 64 bits) et GCC 16 introduit des cibles RISC-V pour GNU Hurd. Debian GNU Hurd 2025 est livré avec un compilateur Rust officiel, couvrant 71 % des paquets de l’archive Debian. L’intervenant conclut : « Hurd en 2026 tourne sur du matériel réel, a un écosystème de paquets fonctionnel et, pour la première fois depuis des décennies, n’est pas juste une expérience académique. »

CONCEPTS CLÉS

  • Micro-noyau : Noyau qui ne gère que les fonctions minimales (mémoire virtuelle, ordonnancement, communication inter-processus), déléguant tout le reste à des serveurs en espace utilisateur.
  • IPC (Inter-Process Communication) : Mécanisme par lequel les différents serveurs de Hurd communiquent entre eux via des messages, à la différence des appels directs dans un noyau monolithique.
  • Traducteurs : Fonctionnalité de Hurd permettant à un utilisateur normal de monter des systèmes de fichiers (archives tar, répertoires distants, contenu généré dynamiquement) sans

Du même canal

Tout voir