Hlavní navigace

Linux - pohled do nitra

Michal Krause 16. 6. 1999

Možná, že některé z vás Root přesvědčil, že Linux stojí za vyzkoušení. Možná, že jste dokonce již k instalaci přikročili a jste spokojenými uživateli tohoto operačního systému. Pak je ale možná ten správný čas mrknout se, jak se říká, pod kapotu. Dnes se zaměříme na to, co se děje od spuštění počítače až po dotaz na uživatelské jméno pro přihlášení do systému.

Co se děje vzápětí po zapnutí počítače pro nás není až tak podstatné, ale ve zkratce a zjednodušeně: rozjede se vše důležité pro zobrazování na monitoru, poté BIOS provede inicializaci všeho možného podle uložené konfigurace. To, co nás zajímá, začíná až teprve když dojde na vlastní bootování. Pokud se bude systém zavádět z pevného disku, provede se následující: přečte se první sektor celého disku, takzvaný Master Boot Record (MBR). Ten obsahuje zavaděč, který zpravidla načte bootsector. Bootování z diskety je podobné, až na to, že disketa nedisponuje žádným MBR a je tedy přímo zaváděn bootsector.
V tomto okamžiku je čas pro lilo. Lilo, neboli LInux LOader, sestává ze dvou částí. První je linuxový program, který upravuje bootsectory, případně i MBR tak, aby se mohl nabootovat Linux (a konec konců klidně i další OS). Jeho druhá část je spustitelný kód, který se uloží do bootsectoru a je při startu vykonán. A to je právě ta část bootování, kdy se na obrazovce objeví nápis LILO: a vy můžete zvolit, který operační systém nebo které jádro se zavede (pakliže jich máte více), případně můžete jádru předat parametry a podobně.

Zde bych trochu odběhl od bootování a vysvětlil, co vlastně lilo-zavaděč dělá a jak to souvisí s lilem-programem. Lilo totiž musí v tuto chvíli zavést do paměti jádro. Ale jak na to, když ještě pochopitelně nejsou k dispozici ovladače pro přístup na ext2 filesystém? Kód zavaděče musí být poměrně malý a není možné, aby v něm byly rutiny pro přístup na filesystém implementovány. Lilo si musí vystačit s tím, co dokáží služby BIOSu, tedy se čtením na úrovni sektorů. A právě proto je zde lilo-program, které samozřejmě přístup k souborům má. Při spuštění pak vytvoří mapu toho, na kterých sektorech se soubor s jádrem nachází a uloží ji spolu se zavaděčem do bootsectoru. Tím je zajištěno, že lilo-zavaděč může jádro přečíst a nahrát do paměti.
Toto řešení má však jednu nevýhodu. Služby BIOSu bohužel mají určitá omezení, přičemž jedním z nich je, že dokáží pracovat pouze s prvními 1024 cylindry disku. Pokud se soubor s jádrem ocitne za touto hranicí, lilo jej nebude moci načíst a tedy ani nabootovat. Pokud tedy plánujete použití velkých diskových oddílů (u nových řadičů jde přibližně o 8 a více gigabajtů), doporučuji ponechat na začátku disku jeden malý oddíl pro jádro a mountovat ho jako /boot.

Tak, jádro je tedy v paměti. A co se děje dále? Nejdříve se jádro seznámí s počítačem, například si osahá BIOS, zjistí velikost paměti apod. Pak již dochází k zavádění jednotlivých ovladačů. V okamžiku, kdy jsou k dispozici ovladače diskového řadiče, se jádro pokusí přimountovat kořenový filesystém, který je zadán v jádře (více viz man rdev). Pokud se mu toto nepovede (kdysi jsem například z přílišné horlivosti zkompiloval jádro bez IDE ovladačů :), máte docela problém, který lze často napravit pouze s pomocí bootovací diskety.
Pokud se povede přimountovat root filesystém, spustí jádro první proces, init. To už je obyčejný program, který se postará o spoustu důležitých věcí. To, co má dělat se dozví ze souboru /etc/inittab (poznámka: nedoporučuji přílišné experimentování s tímto souborem, pokud nevíte, co děláte – může to mít nepříjemné důsledky, které se většinou řeší opět pomocí bootovacích disket). Nejdříve si z něj přečte tzv. runlevel, do kterého se má systém přepnout. Obvykle se používá šest runlevelů, které znamenají:

0 – halt
1 – jednouživatelský režim
2 – multiuživatelský režim bez NFS
3 – plný multiuživatelský režim
5 – X11
6 – reboot

Číslování runlevelů je do jisté míry jenom formální, chování v rámci jednotlivých úrovní je určené nastavením v souboru /etc/inittab. Nicméně je vhodné dodržet výše uvedené číslování, není důvod jej měnit.
Pak init provede všechny definované akce – některé z nich jsou nezávislé na úrovni a provedou se vždy. Důležité je, že init spustí startovací skripty a také vytvoří virtuální konzole. A tím už se blížíme k závěru dnešní části. Init totiž spustí pro každou konzoli program mingetty (případně mgetty, agetty nebo jiný getty program), který se zeptá na vaše uživatelské jméno a následně pak evokuje proces login pro přihlášení do systému.

Tjádydádydá a to je vše přátelé, jak říká jedno známé prase :)

Někdy příště se podíváme blíže na soubor /etc/inittab a také na strukturu startovacích skriptů.

Doporučená četba: dokumentace k lilu, man init, man inittab, Internet a samozřejmě zdrojáky jádra :)))))

Našli jste v článku chybu?

15. 7. 1999 0:07

Michal Krause (neregistrovaný)

Jde vlastně o jakési větvení konfigurace. Runlevely jsou
určeny pro různé účely a s tím samozřejmě souvisí to, že
konfigurace musí být odlišná. Například v single user režimu
se samozřejmě vůbec nestartuje síť atd.




17. 6. 1999 19:46

jirka (neregistrovaný)

Pekny clanek. Jen jsem nepochopil system tech Runlevelu. O co jde? Co to je?

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Vitalia.cz: Jste stále nemocní? Chybí vám zinek

Jste stále nemocní? Chybí vám zinek

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Vitalia.cz: Manželka je bio, ale na sex moc není

Manželka je bio, ale na sex moc není

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte