DOS

DOS (Disk Operating System, diskový operační systém) je rodina velmi podobných a jednoduchých operačních systémů s textovým uživatelským rozhraním. Nejrozšířenější býval MS-DOS, ale používaly se také navzájem kompatibilní systémy IBM PC DOS (1981), DR DOS (1988), PTS-DOS (1993) a FreeDOS (1998). 

DOS dominoval IBM PC kompatibilním počítačům mezi roky 1981 a 1995 (resp. zhruba do roku 2000, započítáme-li na DOSu založené verze Windows 95, Windows 98 a Windows ME), poté ho nahradil ve velké většině Microsoft Windows.

Jádro systémů DOS je 16bitové a je určeno pro procesory Intel 8088 (a kompatibilní) použité v prvním IBM PC uvedeném 12. srpna 1981. Lze ho provozovat i v současných počítačích typu PC, protože jejich procesory jsou zpětně kompatibilní a jsou schopny běhu v původním 16bitovém režimu, avšak i se všemi jeho omezeními. Systém DOS vychází z 8bitového systému CP/M a byl částečně inspirován tehdy již existujícími unixovými systémy (adresáře, shell, přesměrování vstupů a výstupů atp.).

Charakteristika 

DOS je jednouživatelský a jednoúlohový operační systém provozovaný na procesorech Intel x86 a kompatibilních. Je schopen běžet i na novějších zpětně kompatibilních procesorech (IA-32 a x86-64), avšak využívá vždy jen 16bitového reálného režimu shodného s procesory Intel 8086. Pokročilé vlastnosti modernějších procesorů využívá jen částečně (Extended memory, DPMI, DOS extendery).

Programům poskytuje systém DOS různé služby, jako například přístup k souborům na disku, zobrazování znaků na obrazovce, čtení znaků z klávesnice a podobně. Tyto vysokoúrovňové služby, které vytvářejí jednotnou abstraktní vrstvu pro programy (HAL), jsou následně předávány BIOSu, který přímo ovládá hardware.

Jádro operačního systému je velmi jednoduché a není reentrantní, takže může být spuštěn nejvýše jeden program. Výjimkou jsou TSR programy, které vytvářejí zdání, že DOS podporuje multitasking. Avšak i pro TSR programy platí, že jakmile nějaký program volá službu operačního systému, nemůže být přerušen jiným programem, který by chtěl také volat službu operačního systému (problém absence reentrantního jádra).

Nedostatky DOSu 
Jednoduchost DOSu byla jeho silnou stránkou, ale zároveň způsobila i jeho rychlý ústup po nástupu pokročilejších operačních systémů, které využívaly chráněného režimu procesorů kompatibilních s Intel 80386.

Procesor Intel 8088 může adresovat maximálně 1 MiB (220 = 1 048 576 bajtů) operační paměti, přičemž pro programy je přístupných pouze prvních 640 kiB (640 × 210 = 655 360 bajtů) tak zvané konvenční paměti. Tento limit byl obejit nejprve pomocí EMS (Expanded memory), která byla realizována speciální přídavnou paměťovou kartou. Později s pomocí procesoru Intel 80286 byl zaveden standard XMS (Extended memory), který využíval pro zpřístupnění paměti nad hranici 1 MiB speciální vlastnosti tohoto procesoru. Procesory Intel 80386 pak umožnily využít chráněný režim pro DPMI a DOS extendery, které umožnily využít větší množství paměti aplikacím přímo.

V obsluze pevných disků počítače bylo limitem použití souborového systému FAT16, protože nebylo možné vytvořit větší diskový oddíl, než 2,1 GiB. I přes to, že s Windows 95 OSR 2 byl DOS rozšířen o podporu FAT32 s maximální velikostí oddílu až 2 TiB, využívá DOS přístup k disku pomocí volání BIOSu (INT 13) s metodou Cylindr-Hlava-Sektor, která omezuje maximální velikost disku na 8 GiB. Větší disky jsou přístupné jen pomocí 32bitového přístupu (uvnitř Windows 3.x a novějších).

DOS nevyužíval pro ovládání hardware vlastní ovladače zařízení, ale služby BIOSu, které však podporovaly omezené množství zařízení a byly neefektivní. Důsledkem bylo přesouvání ovladačů tiskáren, grafických karet a dalšího moderního hardware do programů. Programy takto DOS obcházely a využívaly nejrůznější rozšíření, čímž se význam DOSu snižoval.

Historie 
Přestože je název „DOS“ běžně používán, nikdy neexistoval systém, který by se jmenoval jen „DOS“ (až na nesouvisející název operačního systému pro sálové počítače IBM letech 1960). Existuje též mnoho nesouvisejících systémů, které mají DOS v názvu, avšak pro počítače, které nejsou IBM PC kompatibilní a nejsou ani schopné spouštět DOSové programy a mají i odlišné API (např. AmigaDOS, AMSDOS, ANDOS, Apple DOS, Atari DOS, Commodore DOS, CSI-DOS, ProDOS a TRS-DOS).

