Rychlé bootování Windows 8 pod drobnohledem
Kapitoly článků
Vy už možná víte, že pro Windows 8 přichystal Microsoft „hybridní spouštění“. Ono by se to klidně dalo nazvat i „hybridní vypínání“, ale protože samotný proces vypnutí to spíše zdrží (na úkor spuštění), je lepší hovořit o „spouštění“ (co si budeme povídat – když se počítač vypíná, je to uživateli celkem jedno, až se vypne, tak se vypne, naopak když uživatel počítač potřebuje používat, je potřeba, aby byl čas spouštění co nejkratší).
„Hybridní spouštění“ je o tom, že systém se při pokynu „Vypnout“ ve skutečnosti uspí a ještě před tím odhlásí uživatele. Jediný rozdíl oproti hibernaci spočívá právě v tom odhlášení uživatele, další optimalizace rychlosti jsou spojeny s přechodem na UEFI. Pokud se totiž počítač spouští, nebo dochází k jeho probuzení „z disku“, stará se o tento proces určitá část systému, která ještě nepracuje s diskovými ovladači, vlastně se o načítání dat z velké části stará BIOS. Pokud má počítač UEFI a systém je nainstalován přes UEFI, pak se o obnovení chodu či start systému stará patřičná UEFI aplikace, která je rychlejší, protože pracuje s UEFI, které již ví, jak se má k disku chovat (a rozhodně se k němu nechová „zastaralým BIOS-like“ způsobem).
Co se vlastně děje při klasickém vypnutí a spuštění Windows 7? Zjednodušeně řečeno
-
Uživatel zahájí vypnutí systému, ať už příkazem „Vypnout“, nebo stisknutím tlačítka, případně spuštění zahájí nějaká aplikace voláním API
ExitWindowsEx() neboInitiateShutdown() - Windows vyšle zprávu všem spuštěným aplikacím o tom, že se bude vypínat, aby měly možnost uložit svá data a korektně se ukončit. Aplikace si mohou vyžádat delší čas (děje se typicky v případě, že se aplikace po obdržení takové zprávy dotáže uživatele na uložení rozdělané práce a uživatel v tu chvíli hraje roli nerozhodného mistra pevného pohledu Outloně Váhavého).
- V další fázi systém Windows odhlásí všechny přihlášené uživatele.
- Pak systém vyšle zprávu o vypínání službám a následně je také vypne. Ukončování služeb má svá pravidla, protože některé služby jsou závislé na jiných, takže se musí ukončovat ve správném pořadí. Pokud služba, která má být ukončena, nereaguje, je po čase ukončena natvrdo.
- Windows vyšle patřičný příkaz zařízením, aby se vypnula.
- Windows uzavře systémovou session (tzv. „session 0“).
- Windows vyšle do ACPI rozhraní patřičný signál, kterým fyzicky vypne počítač.
- Po stisknutí tlačítka napájení se spouští BIOS (obecně firmware počítače) a probíhá tzv. POST (Power-On Self Test). Načítá se nastavení, spouští se další ROM BIOSy různých řadičů a karet, nakonec se z příslušného disku zahájí proces spouštění operačního systému.
-
BIOS počítače načte z disku MBR (Master Boot Record), kde zjistí tabulku rozdělení disku a z aktivního oddílu načte boot sektor, který v případě Windows 7 spouští
Bootmgr.exe . Ten najde a spustí zavaděč Windows (Winload.exe ). -
Následně jsou zaváděny nezbytné ovladače pro spuštění jádra Windows, poté se spouští jádro Windows, které zavede do paměti registry a podle údajů v nich spouští další ovladače s označením
BOOT_START . -
Jádro systému předá řízení správci session (
Smss.exe ), který spustí systémovou session a další ovladače. -
Spouští se
Winlogon.exe , objevuje se obrazovka pro přihlášení uživatele, mezitím správce služeb spouští služby a případně skripty skupinových politik. Po přihlášení uživatele systém vytvoří patřičnou uživatelskou session. -
Pak už se spouští
explorer.exe (což není jen průzkumník, ale v podstatě jakési „jádro“ uživatelského rozhraní zahrnující ikony na ploše, ovládání plochy, panel úloh, nabídku start a další věci). Spouští se Desktop Window Manager (DWM), který se stará o plochu. Systém je spuštěn a v podstatě připraven (spouští se programy, které se mají spouštět při přihlášení uživatele, atd…).
A jak to bude ve Windows 8 při „hybridním vypnutí/spuštění“? Dojde k odhlášení uživatele, ale jádro systému se neukončuje, místo toho se hibernuje (uspává na disk). Při startu systému se tak všechno od zahájení bootování z disku až do spouštění ovladačů neoznačených jako