Bootování
Bootování (booting) je v informatice proces zavedení jádra operačního systému při zapnutí nebo restartování počítače. Na platformě počítačů IBM PC kompatibilních je postup standardizován. Jiné platformy (např. mobilní telefony) pevně daný postup nemají, takže postup je dán výrobcem konkrétního hardware.
V angličtině se používá také slovní spojení Initial program load, nebo jako zkratka IPL. [1]
Etymologie
Výraz bootování, resp. bootovat pochází z angl. slangového výrazu pro zaváděcí program (tzv. zavaděč) - bootstrap, který původně označoval kousek kůže našitý na vrchu holínky (angl. boot) a umožňoval snazší obutí. Někdy se pro zavaděč používá i výraz bootloader, zejména pokud se operační systém zavádí ze vzdáleného počítače (paměťového média, nadřazeného systému) prostřednictvím komunikační linky nebo počítačové sítě.
Samotný výraz zavádění operačního systému popisuje proces, kdy se z datového nosiče zkopíruje operační systém nebo jeho část do operační paměti počítače, a následně se v ní spustí.
Bootování složitějších počítačů (jakým je např. PC) je obvykle vícestupňový, poměrně složitý proces kvůli možnosti použití různých datových nosičů obsahujících samotný operační systém resp. jeho složky, případně kvůli možnosti vybrat při zapnutí počítače z několika dostupných operačních systémů, nebo jejich různých konfigurací.
Popis zavádění systému na platformě x86
Jakmile proběhne úspěšný test zavádění systému, POST, najde a zavede (vygeneruje se přerušení 19h) se tzv. bootovací sektor (boot sektor) – tomuto procesu se říká bootování. Bootovací sektor je v tomto případě oblast 512 bajtů na záznamovém médiu, které je jako první nastavené v paměti BIOSu – ESCD (lze změnit v Setupu). Výrobce standardně nastavoval u starších PC jako první bootování z diskety, poté z pevného disku a nakonec z CD mechaniky. U novějších jsou tyto možnosti nastavitelné. Dnes je možné bootovat i pomocí sítě. Bootsektor se nachází na prvním sektoru záznamového média (v případě pevných disků je to válec 0 hlava 0 stopa 0 sektor 1) nastaveného pomocí jumperů na HDD nebo v Setupu jako primární. Pakliže BIOS hledá a nenajde, zastaví se a vypíše patřičné chybové hlášení.
BIOS se snaží najít na tomto sektoru Master Boot Record (MBR) – hlavní spouštěcí záznam. Ten nahraje do paměti na adresu 0000:7C00 a v případě úspěchu mu předá řízení. Správnost MBR BIOS zjišťuje pomocí kontrolní hodnoty umístěné na posledních dvou bajtech sektoru - AA55h (zápis je uložen ve formátu little endian). V případě chybného MBR se bootovací proces přeruší pomocí softwarového přerušení 18h, které vygeneruje chybové hlášení, jež může vypadat v případě starých AMI BIOSů takto:
NO ROM BASIC – SYSTEM HALTED
Nebo u novějších známější:
Non-System Disk or Disk Error
MBR se skládá ze dvou částí – Partition Loaderu a Partition tabulky. MBR uchovává záznamy o rozdělení disku (oddílech) a určuje, ze kterého z nich se má bootovat. Je-li MBR v pořádku, řízení se předá Partition Loaderu. Ten v Partition tabulce vyhledá oddíl, který je označen jako aktivní a přejde na první sektor tohoto oddílu. MBR sám sebe překopíruje na jiné místo v paměti a na své původní místo zkopíruje tento první sektor a předá mu řízení (instalace více operačních systémů na jedno PC obyčejně zahrnuje i nahrazení originálního loaderu bootovacím loaderem programu, který uživateli umožňuje vybrat konkrétní disk pro další kroky procesu).
Tento boot sektor obsahuje Volume Boot Record (zkráceně VBR). Obsahuje v sobě kromě krátkého programu také tabulku rozdělení svého oddílu, kde jsou uloženy tzv. rozšířené oddíly, které navíc mohou obsahovat další oddíly označované jako logické jednotky. Kromě toho obsahuje další dodatečné údaje o daném oddílu (počet bajtů na sektor, počet sektorů na cluster atp.). Úloha VBR je závislá na konkrétním operačním systému, v drtivé většině případů však nejdříve kontroluje sám sebe (stejný mechanismus jako u MBR) a poté vyhledá sektor, na kterém se nachází první ze souborů operačního systému (obyčejně se mu říká zavaděč, například v MS-DOSu je to soubor IO.SYS, ve Windows soubor NTLDR). Ten nahraje do paměti a tím tak zavolá zaváděcí program. Další procesy jsou specifické pro daný operační systém.
Diskety a jednotky flash neobsahují MBR, ale VBR.
Boot manager
Někdy je MBR nahrazen zavaděčem, který zavede složitější program, nazývaný boot manager. Obvykle se používají tehdy, pokud je v počítači nainstalováno více operačních systémů (na více fyzických nebo logických discích). Po výběru OS uživatelem nebo po uplynutí přednastavené doby automatickým výběrem, se spustí normální bootovací postup stejně jako z MBR.
Některé známé boot managery (pocházející zejména z komunity okolo Linuxu) jsou:
Konfigurační utility
Základní bootloader obvykle obsahuje také konfigurační utilitu, která se spustí obvykle při stisku určité klávesy (typicky Del, u některých počítačů F1) během procesu bootování.
Přeprogramovatelnost bootloaderu
Některé bootloadery, které jsou umístěny v paměti FLASH, mají zabudovanou podporu přeprogramování (upgrade) z některého připojeného paměťového média (např. diskety). Někdy je takové přeprogramování zajištěno tak, že i při selhání přeprogramování např. v důsledku výpadku napájení, je vždy uchována alespoň základní část bootovacího programu, který zajistí nouzové přeprogramování. Někteří výrobci FLASH pamětí proto přeprogramování části paměti (nazývané obvykle výrazem obsahujícím slovo boot, protože se v ní uchovává takový nouzový bootloader) podmiňují zvláštní, složitější procedurou, např. připojením vyššího než obvyklého napětí na některý z vývodů.