Má MS-DOS ještě šanci?
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:
- hardware osobního počítače (nové mikroprocesory s novými
instrukcemi a nabízenými službami, zdokonalená architektura,
nové periferie)
- role osobního počítače (posun od jednoduchého lokálního
počítače pro dílčí aplikace k výkonné pracovní stanici
s komplexními
službami v oblastech zpracování textu, databází, podpory
rozhodování a kalkulačních systémů, komunikací - to vše v rámci
jednotného integrovaného prostředí)
- požadavky a potřeby uživatelů (grafické systémy obsluhy,
možnost zpracování více úloh souběžně - multitasking, potřeba
virtualizace obrazovky pro komunikaci se souběžně zpracovávanými
úlohami - windows aj.)
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:
- radikální - opustit zcela MS-DOS a přejít na principiálně jiný
perspektivní operační systém založený na "zdravějších" základech -
např. UNIX. Hlavní nevýhodou (?) je ztráta kompatibility
- klasická - přejít na nový kompatibilní systém, který je
od začátku koncipován tak, aby se vyhnul všem uvedeným omezením a
umožňoval další bezpečný vývoj, přitom však zachovával
úplnou kompatibilitu s MS-DOSem - příkladem je OS/2
- konzervativně-pokroková - skloubit (poněkud překvapivě) evoluční
cestu s radikálním přístupem. Příkladem je populární systém
WINDOWS, který je v zásadě sice "jen" aplikačním programem
(rozšířením) MS-DOSu, avšak programem natolik chytrým, že
přebírá všechny systémové služby MS-DOSu a provádí je po svém
- bez omezení vyplývajících pro MS-DOS z vazby
na architekturu I 8088/8086. Jde v podstatě o nový
operační systém spouštěný z původního systému.
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ů).
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 |
ÚVT MU, poslední změna 14.11.2011