Jak startují Windows?

  • 55
Chcete nahlédnout pod pokličku zavádění operačního systému Windows na PC? Zajímá vás, co se děje od stisku tlačítka POWER, až do chvíle, kdy se před vámi objeví známé prostředí operačního systému? Věděli jste o tom, že startovací sekvenci lze upravit tak, aby vyhovovala vašim požadavkům?

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:

  • před-bootovací sekvence
  • bootovací sekvence
  • natáhnutí kernelu (jádro systému)
  • spouštěcí sekvence kernelu
  • přihlašovací sekvence

    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).

    Soubor boot.ini

    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.

  • Ntdetect.com - skrytý spustitelný soubor, shromažďuje informace o použitém hardware a vytváří jeho detailní seznam. Ten je následně předán souboru Ntldr, který ho pak přidá do registrů.

  • Ntdlr - skrytý systémový soubor, jenž načítá OS.

  • Bootsect.dos - skrytý soubor, jenž je vyžadován souborem Ntdlr. Je použit tehdy, pokud je vybrán jiný operační systém než Windows XP. Obsahuje informace o zaváděcím sektoru na pevném HDD před instalací Windows NT a vyšší.

  • Ntbootdd.sys - skrytý nepřepisovatelný soubor, který je potřeba pro zavádění systému z pevného disku SCSI .

    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\

  • Hal.dll - Hardware Abstraction Layer (HAL). Soubor, obsahující detailní informace o hardware a jeho přerušení.

  • Ntoskrnl.exe - hlavní a jediný soubor s jádrem systému.

    Další soubory jsou potřebné pro čtvrtý krok inicializace jádra. Standardně je najdete ve Windows\System32\Config, respektive Drivers.

  • System - systémový soubor konfiguračního nastavení na tomto počítači. Řídí sled natahování jednotlivých ovladačů a služeb.

  • SYS soubory - složka, ve které se nacházejí soubory s ovladači jednotlivých zařízení.

    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.


  • Témata: software