První systém DOS byl vydán v roce 1979 pod názvem QDOS (později známý jako 86-DOS). Vzorem mu byl operační systém CP/M od firmy Digital Research, který dominoval 8bitovým počítačům s procesory Intel 8080 a Zilog Z-80. Od něj se odvíjely další varianty DOSu.

V roce 1980 představila IBM svůj první mikropočítač, který byl založen na procesoru Intel 8088 a potřebovala pro něj operační systém. Nejprve se pokusila najít variantu CP/M, kterou by bylo možné provozovat na procesorech 8088 a oslovila proto Billa Gatese (pravděpodobně proto, že si mysleli, že jim CP/M patří kvůli Microsoft Softcard, které umožňovalo běh CP/M na počítačích Apple II).

IBM byla odeslána do firmy Digital Research (DR), avšak zde obchodní jednání ztroskotalo na tom, že firma DR požadovala licenční program a IBM chtěla jednorázovou licenci a změnu názvu na „PC-DOS“. Zakladatel firmy DR Gary Kildall odmítl a společnost IBM se stáhla.

IBM se opět obrátila na Billa Gatese a Gates oslovil Seattle Computer Products (SCP). Zde programátor Tim Paterson vyvinul CP/M-80, který byl zamýšlen jako interní produkt pro testování nové 16bitové procesorové karty s procesorem Intel 8086 pro sběrnici S-100. Systém se původně jmenoval „QDOS“ () a posléze byl komerčně uvolněn jako 86-DOS. Microsoft zakoupil 86-DOS za 50 000 dolarů a stal se z něj MS-DOS, který byl uvolněn v roce 1981.

Microsoft prodal licence svého systému mnoha počítačovým společnostem, které dodávaly MS-DOS se svým vlastním hardware a někdy i pod svým vlastním jménem. Později Microsoft začal vyžadovat, aby se používalo výhradně jméno MS-DOS (kromě varianty od IBM). IBM pokračovala ve vývoji vlastní verze PC-DOS pro svá IBM PC, která používala procesor Intel 8088, jenž měl shodnou instrukční sadu s procesorem Intel 8086.

Firma Digital Research se dozvěděla, že IBM prodává operační systém podobný CP/M pod stejným názvem, na jakém IBM trvala při původním obchodním jednání, a hrozila právními kroky. IBM nabídla dohodu, že bude zákazníkům nabízet jak PC-DOS, tak CP/M-86 (Kildalova verze pro procesor 8086), avšak CP/M bylo o 200 dolarů dražší než PC-DOS a prodeje byly nízké. CP/M ztratilo trh ve prospěch systémů MS-DOS a PC-DOS, které se staly standardem pro IBM PC kompatibilní počítače.

Digital Research se pokusilo získat trh zpět pomocí DR DOSu, který byl schopen provozovat programy pro MS-DOS i CP/M-86. Digital Research později koupila firma Novell, DR DOS byl přejmenován na Novell DOS 7 a později se stal součástí firmy Caldera (jako OpenDOS a DR DOS 7), Lineo a DeviceLogics.

Firmy Microsoft a IBM spolu měly několik neshod kvůli dvěma následníkům DOSu: Microsoft Windows a OS/2 od IBM. Důsledkem bylo oddělení vývoje obou systémů DOS. MS-DOS byl pak částečně transformován do Windows a poslední verze PC-DOSu (PC-DOS 2000) byla vydána v roce 1998.

Volně šiřitelné varianty 
Projekt FreeDOS byl založen 26. června 1994, když Microsoft oznámil, že nebude dále prodávat a podporovat MS-DOS. Bylo vydáno několik předverzí, které obsahovaly volně dostupný kód. Verze 1.0 byla vydána 3. září 2006. FreeDOS nevyžaduje žádnou licenci ani licenční poplatky. Někteří výrobci (včetně firem Dell, Hewlett-Packard) prodávají počítače se systémem FreeDOS.

NX-DOS je distribuován pod GPL licencí a je v současné době ve vývoji. Jeho počátek byl v roce 1992 jako osobní projekt, pod GPL licencí byl vydán v roce 2005.

Aktivně je v současné době distribuován pouze Enhanced DR-DOS, ruský PTS-DOS a ROM-DOS pro embedded systémy. Jediná komerčně dostupná verze je DR DOS.

Vlastnosti

Start systému 
Postup při startu počítače je u IBM PC kompatibilních počítačů jednotný. Po zapnutí počítače a inicializaci všech komponent pomocí signálu Reset je aktivován BIOS, který do paměti zavede na operačním systému nezávislý Master boot record (MBR) a spustí ho. MBR zavede do paměti Boot sektor, také ho spustí. Boot sektor je závislý na operačním systému a je zodpovědný za jeho zavedení do paměti a následné spuštění.

