Operační systém je natolik složitý software, že jeho principům rozumí jen jeho tvůrci, tedy programátoři a pár vyvolených, kteří se nebojí s ním experimentovat. I přesto jeho zapeklitý a běžnému člověku málo přístupný mechanismus nedá mnohým z nás spát. Zejména hojně rozšířené a uživatelsky přívětivé Windows jsou středem nejednoho tweakování. Pojďme se dnes společně podívat na to, jak "okna" nabíhají.
Celý zaváděcí proces se dá rozkouskovat do pěti základních bodů. V každém z nich jde o složité natahování důležitých komponent, bez kterých se subsystém prostě neobejde. Jestliže selže jakákoliv z částí, na systém můžete klidně zapomenout. Postupné bootování si popíšeme na operačním systému Windows XP.
Pět kroků pro zavádění Win XP:
Následující soubory jsou použity pro první dva kroky. Především na jejich bedrech spočívá to, jak rychle systém zvládne naběhnout. Soubory jsou standardně uloženy v kořenovém adresáři C: pevného disku. Abyste je na vašem HDD našli, je zapotřebí zobrazit skryté a systémové soubory.
Boot.ini - jde o skrytý systémový soubor. V něm je uloženo nastavení výběru jednotlivých systémů a cesta, na kterém z disků (popřípadě partition) se nacházejí. Jeho podobu můžete snadno měnit například v notepadu, stačí na něj dvakrát poklepat myší.
Vlastníte-li jeden OS, pak boot.ini bude vypadat takto:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
Nachází-li se na discích další systém, do boot.ini přibudou i další řádky:
[Boot Loader]
timeout=30
default=C:\
[Operating Systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
C:\="Microsoft Windows 98"
Editování a úprava boot.ini
Položka timeout slouží k nastavení, jak dlouho má počítač čekat na výběr systému. Nedojde-li k manuálnímu výběru, automaticky se spustí výchozí systém (položka default), v našem případě Win 98. Pokud by měl být výchozí systémem Win XP, druhý řádek by vypadal následovně: <i>default= multi(0)disk(0)rdisk(0)partition(2)\WINDOWS.</i> Jde o složitý zápis, na jakém disku, v jakém oddíle, a v jaké složce se nachází operační systém. Další řádky v souboru slouží k popsání cesty ke všem existujícím OS. Opět je uvedena cesta k zavaděči, poté je v závorce název, jenž se objevuje při startu PC, a za ním jsou parametry. Defaultní parametr fastdetect znamená, že systém nemá prohledávat sériové a paralelní porty (ty si později OS nastaví sám). Můžete zkusit i jiné parametry. Mezi nejpoužívanější patří - /basevideo, /noguiboot, /sos a /bootlog. První jmenovaný zakáže používat ovladače grafické karty, druhý parametr se postará o odstranění loga systému při startu (o 1-2 vteřiny rychlejší boot). Parametrem /sos docílíte vypisování informací o tom, co právě systém dělá. A konečně poslední parametr slouží k výpisu událostí do souboru ntbtlog.txt (C:\Windows).
Pozor: Dojde-li k nesprávné úpravě souboru boot.ini, může se stát, že systém nenajde zavaděč a počítač se vůbec nepodaří spustit.
Následující soubory jsou použity při třetím kroku zavádění systému a nacházejí se v adresářích Windows\System32\
Další soubory jsou potřebné pro čtvrtý krok inicializace jádra. Standardně je najdete ve Windows\System32\Config, respektive Drivers.
Sled kroků bootování operačního systému
1. Před-bootovací sekvence
Obsahuje další čtyři kroky. Po zapnutí počítače projede Power-On-Self-Test (POST), ten zkontroluje fyzickou paměť a všechny hardwarové součásti systému. Pak dojde k natáhnutí Master Boot Record (MBR) do paměti, který vyhledá aktivní bootovací oblast. Ntldr je inicializovaný z boot sektoru pevného disku.
2. Bootovací sekvence
Druhá část bootovacího procesu začíná po natažení Ntldr do paměti a sbíráním informací o hardware a potřebných ovladačích pro Windows XP. Během tohoto kroku jsou použity tyto soubory: Ntoskrnl.exe, Bootsect.dos, Ntldr, Boot.ini, a Ntdetect.com. Ntldr si následně zjistí souborový systém disku (FAT32 nebo NTFS), pak přečte boot.ini soubor, tedy pokud existuje (na obrazovce se zobrazí výběr systému). Je-li zvolen starší systém, např. Win 98, je natažen soubor bootsect.dos, obsahující informace o zaváděcím sektoru. Ntldr načte Ntdetect.com, který vyhledá použitý hardware a informace posílá zpět Ntldr, který je použije do registru -HKEY_LOCAL_MACHINE\HARDWARE. Nyní dojde ke startu Ntoskrnl.exe.
3. Natáhnutí kernelu (jádro systému)
Ntoskrnl.exe společně se souborem Hal.dll zapíší informace o konfiguraci do registru s tímto klíčem - HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder.
4. Spouštěcí sekvence kernelu
Zmodrání obrazovky neznamená pád systému, ale posun do spouštěcí sekvence kernelu. Všechny ovladače pro hardware, jenž zjistil Ntdetect.com, jsou následně inicializovány a uloženy do CurrentControlSet klíče. Na závěr Session Manager (Smss.exe) nastartuje subsystém a služby Win XP. Mezi ně patří: BootExecute, Správa paměti, DOS Devices, a klíče subsystému.
5. Přihlašovací sekvence
Natáhne se přihlašovací obrazovka pro zadání loginu a hesla. Jsou-li obě informace správné, Win 32 subsystem odstartuje Winlogon.exe. Pak již dojde k načtení LastKnownGood a start Windows je dokončen.
Závěr
Jak vidíte proces bootování systému není na první pohled tak jednoduchou záležitostí, jak by se mohlo zdát. Selže-li jedna z částí, počítač zkolabuje a systém se zasekne. Z uživatelského pohledu lze proces bootování ovlivňovat především editací souboru boot.ini. Jeho správným nastavením můžete docílit až o několik vteřin rychlejšího naběhnutí systému. Někdy příště se podíváme na to, jak se dá start systému zrychlit (až o několik sekund), aniž byste k tomu potřebovali přesně vědět, jak dochází k natahování samotného systému či manuálně editovat konfigurační soubory.