\"/
\"/ \"/    

Má MS-DOS ještě šanci?

Miroslav Bartošek, ÚVT MU
Ročník I - číslo 3, červen 1991
Citace: M. Bartošek. Má MS-DOS ještě šanci?. Zpravodaj ÚVT MU. ISSN 1212-0901, 1991, roč. I, č. 3, s. 3-5.
Tematické zařazení: Operační systémy
 předchozí článek | následující článek 

Drtivá většina uživatelů osobních počítačů na Masarykově univerzitě používá operační systém MS-DOS firmy Microsoft resp. s ním ekvivalentní PC-DOS. Není tomu tak jen na MU, MS-DOS je v současnosti prakticky světovým standardem mezi operačními systémy na osobních počítačích třídy PC. Avšak přestože je nejrozšířenější, není zdaleka jediným používaným operačním systémem - a už vůbec ne tím nejdokonalejším.
Pokusme se v tomto článku ukázat, jaké jsou jeho hlavní nedostatky, v čem tkví zásadní problémy, které se nutně musí promítat do všech úvah o perspektivnosti či neperspektivnosti tohoto operačního systému.1

MS-DOS vznikl v roce 1981 spolu s osobním počítačem IBM PC a vycházel z jeho tehdejších možností.2 Vývoj se však nezastavil. Za uplynulých deset let se mnohé změnilo; především se podstatně změnily výchozí předpoklady, zejména:

MS-DOS se rovněž změnil; jeho počáteční verze byla a stále je průběžně modifikována a rozšiřována tak, aby umožnila používat nové typy mikroprocesorů a periferních zařízení a poskytovala vyšší uživatelský komfort (viz nejnovější verze 5.0). Problém je v tom, že všechny tyto úpravy pouze "nějak" přizpůsobují MS-DOS novým technickým prostředkům, nemohou však odstranit základní nedostatky a omezení, které jsou tomuto systému vlastní - a principiálně znemožňují úspěšně reagovat na změnu výchozích podmínek.

Omezení systému MS-DOS

Většina zásadních omezení systému MS-DOS je bezprostředním důsledkem toho, že MS-DOS byl navržen pro "dnes-již-zastaralý" mikroprocesor Intel 8088/8086 a je až příliš vázán na některé "dnes-již-omezující" vlastnosti tohoto mikroprocesoru. Překonat tuto závislost znamená vytvořit v podstatě dnes již zcela nový operační systém.

Omezení vyplývající z uvedené závislosti se promítají do všech důležitých částí operačního systému:

Procesor
  • degradace možností - MS-DOS provozuje nové typy mikroprocesorů (I 80286 v PC/AT a I 80386, I 80486 ve 32-bitových PC) jen v režimu kompatibilním s I 8088/8086. To znamená, že v podstatě degraduje počítače PC/AT a PC/386 je na velmi rychlé PC/XT; nevyužívá prakticky vůbec pokročilých možností nabízených těmito mikroprocesory v jejich "mateřských" režimech.
