6 Punkte von GN⁺ 2026-01-22 | 1 Kommentare | Auf WhatsApp teilen
  • Eine schrittweise Anleitung, die Nutzer dabei unterstützt, ein Linux-System direkt aus dem Quellcode zu erstellen
  • Version 12.4 wurde am 1. September 2025 veröffentlicht und enthält den aktuellen Kernel 6.16.1 sowie GCC 15.2.0, Glibc 2.42 und weitere Komponenten
  • Behandelt den gesamten Prozess von der Einrichtung einer Cross-Toolchain über die Installation temporärer Werkzeuge bis zur Fertigstellung eines bootfähigen Systems
  • Jedes Kapitel ist klar nach Paketliste, Build-Reihenfolge, Testverfahren und Systemkonfiguration gegliedert
  • Eine wichtige Ressource für Entwickler und Systemingenieure, um die interne Struktur von Linux zu erlernen und maßgeschneiderte Distributionen zu erstellen

Überblick

  • Linux From Scratch (LFS) ist ein Projekt, das darauf ausgelegt ist, Nutzern den direkten Bau eines Linux-Systems ohne bestehende Distribution zu ermöglichen
    • Es erklärt Schritt für Schritt, wie alle Komponenten aus dem Quellcode kompiliert und konfiguriert werden
    • Gegründet von Gerard Beekmans, redaktionell betreut von Bruce Dubbs
  • Die Dokumentation wird als HTML-basiertes Online-Handbuch bereitgestellt; für jeden Schritt sind Detail-Links und Paketversionen angegeben

Versionsinformationen

  • Die aktuelle stabile Version ist 12.4, veröffentlicht am 1. September 2025
  • Das Copyright liegt 1999–2025 bei Gerard Beekmans
  • Das aktuelle Release enthält wichtige Pakete wie Linux 6.16.1, GCC 15.2.0, Glibc 2.42 und Python 3.13.7

Struktur der Dokumentation

  • Die Dokumentation besteht aus fünf Hauptteilen: Vorwort, Build-Vorbereitung, Aufbau der Cross-Toolchain, System-Build, Boot-Konfiguration und Anhänge
    • Vorwort (Preface): Erläutert Zielgruppe, benötigte Kenntnisse, Einhaltung von Standards und Gründe für die Paketauswahl
    • Build-Vorbereitung (Preparing for the Build): Enthält Anforderungen an das Host-System, das Erstellen von Partitionen und das Setzen von Umgebungsvariablen
    • Aufbau der LFS-Cross-Toolchain und temporären Werkzeuge (Building the LFS Cross Toolchain and Temporary Tools): Konfiguration zentraler Compiler-Werkzeuge wie Binutils, GCC und Glibc
    • Build des LFS-Systems (Building the LFS System): Installation und Konfiguration der wichtigsten Systemsoftware
    • Ein bootfähiges LFS-System erstellen (Making the LFS System Bootable): Kernel-Kompilierung und GRUB-Konfiguration
    • Anhänge (Appendices): Enthalten Abkürzungen, Abhängigkeiten, Boot-Skripte, Lizenzen und mehr

Zentrale Komponenten

  • Die Paketliste umfasst mehr als 100 Kern-Utilities und Bibliotheken
    • Beispiele: Coreutils 9.7, Bash 5.3, Perl 5.42.0, Python 3.13.7, OpenSSL 3.5.2, Systemd Udev 257.8
  • Für jedes Paket sind die Schritte Installation, Tests und Bereinigung (cleanup) konkret aufgeführt
  • Enthält Boot-Skripte auf Basis von SysVinit 3.14 sowie die Konfiguration des Bootloaders GRUB 2.12

Systemkonfiguration und Booten

  • Kapitel 9 (System Configuration) behandelt Netzwerk, Gebietsschemata, Geräteverwaltung und Eingabekonfiguration
  • Kapitel 10 (Making the LFS System Bootable) umfasst das Erstellen von /etc/fstab, den Kernel-Build und die GRUB-Konfiguration
  • Kapitel 11 (The End) führt durch den Neustart des Systems und verweist auf weiterführende Lernmaterialien

