Kapitola 4: Projekt Linux from Scratch


Prečo vybrať LFS?

Linux From Scratch (ďalej len LFS) je špeciálna distribúcia linuxu ktorá nefunguje podobne ako hocijaká iná distribúcia. Táto distribúcia sa nedá stiahnuť normálnym spôsobom, dá sa iba vytvoriť.
Linux from Scratch je projekt, ktorý vytvoril inštrukcie na tvorbu vlastného Linuxu. Na stránke projektu sa nachádza kniha, ktorá opisuje krok po kroku stavbu linuxového systému. Tento spôsob tvorby Linuxu a linuxového jadra ale nie je jednoduchý, a väčšinou to robia iba skúsení používatelia.

Výhody LFS

Keďže ho stavá používatel, môže sa rozhodnúť čo potrebuje a čo nie. Môže sa napríklad rozhodnúť že nechce grafické rozhranie, a chce pripojenie na sieť, a použiť systém ako server. Iný používaťel ho bude chcieť použiť ako osobný systém, tak si k nemu pridá grafické rozhranie, pripojenie na sieť, podporu zvuku a zariadení ako napríklad tlačiarne a skenery. Ďalšia výhoda je relatívne malá veľkosť systému oproti štandardným distribúciam, lebo používatel si vie vybrať čo potrebuje, tak vie znížiť veľkosť systému. Taktiež sa dá systém nastaviť aby vedel fungovať z prenosného disku (USB, CD/DVD) Niektorí používatelia si stvoria systém len zo zábavy, takže im stačia iba základné súčasti systému.

Nevýhody LFS

Prvá, a jasná nevýhoda je stavba systému. Keďže na stavbu LFS treba použiť existujúci systém, nie je praktické ho tvoriť ako prvý systém/jediný systém na počítači. Taktiež sa stavia relatívne dlho, ale opakovanou stavbou sa tento problém dá zmenšiť. Taktiež je systém relatívne nepoužitelný v základnom stave, iba obsahuje jadro a programy na inštaláciu iných programov. Tento problém rieši druhá kniha na stránke LFS, BLFS (Beyond Linux From Scratch), ktorá opisuje ako pridávať programy a systémy (napr.: bezpečnosť, podpora zvuku, grafické rozhranie) Asi najväčší problém je problém bezpečnosti. Ak nie je systém napojený na internet, o toto sa používatel nemusí báť. Ale keďže systém je postavený len v základnom stave, používatel musí sám zabezpečiť bezpečnosť systému. A keďže je systém stavaný používatelom, nie všetky programy môžu fungovať, a systém nemá žiadne aktualizácie, čo by mohol byť problém v prípade novonájdenej chybe v LFS.

Tabuľka rozdelenia disku

Rozdelenie disku na oddiely je spôsob ako rozdeliť fyzický harddisk počítača na samostané dátové oddelenia. Väčšinou sa používa na oddelenie systémovej sekcie disku od úložiska súborov používatela. Toto má veľa výhod. Keďže operačný systém potrebuje miesto na ukladanie dvôležitých súborov, ak by nemal dosť miesta, tak by nefungoval. Ak by disk nebol prozdelený na systémovú a dátovú časť, všetko by fungovalo normálne (až na chaos v umiestnenia systémových súborov), dokým by sa disk nenaplnil. Potom by systém prestal fungovať, a musel by (s veľkou pravdepodobnosťou) byť disk vyprázdnený, systém by sa musel reinštalovať a používatel by stratil všetky súbory na disku. Ďalšie použitia particíi sú napríklad opravné/diagnostické partície, ktoré ukladajú dáta potrebné na diagnostikovanie a prípadnú opravu systému (kritické systémové súbory). Taktiež sa dá použiť pri firemných serveroch, na oddelené uloženie dát pracovníkov a oddelení. Ďalší spôsob použitia partícíi je takzvaný “multi-boot”. Multi-boot dovoluje používaťelovi spustiť rôzne operačné systémy pri štarte počítača (ale nie dva naraz). Toto sa odlišuje od virtualizácie tým, že spustený systém nebeží ako program nad originálnym systémom (napr. Linuxová virtualizácia v Windowsovom systéme). Ale ak niesú partície dobre urobené, tak jedna môže byť moc malá, a jedna moc veľká. Riešenie na tento problém je preformátovať disk, ale keďže sú na disku súbory, tak sa kvôli zmene veľkosti partície môžu poškodiť. Kvôli tomu sa partície väčšinou tvoria len pri inštalácií systému na čistý disk. Nato aby sa partície tvorili ľahšie, tak sa používajú programy na formátovanie diskov ako napríklad GParted. Pre LFS systém je partíciovanie disku veľmi dvôležité, nato aby správne fungoval. Taktiež partície musia byť špecíalne pripravené podľa veľkosti systému a jeho použitia.