Operační paměť
  • omezení velikosti - mikroprocesor I 8088/8086 používá pro adresaci paměti 20 bitů, může tedy přímo adresovat pouze 1 MB operační paměti. Odečteme-li 384 kB rezervovaných pro BIOS a video-RAM, dostáváme onu magickou hranici 640 kB pro počítače PC pod MS-DOSem; pro uživatelské aplikace zbývá dokonce jen něco kolem 590 kB, neboť je nutno ještě odečíst paměť pro samotný MS-DOS (cca 50 kB pro verzi 3.3). Existují různé triky, jak využít alespoň část paměti nad uvedenou hranicí - nic to však nemění na tom, že MS-DOS neumí paměť nad 1 MB efektivně využívat. Nestačí tak uspokojovat rostoucí "paměťový apetit" stále rozsáhlejších programových systémů.
  • statická správa paměti - mikroprocesor I 8088/8086 adresuje paměť přímo (neumí dynamický překlad adres). Z toho plyne, že programy nelze v paměti posouvat a v principu nelze ani dynamicky alokovat paměť podle potřeby aplikace (například každý rezidentní program si ve vlastním zájmu obsadí ihned po svém spuštění maximální množství paměti, kterou potenciálně může potřebovat - pro dodatečnou alokaci již totiž nemusí být žádná volná paměť k dispozici). Důsledek: nejenže je paměť limitovaná, navíc je ještě i neefektivně využívaná.
  • neexistující ochrana paměti - v MS-DOSu může každý program zapisovat a číst libovolnou část paměti - může tudíž destruktivně zasahovat do jiného programu v paměti, stejně tak jako do samotného operačního systému. Sebemenší chyba v adresování může vést ke zhroucení úplně jiného programu nebo celého systému (počítač "zatuhne", takže nejenže má chyba katastrofální důsledky, systém navíc nemůže ani usnadnit její lokalizaci - nelze provést ani výpis paměti).
Periferie
  • přímý přístup k periferiím - kterýkoliv aplikační program může přímo modifikovat stav periferních zařízení - aniž by k tomu musel žádat souhlas nebo používat služeb operačního systému. Jakkoliv se programátorům může zdát tato možnost užitečná a flexibilní, skrývá v sobě velká rizika a překážky pro realizaci takových užitečných koncepcí, jako je přenositelnost programů, virtualizace zařízení za účelem jejich efektivního sdílení, anebo multiprogramové řízení (každá aplikace může zablokovat na neomezenou dobu přerušení od libovolného zařízení, takže může "bez problémů" vyřadit z činnosti například dispečer procesů, který je závislý na přerušeních od časovače).
Multitasking
Doby, kdy mono-programový MS-DOS většině uživatelů plně postačoval, jsou dávno pryč. Možnost zpracovávat na svém osobním počítači více úloh souběžně, není už žádný luxus - ale naopak stále více nepostradatelná potřeba zkušených uživatelů. Jádro systému MS-DOS však neumožňuje bezpečný a efektivní multitasking vůbec realizovat. Některé důvody byly již uvedeny:
  • neexistující ochrana paměti brání zajistit bezpečnou koexistenci programů
  • přímý přístup k periferiím znemožňuje virtualizaci zařízení a vytvoření spolehlivého dispečera procesů.
MS-DOS klade implementaci multitaskingu ještě další překážky:
  • MS-DOS není reentrantní - klíčové části MS-DOSu nejsou naprogramovány tak, aby jeden a tentýž podprogram mohl být - bez nežádoucích vedlejších efektů - vyvolán současně vícekrát (tj. nejsou reentrantní). Pokud by například proces vyvolal službu "čtení souboru" v době, kdy je tato služba již prováděna pro jiný proces, výsledek by byl zcela nepředvídatelný. Samozřejmě, že by bylo možné takovéto požadavky řadit sériově jeden za druhým - tím se ovšem ztrácí jeden z hlavních přínosů multitaskingu spočívající v časovém překrývání vstupních/výstupních operací.
  • neslučitelnost pasívních multitaskingů - některé chytřejší programy pro MS-DOS nabízí uživatelům vlastní tzv. "pasívní multitasking": jednotlivé pseudo-procesy jsou realizovány buď jako pevné součásti programu nebo jako rezidentní programy, a většinou jsou aktivovány uživatelem při stisknutí určité klávesy či kombinace kláves (procesor tedy není přidělován procesům "automaticky" podle jejich potřeb, priorit a připravenosti k běhu, nýbrž jen na přímý zásah uživatele). Nejde tudíž o skutečný multitasking, nicméně tento mechanismus umožňuje alespoň přecházet podle potřeby mezi různými činnostmi, aniž by uživatel musel opouštěnou činnost ukončit a později ji opět spustit znovu od začátku.
    I zde je však jeden zásadní problém - každý program s pasívním multitaskingem si realizuje všechny s tím spojené služby sám, bez dozoru operačního systému a s využitím neomezeného přístupu k přerušením. Vede to k tomu, že různé takovéto programy se vedle sebe obvykle "nesnáší" (spustíme-li pod systémem s pasívním multitaskingem jiný program se svým vlastním multitaskingem, nepracují obvykle tyto programy správně).
