Aby stworzyć kompletny system operacyjny wykorzystujący jądro Linuksa potrzeba skompletować od autorów (*upstream*) kody źródłowe wielu programów, dostosować je (*patch*) oraz skompilować i skonfigurować kompletną przestrzeń użytkownika. W ten sposób powstają tzw. *dystrybucje* Linuksa. Aby korzystać z Linuksa, zwykle instalujemy jedną z takich dystrybucji, dzięki temu jesteśmy zwolnieni z konieczności kompilowania i konfigurowania systemu, a nawet nie musimy sobie zdawać sprawy z jego zawartości.
Świetnym sposobem na poznanie architektury systemu linuksowego jest własnoręczne zbudowanie go krok po kroku *od zera*. Pomaga w tym projekt Gerarda Beekmansa „Linux from scratch” rozpoczęty w 1999 i nadal aktywnie rozwijany (obecna wersja: 11.1). Jest to podręcznik wzbogacony sporą liczbą pomocniczych materiałów (skrypty, *patche* itp.). Wykonanie kompletnego projektu LFS, poza głębokim poznaniem wewnętrznej struktury systemu linuksowego, pozawala na zdobycie umiejętności niezbędnych do samodzielnego budowania specjalnych wersji takich systemów przeznaczonych do specjalnych zastosowań.
Każdy z uczestników zajęć otrzyma do opracowania fragment systemu LFS, który powinien dobrze zrozumieć i przygotować w domu, a następnie przedstawić wszystkim uczestnikom zajęć podczas dwugodzinnej prezentacji tak, by mogli oni odtworzyć omówiony fragment we własnych instalacjach. Na koniec zajęć wszyscy uczestnicy powinni mieć gotowe, działające instalacje.
Po zrealizowaniu podstawowego systemu LFS będzie można przejść do rozszerzeń (Beyond LFS) lub wariantów (skrośna kompilacja systemu na inną architekturę, np. ARM lub RISC-V itp.)
Zajęcia są przeznaczone dla osób posiadających dostatecznie dobrą znajomość Linuksa.
Literatura
----------
1. *Linux From Scratch*, created by Gerard Beekmans,
managing editor: Bruce Dubbs, editors: Douglas R. Reno, DJ Lucas.
2. Frank Vasquez, Chris Simmonds, *Mastering Embedded Linux Programming*, 3ed., Pact Publishing 2021.