6 points par GN⁺ 2026-01-22 | 1 commentaires | Partager sur WhatsApp
  • Manuel pas à pas guidant l’utilisateur pour construire lui-même un système Linux à partir du code source
  • La version 12.4 a été publiée le 1er septembre 2025 et inclut notamment le kernel 6.16.1, GCC 15.2.0 et Glibc 2.42 les plus récents
  • Couvre l’ensemble du processus, de la configuration d’une cross-toolchain à l’installation d’outils temporaires puis à la finalisation d’un système amorçable
  • Chaque chapitre distingue en détail la liste des paquets, l’ordre de compilation, les procédures de test et la configuration du système
  • Une ressource importante pour les développeurs et les ingénieurs système souhaitant apprendre l’architecture interne de Linux et créer une distribution sur mesure

Vue d’ensemble

  • Linux From Scratch (LFS) est un projet conçu pour permettre aux utilisateurs de construire eux-mêmes un système Linux sans partir d’une distribution existante
    • Il explique étape par étape comment compiler et configurer tous les composants à partir du code source
    • Gerard Beekmans en est le fondateur, et Bruce Dubbs assure la direction éditoriale
  • La documentation est proposée sous la forme d’un manuel en ligne basé sur HTML, avec pour chaque étape des liens détaillés et les versions des paquets indiquées

Informations de version

  • La version stable actuelle est la 12.4, publiée le 1er septembre 2025
  • Le copyright appartient à Gerard Beekmans pour la période 1999–2025
  • La dernière version inclut des paquets majeurs comme Linux 6.16.1, GCC 15.2.0, Glibc 2.42 et Python 3.13.7

Structure du document

  • Le document se compose de 5 grandes parties : préface, préparation de la compilation, construction de la cross-toolchain, construction du système, configuration du démarrage et annexes
    • Préface (Preface) : présente le public visé, les connaissances requises, la conformité aux standards et les raisons du choix des paquets
    • Préparation de la compilation (Preparing for the Build) : inclut les exigences du système hôte, la création des partitions et la configuration des variables d’environnement
    • Construction de la cross-toolchain et des outils temporaires (Building the LFS Cross Toolchain and Temporary Tools) : met en place les composants essentiels comme Binutils, GCC et Glibc
    • Construction du système LFS (Building the LFS System) : installation et configuration des principaux logiciels système
    • Finalisation d’un système LFS amorçable (Making the LFS System Bootable) : compilation du kernel et configuration de GRUB
    • Annexes (Appendices) : comprennent les abréviations, les dépendances, les scripts de démarrage et la licence

Composants principaux

  • La liste des paquets comprend plus de 100 utilitaires et bibliothèques essentiels
    • Exemples : Coreutils 9.7, Bash 5.3, Perl 5.42.0, Python 3.13.7, OpenSSL 3.5.2, Systemd Udev 257.8
  • Pour chaque paquet, les étapes d’installation, de test et de nettoyage (cleanup) sont détaillées
  • Inclut des scripts de démarrage basés sur SysVinit 3.14 ainsi que la configuration du chargeur de démarrage GRUB 2.12

Configuration système et démarrage

  • Le chapitre 9 (System Configuration) couvre le réseau, les locales, la gestion des périphériques et la configuration des entrées
  • Le chapitre 10 (Making the LFS System Bootable) inclut la rédaction de /etc/fstab, la compilation du kernel et la configuration de GRUB
  • Le chapitre 11 (The End) présente le redémarrage du système et des ressources pour aller plus loin

Annexes et licence

  • L’annexe D inclut les scripts boot et sysconfig en version 20250827
  • L’annexe F mentionne deux licences : Creative Commons et MIT License
  • Des ressources de référence sont également fournies, comme la liste des dépendances, le glossaire et les remerciements

Importance

  • LFS est un projet pédagogique et de recherche qui permet d’expérimenter directement les principes de construction et l’architecture de Linux
  • Il sert de référence standard pour la construction d’un environnement Linux minimal aux administrateurs système, développeurs de distributions et chercheurs en sécurité

