Linux From Scratch is een combinatie van een software project en een boek. Afgelopen weekend is versie 8.0 uitgekomen en het leert je een volledig Linux systeem van de grond af op te bouwen. Het is een waardevol en onthullend project, al zal het je niet het nieuwste van het nieuwste in de Linux-wereld leren.

Je eigen Linux bouwen

De meeste Linux tutorials focussen op het werken met bestaande Linux distributies als Red Hat/Fecora/CentOS, Ubuntu, Suse enzovoort. LFS neemt aan dat de gebruiker niet simpelweg wilt weten hoe dingen aan de buitenkant werken, maar wilt begrijpen hoe het interne ontwerp van Linux in elkaar steekt.

Het core LFS project begint met een bestaande Linux distributie als een ontwikkelomgeving. De gebruiker maakt een dedicated partitie waar de nieuwe Linux tot leven moet komen, benodigde packages komen te staan en de toolchain in elkaar zet om het geheel op te bouwen. Alles in de nieuwe distributie (van de kernel tot de userland packages) wordt gebouwd vanaf de source. Het boek legt je precies uit hoe en wat je moet doen.

Andere LFS projecten borduren voort op het originele concept. Beyond Linux From Scratch gaat over het toevoegen van softwarepakketten voor algemene zagen als GUI's display managers, servers, multimedia, netwerktools enzovoort. Automated Linux From Scratch behandelt tools voor het automatiseren van het LFS build proces, Cross Linux From Scratch, kijk naar cross-compilatie (een LFS systeem bouwen voor ARM processoren op x86) en Hardened Linux From Scratch legt uit hoe je een LFS-systeem in elkaar zet met verbeterde beveiliging.

De recentste versie van Linux From Scratch wijkt niet veel af van deze formule, in de release notes staat sat de grootste verandering van versie acht "het verwijderen van de symbolische link van /lib naar /lib64 en de volledige verwijdering van /usr/lib64." Is. Voor de rest zijn algemene pakketten bijgewerkt. De standaard GNU C library glibc en de gcc C compiler zijn bijvoorbeeld bijgewerkt.

Sommige ingredi├źnten zijn optioneel

LFS behandelt verder een recente verandering aan Linux die voor een grote splitsing op het internet heeft gezorgd: het systemd initialisatie systeem. Er zijn twee grote versies van LFS, eentje met systemd en eentje zonder. De meeste grote Linux distributies hebben systemd inmiddels omarmd, maar voor educatieve doeleinden worden beide versies nog aangeboden, al is het alleen maar om de discussie levend te houden en beide systemen te vergelijken.

De LFS-aanpak gebruikt alleen de onderdelen die echt nodig zijn, deze systemen zijn dus behoorlijk compact. Dat is vooral handig als je embedded distributies bouwt, zeker als je die combineert met de technieken die worden gevonden in de Hardened Linux From Scratch. De unikernel-aanpak kan het makkelijker maken een enkele applicatie te embedden. De applicatie kan samen met de benodigde libraries in een custom Linux kernel gebouwd worden.

LFS behandelt overigens niet alle aspecten van moderne Linux distributies. Package management is bijvoorbeeld geen standaard onderdeel van een LFS-distributie. Er worden in het boek wel verschillende package management-aanpakken besproken, maar er wordt geen specifieke versie aangeraden of integratie-instructies gegeven. Daarnaast worden Docker en andere containers niet behandeld in het boek aangezien zij geen onderdeel zijn van de standaard LFS toolchain. Dat hoeft je trouwens niet tegen te houden alsnog zelf handmatig Docker toe te voegen, dat is de kracht van het bouwen van je eigen Linux Distributie.