Ako postaviť Linux From Scratch

Keďže Linux From Scratch treba stavať manuálne, treba na ňho veľa prípravy. Linux From Scratch je navrhnutý tak, aby sa mohol stavať pomocou linuxového systému. Dobrý spôsob ako toto dosiahnuť je virtualizácia, ktorou vieme aj virtualizovať vytvorený LFS systém, a uložiť rôzne verzie bez obavy že jedna chyba zmaže dva týždne práce na LFS. Okrem toho nieje proces komplikovaný. Ale toto neznamená že nieje ťažký a netrvá dlho času. Podľa sily hardvéru počítača môžu niektoré inštalácie trvať od pár minút do niekoľko hodín alebo dní, počas ktorých musí počítač zostať neustále zapnutý a funkčný. Proces začína virtualizáciou linxového systému, a nastavenie virtuálneho disku pre LFS (alebo použiť fyzický disk). Pred začatím stavby treba nainštalovať všetky potrebné programy a ich potrebné súbory, pripraviť si diskové partície na LFS disku a používatelov pre disk LFS. Ďalšia fáza tvorby LFS systému je kompilovanie potrebných nástrojov na tvorbu základného systému LFS, a inštalovanie užitočných programov ako napríklad “man” (manuály pre príkazy v terminále, dodatočne opísané v podkapitole 1.3: Terminál (Základy)) a potrebných progremov ako “bison” a “GCC”. Po úspešnej tvorbe základného systému sa odstránia nepotrebné súbory a pridá sa Boot Process (Dovolí spustiť systém bez potreby iného linuxového systému). Potom je systém hotový. Pomocou druhej knihy na LFS stránke - BLFS (Beyond Linux From Scratch) sa dajú k systému pridať menej dvôležité funckie ako Prístup na sieť, bezpečnosť a Grafické rozhranie. Mne išiel LFS relatívne dobre. Od knihy som sa oddelil dosť, hlavne tým že kniha je navrhnutá pre natívny (nie virtualizovaný, “pevný” systém ktorý beží priamo na počítači), a ja som kvôli praktickosti virtualizácie rozhodol virtualizovať LFS. Na stavanie LFS som používal distribúciu Ubuntu. Ale narazil som na problém. Pri sťahovaní programov, čo som robil asi tak mesiac pred stavbou systému, som zabudol aplikovať patche (Malý kus kódu ktorý opraví chybu v programe, ktorá by ináč urobila program nepoužitelný na špecifický účel). Tento problém sa ukázal však až uprostred stavby systému, keď som mal inštalovať špecifický program. Kvôli iným menej dvôležitým chybám som nemal inú možnosť ako začať od znova, čo by som nestihol, lebo som sa prvé mesiace (november – január) učil základy Linuxu, keďže pred písaním práce som o Linuxe nič nevedel. Predsa len sa to ani skúseným používatelom linuxu nepodarí na prvý a niekedy ani druhý krát.