Diit.cz - Novinky a informace o hardware, software a internetu

Rychlé bootování Windows 8 pod drobnohledem

Emily Wilson startuje notebook s Windows 8
Jednou z vlastností, kterými se Microsoft snaží obdařit každý nový systém, je jeho rychlejší start. Ne vždy se to povede, nicméně ve Windows 8 to vypadá skutečně jako úspěch. Co za tím stojí, to už asi víte, nicméně neuškodí, když se na to podíváme znovu očima vývojářů tohoto systému…

Kapitoly článků

1.  Hybridní spouštění ve Windows 8 vs. Windows 7

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

    Vypnutí systému

  • 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() nebo InitiateShutdown()
  • 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č.
    Spouštění systému

  • 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 BOOT_TIME nahrazuje načtením stavu systému z disku. Ve Windows 8 je navíc proces urychlen tím, že se hibernuje až od stavu, kdy se má ukončit „session 0“, navíc s využitím dostupných jader/procesorů pro paralelizaci této operace, neboť ještě dochází ke kompresi obsahu paměti, aby hibernační soubor zabíral na disku co nejméně místa (při klasické hibernaci se ukládá velká část paměti a s tím, jak má dnes paměť už běžně 4 GiB, dochází k vytváření velkých souborů, což zdržuje jak proces hibernace, tak probouzení). Výchozí velikost souboru hiberfil.sys pro standardní hibernaci je 75 % velikosti RAM, pro hybridní vypínání/spouštění se používá kolem 10 až 15 %, v závislosti na množství používaných ovladačů a dalších věcí.

Relativní čas fází spouštění systému Windows
Kapitoly článků
1.  Hybridní spouštění ve Windows 8 vs. Windows 7

WIFT "WIFT"

Bývalý dlouholetý redaktor internetového magazínu CDR-Server / Deep in IT, který se věnoval psaní článků o IT a souvisejících věcech téměř od založení CD-R serveru. Od roku 2014 už psaní článků fakticky pověsil na hřebík.

více článků, blogů a informací o autorovi

Diskuse ke článku Rychlé bootování Windows 8 pod drobnohledem

Středa, 14 Září 2011 - 22:21 | kubik | UEFI specifikace nerika nic o inicializaci...
Středa, 14 Září 2011 - 08:51 | khale | Presne tak, divim se, ze to nekdo nenapsal uz...
Úterý, 13 Září 2011 - 19:55 | vindicator5 | Celý princip UEFI je zvrácený. Dělá totiž přesně...
Úterý, 13 Září 2011 - 19:01 | kubik | Je par duvodu, proc se mi bezny UEFI implementace...
Úterý, 13 Září 2011 - 18:26 | vindicator5 | Rozhodně to není nic nemožného: 1) AMD ohlásilo...
Úterý, 13 Září 2011 - 17:26 | HKMaly | Samozrejme ze kexec vyzaduje ukonceni vsech...
Úterý, 13 Září 2011 - 16:08 | makso | minimalne openSUSE kexec vyuziva uz v zaklade a...
Úterý, 13 Září 2011 - 11:05 | WIFT | Tak nám to pane Keršláger vysvětli. Machrovat...
Úterý, 13 Září 2011 - 11:03 | WIFT | Mno, takhle naivní není ani zákazník České pošty...
Úterý, 13 Září 2011 - 11:01 | WIFT | Proto existuje ve Win7 hybridní uspání, které...

Zobrazit diskusi