Boot neboli booting, česky zavedení, zavlečení či natažení operačního systému je relativně složitý proces. Slovo původně vzniklo zkráceninou slova bootstrap, což znamená cosi jako navlečení tkaničky u boty.

Úvod editovat

Dnes si už nedovedem představit počítač bez nějakého operačního systému (OS). Aby mohl operační systém začít fungovat, je nejprve nutné natáhnout do operační paměti počítače jeho jádro z místa, kde je uloženo.

Jednodušší či mobilní systémy mohou mít celý operační systém uložený v trvalé paměti; počítače mívají v trvalé paměti uložen zpravidla jen základní firmware, který umožní jádro OS zavléci. To se děje zpravidla ve vícero krocích a celý proces zavádění jádra může být relativně složitý.

V dřívějších dobách byl způsob zavádění OS na různých systémech různý. V posledních desetiletích došlo k postupnému sblížení způsobů zavádění OS, takže i výkonné počítače, reprezentované v minulosti mainframy, používají v dnešní době způsobů zavádění OS, který se vyvinul z osobních počítačů.

BIOS editovat

Začátkem 70-tých let 20.stol. představila firma IBM osobní počítače PC, které používaly diskový operační systém PC-DOS. Ten ale nepřistupoval k hardware počítače přímo, ale prostřednictvím vrstvy BIOS (Basic Input/Output System). I když je tento způsob přístupu k hardware již přežitkem, nazývá se základní firmware počítače ze setrvačnosti dál BIOS. Jeho úkolem je po "chladném" startu počítače provést základní testy hardware, zjistit rozsah dostupné paměti a datová úložiště, která jsou k disposici; z vhodného úložiště potom vybrat vhodný zaváděcí program a předat mu řízení, aby zabezpečil natažení jádra operačního systému.

pevný disk editovat

Nejčastějším místem pro uložení jádra operačního systému bývá pevný disk. Ten může obsahovat buď jeden souborový systém, anebo více souborových systémů.

Na začátku souborového sytému bývá tzv. boot sector, který obsahuje krátký program, tzv. zavaděč (loader), který má alespoň minimální "povědomí" o následujícím souborovém systému, že "ví" či "dokáže zjistit", kde je na disku uloženo jádro operačního systému, které dokáže přečíst, uložit do paměti a předat mu řízení.

V případě, že disk obsahuje více primárních (či rozšířených) diskových oddílů, může (samozřejmě, že nemusí) mít každý z takových oddílů na začátku svůj boot sektor s vlastním zaváděčem. V prvním sektoru celého disku je pak umístěn tzv. Master boot record (MBR), který obsahuje jednak tabulku rozdělení celého disku na oddíly (partition table), a jednak krátký program, jenž rozhodne, kterému z těchto loaderů předá řízení. Podle čeho rozhodne? V tradičním paradigmatu byl právě jeden z diskových oddílů označen tzv. bootovacím příznakem (boot flag), takže první sektor oddílu bude načten do paměti a tam bude předáno řízení.

Ať tak či tak, úlohou BIOSu je: Najít správné médium pro bootování a je-li tímto mediem disk, pak načíst do operační paměti jeho první sektor a předat mu řízení. Je-li tímto prvním sektorem přímo boot sektor, obsahující zavaděč, obstará natažení systému on. Je-li (což bývá pravidlem) tímto prvním sektorem MBR, pak tvoří jakýsi mezičlánek v bootovacím procesu, který umožní vybrat jednu z více možností dalšího bootování.

různé operační systémy editovat

Různé operační systémy mohou používát různé souborové systémy a i různé filosofie bootování. Je zde úzká vazba mezi konkrétním OS, použitém FS (Filesystem = systém souborů) a použitým zavaděčem.

Společné je to, že zavaděč se musí (z historických důvodů) u PC-kompatibilních disků vejít do jednoho diskového sektoru o velikosti 512 bytes, což není mnoho; takto dlouhý zavaděč nemůže disponovat plnohodnotným přístup k celému souborovému systému, aby dokázal sám vyhledat a zavést jádro či ještě další základní systémové soubory. Možná řešení jsou prakticky tři:

  1. Jádro (a případné další základní systémové soubory) jsou umístěny (alokovány) na pevně daném místě (zpravidla na samém počátku) souborového systému, zpravidla v jedné posloupnosti a bez fragmentace. Takto bylo původně řešeno zavádění PC-DOS a po něm stejným způsobem MS-DOS.
    • Výhody: Jednoduché řešení, samotný loader může být jednochuchý a není zapotřebí jej měnit.
    • Nevýhody: Systémové soubory je zapotřebí instalovat do prázdného souborového systému, zpravidla po jeho vytvoření (naformátování) a jejich allokaci pak nejde jednoduše změnit. Nelze je tudíž instalovat prostým kopírováním.
  2. Jádro a základní soubory pro bootování (např. initrd) jsou na disku allokovány běžným způsobem (tj. v podstatě náhodně, dle pravidel použitého FS). Po umístění jádra je pak ale zapotřebí do oblasti boot sektoru nahrát informaci o této allokaci, jinak loader jádro není schopen najít. Takový přistup použil např. LiLo (Linux Loader) (?) a myslím, že jej používají i např. Win XP (postup převzatý od Windows NT)
    • Výhody: Jádro je možné instalovat běžným kopírováním
    • Nevýhody: Po instalaci jádra je nutné zapsat příslušné informace do bootsektoru.
  3. Vícestupňové řešení: Jádro i ostatní soubory jsou nainstalovány běžným kopírováním kamkoli do FS. Bootsektor ale neobsahuje zavaděč systému, ale zavaděč další části loaderu, což může dále pokračovat. Takovýto zavaděč pak může pojmout poměrně vysokou "inteligenci" i pro řešení komplikovanějších úloh bootování (například program, co dělat po neúspěšném pokusu o zavlečení jádra). (např. GRUB)
    • Výhody: vysoce sofistikovaný zavaděč, umožňuje zavádět různé OS
    • Nevýhody: komplikovanost, příp. delší doba bootování

DOS editovat

Windows XP editovat

Proces bootování XP, převzatý z Win NT:

  1. kód v boot sektoru natáhne NTLDR
  2. NTLDR = NT Loader:
    1. potřebuje NTBOOTDD.SYS – pro podporu SCSI
    2. zavolá NTDETECT.COM – základní kontola HW (CPU, BIOS)
    3. přečte BOOT.INI aby zjistil, kde jsou umístěny soubory
    4. BOOTSECT.DOS – výběr pro bootování více OS
    5. na základě výsledku NTDETECT.COM je natažen:
    6. HAL.DLL = HAL(Hardware Abstraction Layer), což připraví XP jádro.
    7. NTOSKRNL.EXE = jádro XP
    8. čte registry, zvolí HW profil a autorizuje ovladače
    9. předá řízení NTOSKRNL.EXE
  3. NTOSKRNL.EXE
    1. natahuje si a komunikuje s moduly ovladačů
    2. spouští služby
    3. startuje WINLOGON.EXE, který spustí:
    4. LSASS.EXE, který otevře Logon screen – obrazovku pro přihlašování uživatelů

Odkazy editovat

Linux editovat