Když software zabíjí dobrý hardware aneb problémy s ovladači
Seznam kapitol
Ovladače patří mezi nejdůležitější části softwaru vůbec. Slouží k tomu, aby se váš hardware sbratřil s operačním systémem a všechno to fungovalo dohromady rychle a jednolitě. Kvůli vysokým privilegiím, rychlému vývoji ovladačů a snaze výrobců držet si technologie pod pokličkou je to ale také software asi nejproblémovější.
Před mnoha lety, v dobách, kdy byly Windows 98 poměrně nové, Microsoft prováděl rozsáhlou studii o tom, proč Windows padají. Výzkumníci se dopracovali k překvapivému závěru, že když vynechají pády aplikací jako takové a také jejich systémové důsledky (například kompletní vyžrání dostupné paměti či dalších sdílených zdrojů), ukazuje se, že daleko větší problém než OS samotný jsou právě drivery.
Drivery z povahy věcí sahají na železo a musí se porvat jak s běžnými situacemi, tak i s výjimkami, jakože zařízení začne zlobit. Každá generace Windows zaváděla pro drivery přísnější pravidla, protože zatímco pád aplikace lze ošetřit relativně snadno, pád driveru má systémové důsledky. Dobře napsaný driver nejenže neobsahuje vlastní chyby, ale funguje efektivně, umí spolupracovat se zbytkem systému a snaží se i výjimečné situace řešit korektně. Je přece jen velký rozdíl mezi driverem, který v případě selhání zařízení oznámí, že zařízení selhalo, odpojí ho a nechá zbytek systému jet – a driverem, který v případě selhání zařízení shodí Windows do bluescreenu a skončí v katastrofické nekonečné bootovací smyčce.
Chyby způsobené selháním zařízení bývají nezřídka opravdu nechutné. Pokud nepoužíváte ECC paměti, můžete se setkat s bizarními chybami, které způsobují vadné paměťové moduly. Windows někdy fungují, jindy ne – a teprve specializované testy, jako je Memtest často odhalí, že za bizarní pády systému může paměťový modul, který se upekl.
Řada zařízení z bezpečnostních důvodů maximálně izoluje vnitřní řídící kontrolér od okolního prostředí, protože se přece jenom ukazuje, že zlí lidé mívají tendence i k takovým nechutnostem, jako je přeprogramování mikrokontroléru, což dovoluje malware obcházet kontroly na vyšší úrovni. Pak může nastat situace, kdy zařízení už fakticky nefunguje, ale protože ovládací rozhraní nepodporuje detailní self-test, stále se systému hlásí jako plně použitelné.