Anhänge und Lizenzen

  • Anhang D enthält die Skriptversionen 20250827 für boot und sysconfig
  • Anhang F nennt zwei Lizenzen: Creative Commons und MIT License
  • Zusätzlich stehen Referenzmaterialien wie Abhängigkeitslisten, Glossar und Danksagungen zur Verfügung

Bedeutung

  • LFS ist ein Lehr- und Forschungsprojekt, mit dem sich die Konstruktionsprinzipien und das Build-System von Linux unmittelbar nachvollziehen lassen
  • Für Systemadministratoren, Distributionsentwickler und Sicherheitsforscher dient es als maßgebliches Referenzwerk für den Aufbau einer minimalen Linux-Umgebung

1 Kommentare

 
GN⁺ 2026-01-22
Hacker-News-Kommentare
  • Jemand berichtet von der Erfahrung, Linux From Scratch (LFS) selbst gebaut zu haben, um die Interna eines Linux-Systems zu verstehen
    Angefangen wurde 1999, genutzt bis 2001, dann aber aufgegeben, weil Abhängigkeitsverwaltung und Neukompilieren zu mühsam waren
    Damals war die Dokumentation noch nicht so detailliert wie heute, sodass vieles selbst nachverfolgt werden musste, und es gab viele obskure Pakete
    Trotzdem war die Zeit des Wechsels zu Slackware, mit selbst gebauten und mitgestalteten Paketen wie XFree86 und GNOME, sehr schön
    Falls es die Zeit erlaubt, wird ausdrücklich empfohlen, es einmal auszuprobieren. Der Blick auf Linux verändert sich dadurch komplett
    • Es gibt auch eine systemd-Version von LFS sowie Varianten wie Gaming LFS und Versionen mit automatischem Build-System
    • Ich habe es auch um 1999 herum versucht, aber damals fehlten oft Erklärungen jenseits von einfachem „Gib diesen Befehl ein“
      Heute wäre es wohl einen neuen Versuch in einer virtuellen Maschine wert
    • Wayland ist eigentlich simpel. Es gibt weniger zu konfigurieren als bei systemd
      Die eigentliche Stärke von LFS/BLFS liegt darin, dass man das System für den eigenen Einsatzzweck anpassen kann
      Ich verfolge 4000 Projekte mit einem Ruby-Skript. Wenn gem-coop eine Alternative zum kommerziellen rubygems.org wird, werde ich mein Projekt wieder veröffentlichen
    • Ich habe es als Schüler auch ausprobiert, etwa 2005, und die Erfahrung, Dutzende Projekte zu bauen und dabei zu lernen, wie das System zusammenspielt, war wirklich großartig
      Ich habe das fertige System nie tatsächlich genutzt, aber ein paar Abende waren dafür sehr gut investiert
    • Damals musste man Abhängigkeiten noch selbst nachverfolgen, heute bekommt man mit ChatGPT sofort Antworten
      Ich denke, der bessere Zugang zu Informationen ist ein wichtiger Grund für das Wachstum von Linux
  • Jedes Mal, wenn ich dieses Projekt sehe, gebe ich ihm ein Upvote
    Als ich jung war und LFS baute, habe ich dadurch gelernt, dass man bis auf die unterste Ebene eines Computers hinunter Zugriff bekommen kann
    • Ich habe es 1999 als Teenager auch gemacht; das war die perfekte Zeit, weil ich klug genug war, Probleme zu lösen, und zugleich viel Zeit hatte
    • Heute gibt es mehr zu kompilieren. Dinge wie LLVM, cmake und meson sind dazugekommen, daher dauern Builds länger, aber es funktioniert immer noch gut
  • Wenn jemand das Wesen einer Linux-Distribution verstehen will, empfehle ich immer LFS
    • Ich habe auch einen großen Teil meines Linux-Wissens dort gelernt
      Allerdings bieten Gentoo oder Arch einen ähnlichen Lerneffekt bei deutlich kürzerer Installationszeit
    • Dank LFS habe ich das Gefühl, mehr über sed, gcc CFLAGS und Bootstrapping gelernt zu haben als über das OS selbst
  • Es wird ein Zitat aus dem Blog „20 Years of Gentoo“ geteilt
    Viele Leute sagen zwar: „Dann nehme ich eben LFS statt Gentoo“, aber die meisten geben unterwegs auf oder entwickeln dauerhaft eine Abneigung gegen quellbasierte Distributionen
    Slackware und LFS werden mit Haskell verglichen, mit der Aussage, dass es unproduktiv wird, wenn man zu sehr ins Extreme geht
    • Haskell ist schwierig, aber Slackware und LFS sind schlicht. Ich finde den Vergleich unpassend
      LFS ist hervorragend dokumentiert, und Slackware mag von der Zeit überholt worden sein, aber Patricks Einsatz war großartig
    • Ich habe damit auch teilweise eine kaputte Erfahrung gemacht. Der Netzwerk-Stack funktionierte je nach Programm unterschiedlich, und danach habe ich es nicht noch einmal versucht
  • Ich habe um 2006 eine gedruckte Ausgabe des LFS-Buchs gekauft
    In einem PC-Recyclinglager in Seattle habe ich 386/486-PC-Teile zusammengesucht, Rechner daraus gebaut und Linux installiert
    Mit diesen Frankenstein-Computern bin ich aufgewachsen und habe Linux gelernt
  • Aus Sicht von jemandem, der Linux seit über 25 Jahren nutzt, ist es heute Zeitverschwendung, LFS direkt selbst zu bauen
    Mit einem RPM-basierten System ist die Verwaltung viel bequemer, weil dnf dank seiner Transaktionsfunktionen Installationsverlauf und Rollbacks ermöglicht
    • LFS ist ein Trainingskurs zum Lernen. Es geht nicht darum, dass es einfach ist, sondern darum, die unterste Ebene des OS offenzulegen
    • Der Wert von LFS liegt nicht im fertigen System, sondern im Prozess des Verstehens
      Wenn man einmal anhand des Buchs ein OS gebaut hat, versteht man die Unterschiede anderer Distributionen leichter und entwickelt ein Gefühl von Eigentümerschaft für das System
    • Ähnliche Funktionen lassen sich auch ohne RPM umsetzen. Ich nutze versionierte AppDirs, und NixOS garantiert mit gehashten Verzeichnissen und nix den Zustand
    • Auf den Rat „Nimm einfach den bequemen Weg“ kommt die Reaktion, man solle den Willen, etwas Neues auszuprobieren, nicht entmutigen
  • Das in vielen Kommentaren erwähnte BLFS (Beyond Linux From Scratch) ist hier zu finden
  • 2014 wurde Cross-Linux From Scratch gebaut, um für den Raspberry Pi zu kompilieren
    Wegen des Cross-Kompilierens für ARMv6 war es sehr schwierig, aber man hat viel dabei gelernt
    Mit Jenkins wurde der Build automatisiert, und das System wurde mit Bash-Skripten und Makefiles aufgebaut
    Das finale Image war etwa 40 MB groß, und allein das machte schon stolz
  • Beim Lesen des glibc-Testkapitels
    blieb besonders der Satz „Tests niemals überspringen“ im Gedächtnis
    Da selbst glibc einige fehlgeschlagene Tests zulässt, habe ich einen ähnlichen Hinweis auch in meine eigene Software-Dokumentation aufgenommen
    Die Warnung „Wenn du diesen Schritt missachtest, kann dein System kaputtgehen“ ließ es wie eine Dark-Souls-artige Linux-Distribution wirken
    • Ja, genau so fühlt es sich wirklich an
  • LFS/BLFS ist nicht perfekt, aber ein gutes Beispiel für Linux-Wissen und -Anwendung
    Beim Neukompilieren des Kernels sind die unzähligen Optionen zwar anstrengend, aber genau dieser Lernprozess macht den Reiz von Linux aus
    Das ist eine Kultur, die man bei anderen Betriebssystemen, besonders Windows, nur selten sieht
    Es wird gefragt, ob es vielleicht auch eine BSD-Version von LFS gibt