V DOSu boot sektor zavádí do paměti nejprve IO.SYS (resp. IBMBIO.COM), který obsahuje rutiny pro obsluhu hardware. Následně je zavedeno do paměti jádro systému DOS, které je uloženo v souboru MSDOS.SYS (resp. IBMDOS.COM). V tuto chvíli je k dispozici přístup k souborům a je přečten textový konfigurační soubor CONFIG.SYS, ve kterém se nachází příkazy pro nastavení jádra systému, odkazy na další ovladače a definice interpretu příkazového řádku, kterým je obvykle COMMAND.COM. Interpret je spuštěn a jako první vykoná textový dávkový soubor AUTOEXEC.BAT, ve kterém jsou spouštěny další příkazy a programy, které je nutné při startu automaticky vykonat. Nakonec interpret COMMAND.COM vytvoří příkazový řádek a čeká na zadání dalších příkazů uživatelem.

Jednotlivé kroky jsou mírně odlišné v jednotlivých variantách DOSu. Ke změnám došlo i při nástupu Windows 95. Podrobnosti najdete v příslušných článcích: MS-DOS, DR DOS, FreeDOS, atd.

Rozhraní systému 
DOS standardně poskytuje jen textový terminál a v něm příkazový řádek, pomocí kterého může uživatel zápisem příkazů počítač ovládat.

Protože je příkazový řádek poměrně nepohodlný, byly velmi často využívány specializované programy, které usnadňovaly správu souborů (kopírování, mazání, vytváření adresářů, …) a vytvářely charakteristické textové uživatelské rozhraní. Nejpoužívanější byl Norton Commander, který se stal vzorem pro mnoho klonů, jako například Volkov Commander, Manažer M602 a další (v současnosti se Midnight Commander stále používá v unixových operačních systémech včetně Linuxu).

DOS neposkytuje žádné API pro práci v grafickém režimu, takže nelze přímo na DOSem vystavět grafické uživatelské rozhraní ani jeho služby využít pro počítačové hry. Programátoři grafických aplikací proto využívali vlastní knihovny a rozšíření, která však musela být schopna přímo ovládat nejrůznější grafické karty. De facto standardem byla v prvních počítačích IBM PC kompatibilních černobílá grafická karta Hercules, jejíž grafický režim umělo ovládat mnoho programů. Velmi citelnou nevýhodou bylo, že každý program musel sám řešit ovládání hardware grafických karet, což snižovalo možnosti jeho přenositelnosti, avšak výrobci na to reagovali zpětnou kompatibilitou svých zařízení. Například textový editor T602 umožňoval běh s většinou tehdejších grafických karet, což však znamenalo enormní úsilí programátorů, které ale nešlo využít v jiných programech.

Grafické uživatelské rozhraní bylo v DOSu vytvářeno pomocí nadstavbových programů, které přinášely vlastní API. Nejúspěšnějším byly 16bitové Microsoft Windows, jejichž verze Windows 1.0 byla vydána v roce 1985 a neumožňovala překrývání oken.

Existovaly i jiné pokusy o grafické rozhraní DOSu, avšak postupně zanikly. Samotné 16bitové Microsoft Windows byly později nahrazeny 32bitovými Windows NT, které však již DOS pro svůj běh nevyužívaly.

DOS v jiných systémech 
Starší aplikace pro DOS mohou být provozovány za pomoci jiných operačních systémů.

DOS a Microsoft Windows 

Původní verze Microsoft Windows byly aplikace, které běžely ve zvlášť zakupovaném systému DOS. Ve Windows 3.x byla role DOSu omezena na zavaděč jádra Windows a eventuální nouzový přístup k zařízením DOSovými ovladači (tzv. 16bitový přístup v reálném režimu). Windows 95, Windows 98 a Windows ME obsahovaly DOS, který už nebyl prodáván zvlášť. Kromě verze Windows ME bylo u těchto systémů stále možné při startu spustit pouze samostatný DOS.

Řada Windows NT, která obsahuje 32bitové jádro, pracuje nezávisle na DOSu. Většina verzí řady Windows NT obsahuje DOSový subsystém (Virtual DOS Machine (NTVDM), v němž se používá modifikovaná verze MS-DOS 5.0 ve virtuálním stroji, který umožňuje běh DOSových aplikací, avšak není se systémem MS-DOS 100% kompatibilní.

DOSBox 
DOSBox je nejběžnější emulátor operačního systému MS-DOS, který je dostupný pro Microsoft Windows, BeOS, Linux, Mac OS X a další.

DOSEMU 
DOSEMU umožňuje běh klonů DOSu v Linuxu.

Reference

Externí odkazy 
 
 FreeDOS
 PC-DOS

 
Operační systémy
Zkratky