Rozšiřování systému
MS-DOS je systém velmi jednoduchý a velmi otevřený. Postupně vznikala spousta jeho rozšíření, tj. doplňkových programů, které realizují některé služby lépe než MS-DOS, případně poskytují některé služby navíc. V čem je problém?
  • ad-hoc přístup k rozšiřování - MS-DOS nevynucuje žadný jednotný a strukturovaný přístup ke svému rozšiřování - nechá každého dělat si to podle svého. Obecný postup je pak takový, že programátor přesměruje potřebná softwarová přerušení na počítači tak, aby neodkazovala na služby MS-DOSu, nýbrž na jejich náhradu v rozšiřujícím programu. Je to velmi pružné a jednoduché, má to však jedno velké ALE ! MS-DOS a jeho služby jsou standardizovány a přesně popsány, takže při práci s nimi ví každý programátor přesně, na čem je. To již ale pro rozšíření MS-DOSu neplatí. Program volající nějakou službu operačního systému na počítači s rozšířením MS-DOSu se dostává do prekérní situace - požadoval A, dostal B (nebo jindy zase něco úplně jiného). Výsledný efekt není třeba dlouze popisovat.

Cesty k nápravě

Přes všechny své nedostatky je MS-DOS velmi úspěšným systémem, s desítkami miliĎnů instalací po celém světě. Pro jeho tvůrce proto není možné (a nebylo by koneckonců ani příliš moudré) tento systém jednoduše opustit. Dále probíhá vývoj systému a jeho zdokonalování. Háček je ovšem v tom, že všechna výše uvedená omezení nejsou jen kosmetickými vadami na kráse, že jde o omezení systémová, která nelze žádným jednoduchým způsobem překonat. Proto od evoluční cesty toho nelze moc očekávat (i když nelze podceňovat její přitažlivost pro obrovské množství nenáročných uživatelů). Podobné je to s případným přechodem na jiný kompatibilní systém, který sice může MS-DOS v řadě parametrů převyšovat, avšak vychází z obdobných omezujících principů (např. DR-DOS od firmy Digital Research).

Jaké jsou tedy jiné možnosti pro ty, kterým již MS-DOS nestačí? V zásadě existují tři cesty:

Při rozhodování - kterou z cest se vydat - nerozhoduje jen směr, tj. kvalita cesty samotné, ale z praktického hlediska je neméně důležité i to, co nás na této cestě čeká, tedy kvalita dostupných operačních systémů.

Závěr - má MS-DOS šanci?

Výše uvedené důvody nás opravňují k závěru, že z dlouhodobějšího hlediska MS-DOS velkou šanci nemá, zejména ne na výkonnějších osobních počítačích. Přesto však zcela jistě hned tak nevymizí. Kromě svých nedostatků má totiž také velké přednosti - k těm hlavním patří jeho jednoduchost, nízká cena a především obrovské zázemí (jak v počtu vytvořených a široce dostupných programů, tak i v počtu aktivních uživatelů).

setting
1 V dalších číslech Zpravodaje chceme na tento článek navázat a seznamovat vás postupně s dalšími operačními systémy osobních počítačů.
... zpět do textu
2 Ani v době svého vzniku nepatřil MS-DOS zdaleka mezi špičkové produkty. Jeho návrh neodrážel momentální stav poznání v oblasti teorie operačních systémů. Dnes jeho tvůrci znovu-objevují a zkouší pracně implementovat koncepce již dlouho známé a osvědčené u velkých počítačů.
... zpět do textu
Zpět na začátek
ÚVT MU, poslední změna 14.11.2011