1 commentaires

 
GN⁺ 2026-01-22
Avis sur Hacker News
  • Quelqu’un raconte avoir construit lui-même Linux From Scratch (LFS) pour apprendre le fonctionnement interne d’un système Linux
    Il avait commencé en 1999 et l’a utilisé jusqu’en 2001, mais a fini par abandonner car la gestion des dépendances et les recompilations étaient trop pénibles
    À l’époque, la documentation n’était pas aussi détaillée qu’aujourd’hui, il fallait donc tout retracer soi-même, et il y avait aussi beaucoup de paquets obscurs
    Malgré cela, il garde un très bon souvenir de cette période où, après être passé à Slackware, il compilait lui-même des paquets comme XFree86 et GNOME et y contribuait
    Si vous en avez le temps, il recommande vivement d’essayer. Votre regard sur Linux en sera complètement transformé
    • Il existe aussi une version systemd de LFS, ainsi que Gaming LFS et une version avec système de build automatisé, disponibles sur le site de Linux From Scratch
    • Une autre personne a aussi essayé vers 1999, mais à l’époque les explications se limitaient souvent à « tapez cette commande » et manquaient de détails
      Aujourd’hui, cela vaudrait sans doute la peine de retenter l’expérience dans une machine virtuelle
    • Wayland est en réalité simple. Il y a moins de configuration à faire qu’avec systemd
      La vraie force de LFS/BLFS, c’est de pouvoir ajuster le système à son propre usage
      Cette personne suit 4 000 projets avec un script Ruby. Si gem-coop devient une alternative viable à rubygems.org commercial, elle prévoit de republier son projet
    • Une autre personne l’a aussi fait au lycée, vers 2005, et a trouvé l’expérience formidable pour comprendre comment le système s’assemble en compilant des dizaines de projets
      Elle n’a jamais vraiment utilisé le système terminé, mais estime que ces quelques soirées y ont largement valu la peine
    • À l’époque, il fallait suivre les dépendances à la main, alors qu’aujourd’hui on peut obtenir immédiatement des réponses avec ChatGPT
      Selon ce commentaire, ce meilleur accès à l’information est une des grandes raisons de la croissance de Linux
  • Chaque fois que quelqu’un voit ce projet, il lui met un upvote
    Quand il était plus jeune, construire LFS lui a appris qu’on pouvait accéder aux niveaux les plus bas d’un ordinateur
    • Une autre personne l’a fait en 1999 pendant son adolescence, à l’époque parfaite où elle était assez futée pour résoudre les problèmes et avait encore beaucoup de temps
    • Aujourd’hui, il y a davantage de choses à compiler. Des éléments comme LLVM, cmake et meson se sont ajoutés, ce qui allonge le temps de build, mais cela fonctionne toujours très bien
  • Si quelqu’un veut comprendre l’essence d’une distribution Linux, certains recommandent toujours LFS
    • Une personne dit y avoir appris une grande partie de ses connaissances Linux
      Cela dit, Gentoo ou Arch offrent un effet pédagogique comparable avec un temps d’installation bien plus court
    • Grâce à LFS, quelqu’un a l’impression d’avoir davantage appris sur sed, les CFLAGS de gcc et le bootstrap que sur l’OS lui-même
  • Quelqu’un partage une citation tirée du blog « 20 Years of Gentoo »
    Beaucoup disent « je vais faire LFS plutôt que Gentoo », mais la plupart abandonnent en cours de route ou finissent par détester durablement les distributions basées sur les sources
    Slackware et LFS y sont comparés à Haskell, avec l’idée qu’aller trop loin dans l’extrême finit par devenir improductif
    • Haskell est difficile, mais Slackware et LFS sont simples. Selon ce commentaire, la comparaison ne tient pas
      LFS est abondamment documenté, et même si Slackware a été dépassé par son époque, les efforts de Patrick restent remarquables
    • Une autre personne dit avoir elle aussi eu une expérience partiellement cassée. La pile réseau se comportait différemment selon les programmes, et depuis elle n’a jamais réessayé
  • Quelqu’un a acheté vers 2006 une version papier du livre LFS
    Il récupérait des pièces de PC 386/486 dans un entrepôt de recyclage informatique à Seattle, les assemblait et y installait Linux
    Il a grandi en apprenant Linux sur ces ordinateurs Frankenstein qu’il avait fabriqués
  • Du point de vue d’une personne qui utilise Linux depuis plus de 25 ans, construire LFS aujourd’hui est une perte de temps
    Avec un système basé sur RPM, les transactions de dnf permettent de suivre l’historique des installations et d’effectuer des retours en arrière, ce qui rend l’administration bien plus simple
    • LFS est un parcours de formation destiné à l’apprentissage. Le but n’est pas la facilité, mais de révéler les couches les plus basses de l’OS
    • La valeur de LFS ne réside pas dans le système terminé, mais dans le processus de compréhension
      Après avoir suivi le livre une fois pour construire un OS, il devient plus facile de comprendre les différences entre distributions, et cela donne un sentiment d’appropriation du système
    • On peut implémenter des fonctions similaires même sans RPM. Une personne utilise des AppDir versionnés, et NixOS garantit l’état du système avec des répertoires hachés et nix
    • À l’idée qu’il faudrait toujours choisir la voie la plus confortable, certains répondent qu’il ne faut pas décourager la volonté d’essayer quelque chose de nouveau
  • Le BLFS (Beyond Linux From Scratch) mentionné dans plusieurs commentaires est disponible à ce lien
  • En 2014, quelqu’un a construit Cross-Linux From Scratch pour Raspberry Pi
    Comme il s’agissait d’une compilation croisée pour ARMv6, c’était très difficile, mais extrêmement instructif
    Il a automatisé les builds avec Jenkins et structuré le système avec des scripts bash et des Makefile
    L’image finale faisait environ 40 Mo, et il en était très fier
  • En lisant le chapitre des tests de glibc, quelqu’un a été marqué par la phrase
    « ne sautez jamais les tests »
    Comme glibc tolère lui-même certains échecs de tests, cette personne a repris une formule similaire dans les tests de son propre logiciel
    En voyant l’avertissement « enfreindre cette étape peut casser le système », elle a eu l’impression d’être face à une distribution Linux façon Dark Souls
    • Oui, c’est exactement cette sensation
  • LFS/BLFS n’est pas parfait, mais c’est un bon exemple de connaissance et d’application autour de Linux
    Recompiler le noyau reste pénible à cause du trop grand nombre d’options, mais ce genre d’apprentissage fait partie du charme de Linux
    C’est une culture qu’on voit rarement dans d’autres OS, surtout Windows
    Quelqu’un se demande s’il existe une version BSD de LFS