Instalace Windows 95 byla tak složitá, že Microsoft musel použít tři různá rozhraní najednou. Ale jinak to nešlo
Jeden instalátor, tři operační systémy pod kapotou. Inženýři Microsoftu v roce 1995 zvolili řešení, které vypadalo šíleně, ale každá alternativa byla horší.
Obsah článku
Když 24. srpna 1995 Bill Gates představil Windows 95, svět viděl revoluční systém s nabídkou Start a panelem úloh. Co svět neviděl, byl instalační proces, který musel projít třemi zcela odlišnými prostředími, než se systém rozběhl. Konkrétně: nejprve textový program v MS-DOSu, pak 16bitové grafické rozhraní postavené na Windows 3.1 a nakonec 32bitová část běžící už v čerstvě nainstalovaných Windows 95. Tři různá prostředí najednou, ne proto, že by Microsoft neuměl napsat jeden čistý instalátor, ale proto, že žádná jiná cesta nedávala v podmínkách roku 1995 smysl. Každá alternativa znamenala buď horší uživatelský zážitek, víc disket, víc restartů, nebo trojnásobek práce pro vývojáře.
Proč tři fáze, a ne jedna
Celý problém vycházel z jednoho faktu: Windows 95 se musely nainstalovat z několika různých výchozích stavů. Uživatel mohl startovat z čistého MS-DOSu, z běžících Windows 3.1, nebo dokonce z už nainstalovaných Windows 95, pokud potřeboval opravnou reinstalaci. Každý z těchto scénářů nabízel jiné technické zázemí.
Setup proto fungoval jako řetěz. Z DOSu nejprve nastartoval textový program, který ověřil základní podmínky: dostatek místa na disku, správnou verzi DOSu a minimální hardware. Pak nakopíroval do dočasného adresáře Wininst0.400 okleštěnou verzi Windows 3.1, jen tolik, aby se dalo spustit grafické prostředí. V něm proběhla hlavní část instalace: dotazy na uživatele, detekce hardwaru a kopírování souborů. Po restartu převzala řízení třetí fáze, už 32bitová, uvnitř nových Windows 95, a dokončila konfiguraci tiskáren, sítě a převod starých programových skupin.
Pokud uživatel startoval z Windows 3.1, první textová fáze odpadla. Setup rovnou využil běžící systém jako hostitelské prostředí pro grafickou část. Elegantní zkratka, která ušetřila čas i diskety.
Proč Microsoft nezvolil jednodušší cestu
Raymond Chen, dlouholetý inženýr Microsoftu, celý mechanismus podrobně vysvětlil na blogu The Old New Thing v reakci na dotaz uživatele na síti X. Popsal čtyři alternativy, které tým zvažoval, a u každé ukázal, proč byla horší.
- Čistě DOSový instalátor by fungoval všude, ale byl by textový. Microsoft by si musel sám napsat grafické rozhraní nad DOSem, vlastní správu paměti, ovladače myši a klávesnice. Proč psát polovinu operačního systému jen pro setup, když existující Windows 3.1 tohle všechno umí?
- Tři zcela oddělené setupy (jeden pro DOS, jeden pro Windows 3.1, jeden pro Windows 95) by znamenaly trojí kódování, trojí testování a trojí ladění. Noční můra údržby.
- Mini-Windows 95 jako základ instalátoru znělo lákavě, ale Chen spočítal konkrétní cenu: ořezaný systém by zabral víc disket, přidal další restart navíc a zhoršil možnost vrátit počítač do původního stavu, kdyby instalace selhala uprostřed.
- 32bitový setup od začátku narážel na klasický catch-22. Ke spuštění 32bitového programu potřebujete 32bitové prostředí. Ale to teprve instalujete.
Zbyla tedy hybridní cesta. Těžiště práce leželo v jedné sdílené 16bitové grafické části, kterou šlo spustit jak z mini-Windows 3.1, tak z reálných Windows 3.1, tak z Windows 95. Dokonce i drobné vizuální rozdíly mezi prostředími řešil instalátor chytře: přepínal mezi systémovou knihovnou commctrl.dll a speciální kommctrl.dll, aby v každém prostředí vypadal co nejlépe.
Co se změnilo za 30 let
Vícefázová instalace nezmizela přes noc. Windows 98 stále řešily start z DOSu, Windows 3.1 i Windows 95 a setup měl několik kroků s restarty. Windows XP přinesly textovou a grafickou fázi. Teprve moderní Windows staví na Windows PE, předinstalačním prostředí, které odstranilo závislost na starých 16bitových systémech.
Dnešní instalace Windows 11 pracuje s obrazem systému, po restartu přejde do online konfigurace a OOBE. Odpadly diskety, mini-Windows 3.1, přepínání mezi 16bitovým a 32bitovým kódem i nutnost obsluhovat tři generace operačních systémů jedním instalátorem. Zjednodušení ale nepřišlo díky lepším programátorům, přišlo díky tomu, že zmizely staré startovní body.
Jak si to vyzkoušet dnes
Kdo chce třífázový setup zažít na vlastní kůži, může. PCjs nabízí běžící Windows 95 přímo v prohlížeči. VirtualBox uvádí Windows 95 mezi podporovanými staršími systémy, byť bez Guest Additions a s omezeným komfortem. Čekejte dobové limity: pomalé kopírování, pixelované dialogy a detekci hardwaru, která trvá déle než dnešní celá instalace.
Složitě to vypadalo navenek. Uvnitř to byla snaha udělat co nejméně zbytečné práce a co nejméně zbytečně trápit uživatele. V roce 1995 byl tenhle hybrid tím nejpragmatičtějším, co šlo postavit.