Vyšlo v týdeníku Computerworld č. 26/94, 1994
Vytištěno z adresy: http://www.earchiv.cz/a94/a426c300.php3

Víceuživatelský DOS: popření přívlastkem, nebo nová kvalita?


Tento článek je prvním ze série recenzních článků o operačním systému DR Multiuser DOS. Druhý článek popisuje využití víceuživatelského DOSu v praxi, a třetí je věnován možnostem praktického využití DR Multiuser DOSu. Součástí je i vložený box, popisující prvopočátky MS DOS-u.
Operační systém MS DOS firmy Microsoft se prosadil jako jednoduchý operační systém pro jediného uživatele. Stejně tak je důsledně jednouživatelský i jeho velmi blízký příbuzný - DR DOS, vyvinutý firmou Digital Research. Stejná firma (nyní ve vlastnictví firmy Novell) však nabízí také víceuživatelskou verzi tohoto operačního systému, a to pod názvem DR Multiuser DOS. Jak si ale správně vysvětlovat přívlastek "víceuživatelský" u takového operačního systému, jakým je notoricky jednouživatelský a jednoúlohový DOS? Je tímto přívlastkem popřena samotná podstata DOSu, nebo jde o zcela novou kvalitu?

Abychom správně pochopili, čím je a kam patří víceuživatelský DOS, je vhodné se nejprve trochu vrátit do historie - do doby, kdy světu vládly velké střediskové počítače, případně o něco menší minipočítače, soustředěné do nejrůznějších výpočetních středisek. Byla to doba, kdy výpočetní technika byla ještě natolik drahá, že naprosto nepřipadalo v úvahu, aby byl celý počítač vyhrazen pouze jedinému uživateli. Právě naopak, tehdejší počítače musely být provozovány takovým způsobem, aby dokázaly sloužit potřebám více uživatelů. K tomu ovšem bylo zapotřebí vyvinout také vhodné postupy a techniky - tou nejjednodušší a historicky nejstarší technikou bylo dávkové zpracování (batch processing), které ovšem zcela postrádalo možnost přímé interakce uživatele s jeho úlohou. Dokonalejší a pro uživatele mnohem přitažlivější technikou se pak stalo až tzv. sdílení času (time sharing), které již umožňovalo současnou práci více uživatelů v interaktivním režimu.

Možnost současné práce více uživatelů si ovšem vynutila mnohé změny v hardwaru i softwaru tehdejších počítačů. Jestliže pro dávkové zpracování stačilo vybavit počítač v principu jen jedním vstupním zařízením (typicky snímačem děrné pásky či štítků) a jedním zařízením výstupním (děrovačem, tiskárnou apod.), nyní již bylo nutné poskytnout každému ze současně pracujících uživatelů vhodné pracoviště se samostatným vstupním i výstupním zařízením - tedy přidělit mu vlastní terminál. Tomu se ovšem musely přizpůsobit i veškeré programy, od operačního systému až po nejrůznější aplikace - všechny musely počítat s tím, že uživatel se s nimi bude "bavit" prostřednictvím některého z dostupných terminálů, aniž by bylo předem pevně stanoveno, který to bude.

Situace se ovšem značně zkomplikovala také tím, že jednotliví uživatelé mohli mezi sebou soutěžit o různé systémové zdroje (jako například tiskárny, soubory apod.), a bylo tudíž třeba vymyslet a implementovat takové techniky, které dokáží zajistit korektní a bezkonflitní přístup uživatelů k těmto zdrojům. Navíc bylo třeba počítat i s tím, že i samotní uživatelé mohou vytvářet nové systémové zdroje (zejména nejrůznější soubory), a požadovat jejich ochranu - například to, aby tyto soubory nebyly pro ostatní uživatele vůbec přístupné, nebo jen pro některé, aby byly přístupné jen pro čtení apod. V důsledku toho pak bylo nutné zavést celou řadu "organizačních" opatření: mj. rozlišovat jednotlivé uživatele (přidělovat jim uživatelská jména, pod kterými se přihlašují do systému), tak aby jim mohla být přidělována různá oprávnění, aby bylo možné kontrolovat jejich činnost, posuzovat oprávněnost jejich konkrétních požadavků apod.

MS DOS ovládl svět

S postupem času se ovšem zdokonalovaly nejrůznější výrobní technologie, a vyráběné počítače se postupně stávaly menšími, výkonnějšími a lacinějšími. Požadavek na jejich sdílení více uživateli tak postupně ztrácel na své imperativnosti, až se v určitý moment stalo ekonomicky i jinak únosným přidělit každému jednotlivému uživateli samostatný počítač k jeho výhradnímu využití - tedy tak, aby jej měl zcela pro sebe a nemusel se o něj s nikým dělit. S nástupem těchto vpravdě osobních počítačů se ovšem celá řada věcí výrazně zjednodušila: operační systémy osobních počítačů již nemusely počítat s existencí více uživatelů, a vzhledem k tomu pak nemusely ani implementovat žádné ochranné a koordinační mechanismy související s víceuživatelským provozem. Proč také, když naprosto všechno patřilo jedinému uživateli, a ten přeci nebude soutěžit sám se sebou, nebude si sám sobě něco zakazovat apod.

Světlo světa tak mohly spatřit poměrně jednoduché jednouživatelské operační systémy. Tím, který právě v oblasti osobních počítačů standardu IBM PC zvítězil na plné čáře, je dodnes dobře známý MS DOS firmy Microsoft (viz. vložený článek Začátek byl "Quick & Dirty"). Ten si ještě navíc zjednodušil práci tím, že uživateli povolil v každém okamžiku jen jedinou úlohu - je tedy nejen jednouživatelským, ale současně i jednoúlohovým operačním systémem. Díky tomu pak také mohl vystačit s představou jedné jediné (a tudíž pevně dané) klávesnice a jediného displeje - nepotřeboval tedy uvažovat o existenci více terminálů, ani znát pojem terminálové relace. Vzhledem ke svému jednouživatelskému charakteru se dokonce obešel i bez znalosti pojmu "uživatel" - když všechno patří vždy jen jedinému uživateli, pak jej MS DOS vlastně nemusí ani uvažovat.

Žádný extrém není ideální

Příchod osobních počítačů pomohl vyřešit mnohá bolavá místa ve vztahu člověka k výpočetní technice - zejména odstranit veškerá omezení vyplývající z nutnosti sdílení jednoho počítače více uživateli.

Současně s tím ale osobní počítače vytvořily nová, dosud netušená bolavá místa: dostal-li každý uživatel přidělen samostatný počítač, obvykle to také znamenalo, že se o něj musel i sám a v plném rozsahu starat, například sám si instalovat nové programy, sám odstraňovat případné chyby a provádět veškerou "systémovou údržbu", sám si zálohovat důležitá data apod. A na to nebyla většina uživatelů připravena - dosud byli zvyklí na podporu odborníků soustředěných kolem jediného centrálního počítače, kteří jim poskytovali potřebný servis.

Dalším problémem se ukázala i samotná decentralizace nejrůznějších systémových zdrojů, především softwarové povahy - zejména pak datových souborů, se kterými potřebuje pracovat více uživatelů (například s pracovními soubory nejrůznějších agend, se společně připravovanými dokumenty, plány apod.). Dokud byly takovéto soubory uchovávány a zpracovávány na jediném centrálním místě, nebylo příliš těžké zajistit korektní přístup jednotlivých uživatelů ke sdíleným datům. Jakmile se ale uživatelé přestěhovali ke svým osobním počítačům, začaly vznikat vážné problémy - jestliže například někdo potřeboval určitý soubor, mohl si jej na disketě přenést na svůj počítač, zde jej modifikovat a poté zase na disketě přenést zpět. Pokud stejně postupovali i další uživatelé, mohly vedle sebe vznikat vzájemně nekonzistentní exempláře jednoho a téhož souboru, které pak bylo opravdu velkým problémem uvést zpět do vzájemného souladu.

Kromě toho se ukázalo, že ani při stále klesající ceně hardwaru nebude ještě dlouhou dobu možné přidělit každému uživateli k výhradnímu využití takové vybavení, o jaké by mohl mít zájem - dostatečně velký pevný disk, kvalitní laserovou tiskárnu, různé speciální periferie apod.

Lidé zkrátka zjistili, že žádný extrém není ideální - že i v době osobních počítačů je velmi žádoucí některé věci sdílet. Tedy mít je jen v jednom, centrálně umístěném exempláři a umožnit jejich sdílení více uživateli. Neznamenalo to ovšem návrat k již zavrženým střediskovým počítačům, ale naopak velkou motivaci pro budování lokálních počítačových sítí.

Vývoj výpočetního modelu

Samostatné počítače vybavené terminály a provozované ve víceuživatelském režimu vychází nejčastěji z výpočetního modelu označovaného jako host/terminál (viz obrázek 1). Jeho podstata spočívá v tom, že veškeré aplikace jsou provozovány na daném počítači, který je v jistém smyslu jejich hostitelem (anglicky host, odsud: hostitelský počítač), zatímco uživatelé "sedí" u jednotlivých terminálů a jejich aplikace jim veškeré své výstupy posílají na displej příslušného terminálu (a své vstupy naopak očekávají z klávesnice téhož terminálu).

Příkladem operačního systému, který filozoficky vychází právě z modelu host/terminál, je operační systém Unix - nezapomínejme, že vznikl v roce 1969, kdy prakticky všechny počítače byly provozovány výše uvedeným způsobem.

S nástupem osobních počítačů se výpočetní model výrazně změnil. Jednotlivé aplikace se přestěhovaly co nejblíže svým uživatelům, tedy na jejich osobní počítače. Ty zpočátku nebyly mezi sebou nijak vzájemně propojeny, a tak každý uživatel sice měl veškerou jejich výpočetní kapacitu jen a jen pro sebe, ale jinak měl k dispozici právě a pouze to, co mu jeho počítač nabízel (tedy například jen takové soubory, které měl na svém pevném disku nebo které si odněkud přinesl na disketě).

Obrázek 1.1.
Obr. 1.1: Představa modelu host/terminál

Když pak došlo na vzájemné propojování osobních počítačů do lokálních sítí, výpočetní model se opět poněkud změnil. Jednotlivé aplikace sice byly nadále provozovány přímo na osobních počítačích jednotlivých uživatelů (které se nyní díky svému zapojení do sítě začaly označovat jako pracovní stanice), ale změny doznal zejména způsob uchovávání souborů - ty mohly být nyní umístěny jak "lokálně" (tedy přímo na dané pracovní stanici), tak i centrálně, na jiném počítači, vystupujícím vůči pracovním stanicím v roli tzv. file serveru (souborového serveru), viz obrázek 2. To se přitom týká i samotných aplikací, neboť ty také musí být někde uchovávány ve formě spustitelných souborů. Jestliže tedy byla aplikace (ve formě spustitelného souboru) umístěna centrálně na file serveru a některý uživatel si ji na své pracovní stanici spustil, pak se ve skutečnosti příslušný spustitelný soubor nejprve přenesl po síti a načetl do paměti jeho počítače a zde se pak teprve spustil. Jednu a tutéž aplikaci si tímto způsobem mohlo dokonce spustit i více uživatelů současně a díky možnosti sdílení souborů přitom vystačit s jediným exemplářem příslušné aplikace (resp. souborů, které jí přísluší). Další výhodou je i možnost sdílení nejrůznějších datových souborů umístěných na file serveru - ty jsou totiž přístupné v zásadě všem aplikacím provozovaným na jednotlivých stanicích. Dokonce pak není ani příliš těžké vyhovět uživatelům, kteří chtějí současně pracovat s jedním a týmž pracovním souborem, a přitom vystačit s jediným exemplářem tohoto souboru, umístěným na file serveru - jde v podstatě již jen o technickou záležitost, řešící případné konflikty při časovém souběhu dvou žádostí o modifikaci příslušného souboru.

Obrázek 1.2.
Obr.1.2: Představa modelu file server/pracovní stanice
Výpočetní model, který jsme si právě popsali, nemá všeobecně uznávané označení (tím nejvýstižnějším je zřejmě: model file server / pracovní stanice). Lze se s ním setkat v lokálních sítích tzv. serverového typu, ve kterých jsou počítače v roli file serverů vyhrazeny právě a pouze tomuto účelu, a dále v sítích typu peer-to-peer, kde file servery nejsou vyhrazenými počítači, ale kromě svého vystupování v této roli slouží současně i jako pracovní stanice.

Za zmínku jistě stojí i model klient/server, usilující o minimalizaci objemu přenosů po síti. Typická aplikace vycházející z tohoto modelu má dvě výkonné části - jedna z nich (klientská část) je provozována na pracovní stanici uživatele, zatímco druhá část (serverová část) je provozována nejčastěji na jiném počítači (takovém, který vůči pracovní stanici vystupuje v roli poskytovatele služeb neboli serveru). Obě složky přitom mohou být vzájemně uzpůsobeny tak, aby si předávaly jen nezbytně nutné objemy dat, a tím co nejméně zatěžovaly přenosovou kapacitu sítě.

Kam patří "běžný" DOS?

Obrázek 1.3.
Obr. 1.3.: Představa modelu klient/server
Využijme nyní předchozího výkladu k tomu, abychom si správně zasadili do kontextu "klasický" operační systém DOS, ať již v provedení MS DOS (od firmy Microsoft), PC DOS (od firmy IBM), nebo DR DOS (nověji Novell DOS, od firmy Digital Research, odkoupené firmou Novell).

DOS (od: Disk Operating System) je operačním systémem, který byl od začátku koncipován jako operační systém osobních počítačů standardu IBM PC (viz též box: Začátek byl "Quick & Dirty") . Jelikož tyto osobní počítače jsou určeny vždy jen jedinému uživateli, je i samotný DOS jednouživatelským operačním systémem - přesněji řečeno pojem uživatele vůbec nezná. I ve své nejnovější verzi (verzi 6.21) je stále ještě v zásadě jednoúlohovým operačním systémem, což znamená, že každému uživateli dovoluje v každém okamžiku provozovat vždy jen jednu jedinou úlohu. Schopnost provozovat více úloh souběžně, neboli schopnost tzv. multitaskingu, mu musí být teprve dodatečně implantována prostřednictvím různých nadstaveb, z nichž nejvýznamnější jsou jistě MS Windows.

Vzhledem ke své jednouživatelské a jednoúlohové koncepci není DOS z principu použitelný jako operační systém hostitelského počítače, resp. počítače provozovaného podle modelu host/terminál.

V prostředí počítačových sítí je DOS použitelný jako operační systém pracovních stanic - ovšem i zde jen s určitými úpravami, které mu jsou dodatečně "vnuceny". DOS totiž předem nepočítá s tím, že by pracoval v prostředí sítě, a nedokáže správně reagovat na požadavky aplikací, které se týkají "nelokálních" systémových zdrojů - například nedokáže rozumným způsobem předat jinému programu požadavek na přístup k souboru, který nemá na svém lokálním disku a který se ve skutečnosti nachází na vzdáleném file serveru. Příslušné programy, které zajišťují podporu sítě, se pak musí chovat tak, že DOS doslova "překryjí", zachytávají veškeré požadavky, které aplikace na operační systém vznáší, samy vyřizují ty, které se týkají sítě, a teprve ty zbývající předávají samotnému DOSu.

Pokud jde o servery lokálních sítí serverového typu, zde je DOS opět prakticky nepoužitelný, a to nejen pro svou jednouživatelskou a jednoúlohovou koncepci, ale zejména pro svou jednoduchost a s ní související malou výkonnost. V praxi jsou dedikované file servery lokálních sítí provozovány nejčastěji pod operačním systémem Novell NetWare (který je tomuto účelu doslova šit na míru), pod operačním systémem Unix, resp. některým jeho derivátem, případně pod operačním systémem OS/2.

Poněkud jiná je ale situace v případě lokálních sítí typu peer-to-peer. Tyto sítě nekladou tak velký důraz na celkovou výkonnost serverů, bývají obvykle menší, a díky tomu pak mohou vystačit i s použitím DOSu jako operačního systému počítače, který vystupuje v roli serveru. Celá věc má však ještě i jiný a velmi významný aspekt: chtějí-li lokální sítě peer-to-peer používat nededikované servery (tj. takové počítače, které jsou současně servery i pracovními stanicemi), musí svým uživatelům i na těchto počítačích nabízet stejné systémové prostředí jako na běžných pracovních stanicích, či dokonce samostatných osobních počítačích - a to právě prostředí operačního systému DOS.

Prakticky všechny lokální sítě typu peer-to-peer, jako například LANtastic firmy Artisoft, NetWare Lite firmy Novell a další, jsou vlastně jen nadstavbami nad DOSem, který na příslušných uzlových počítačích zůstává základním operačním systémem.

Co chybí "běžnému" DOSu do víceuživatelské podoby?

Zamysleme se nyní nad tím, co chybí jednouživatelskému a jednoúlohovému operačnímu systému DOS k tomu, aby si mohl skutečně zasloužit přívlastek "víceuživatelský".

První věcí, která mu k "víceuživatelskosti" chybí, je absence pracovišť pro jednotlivé uživatele. DOS od začátku počítá s tím, že bude provozován na počítačích standardu IBM PC, které jsou vybaveny jen jedinou (a tudíž pevně danou) klávesnicí a stejně tak jediným a pevně daným monitorem. Aby na takovémto počítači mohlo pracovat více uživatelů současně, je nutné k němu připojit dostatečný počet terminálů.

Jakmile bude počítač PC vybaven dostatečným počtem terminálů, vyvstane okamžitě další problém: jednotlivé aplikace psané pro prostředí DOSu s jejich existencí nepočítají. Své chování naopak přizpůsobují představě o existenci jediné klávesnice a jediného displeje. Víceuživatelský DOS, na kterém mají být provozovány aplikace psané pro "běžný" DOS, tuto představu nesmí měnit - musí pouze zařídit, aby to, co se aplikace snaží zobrazit na jediném existujícím displeji (ze svého pohledu), se ve skutečnosti zobrazovalo na displeji příslušného terminálu a analogicky pro vstup z klávesnice. U aplikací, které se "chovají slušně" a s klávesnicí a displejem pracují prostřednictvím služeb BIOSu, to není příliš velký problém. Poněkud komplikovanější je to s těmi aplikacemi, které s klávesnicí a displejem chtějí pracovat přímo - které zapisují přímo do tzv. VIDEO RAM a samy "sahají" do tzv. klávesnicového bufferu.

K možnosti sloužit více uživatelům současně samozřejmě patří i schopnost provozovat jejich úlohy souběžně, v režimu sdílení času. Nutnou (ale nikoli postačující podmínkou) k dosažení tohoto cíle je schopnost multitaskingu, v prostředí osobních počítačů obvykle chápaná v jednouživatelském smyslu (tj. jako souběžné provozování více úloh patřících jednomu a témuž uživateli). Víceuživatelský DOS samozřejmě bude potřebovat velmi efektivní a výkonný multitasking, implementovaný na co možná nejnižší úrovni, se všemi "obvyklými" náležitostmi - například s tzv. spoolingem tiskáren a dalšími mechanismy, které zajišťují korektní přístup více úloh k takovým systémovým zdrojům, které nelze sdílet.

Aby však mohl být multitasking rozumným způsobem využit i pro souběžné provozování úloh, patřící různým uživatelům, musí vedle něj existovat a fungovat řada dalších mechanismů a opatření. Například musí být zaveden samotný pojem uživatele, který jednouživatelskému DOSu zcela chybí. Teprve pak je totiž možné uvažovat o tom, jak vyřešit otázku přístupových práv, otázku vlastnictví systémových zdrojů (například souborů), jak implementovat potřebné mechanismy, které dbají na korektní dodržování přístupových práv a dalších případných konvencí atd.

K čemu je dobrý víceuživatelský DOS?

Zajímavou otázkou je jistě i to, k čemu je takový víceuživatelský DOS dobrý. Kdy, kde a jakým způsobem jej využít, resp. kdy je výhodnější než jiné řešení, které se v současné době nabízí na softwarovém trhu.

Typickým způsobem využití víceuživatelského DOSu bude zřejmě jeho nasazení na počítači, který má vystupovat v roli hostitelského počítače (a být tudíž provozován podle modelu host/terminál) - jde tedy o takový způsob, jaký byl typický před nástupem osobních počítačů, v době vlády střediskových počítačů a minipočítačů. V tomto ohledu je víceuživatelský DOS obdobou historicky mnohem staršího operačního systému Unix, jehož koncepce se rodila na přelomu šedesátých a sedmdesátých let, a také vychází z modelu host/terminál.

Má ovšem takto koncipovaný operační systém smysl ještě i dnes, v době vlády osobních počítačů, lokálních sítí a aplikací s architekturou klient/server? Zvláště když si ještě navíc uvědomíme, že právě operační systém Unix se stále více stává spíše systémovou platformou pro nejrůznější druhy serverů (tj. je využíván jako file server, aplikační server apod.) a jako operační systém výkonných pracovních stanic (a tudíž jako jednouživatelský), zatímco jeho využití v duchu modelu host/terminál výrazně ustupuje do pozadí!

Odpověď na tuto kardinální otázku jako by chtěla zdůraznit skutečnost, že svět nikdy není černobílý a že všeobecné trendy nejsou vždy a za všech okolností tím optimálním řešením - v našem konkrétním případě je nutné si uvědomit, že zřejmě vždy budou existovat takové aplikace a takové situace, pro které bude řešení ve stylu host/terminál (navíc s využitím víceuživatelského DOSu) výhodnější.

Důvody jsou především ryze praktické:

  • Vývoj víceuživatelských aplikací na platformě DOSu je výrazně jednodušší, rychlejší a lacinější než vývoj srovnatelně náročných aplikací například v prostředí Unixu či na jiné víceuživatelské platformě. Nezanedbatelná přitom není ani otázka lidských zdrojů - člověka, který dobře rozumí DOSu a dokáže se vyrovnat se specifikami jeho víceuživatelské verze, najdete mnohem snáze než například kvalifikovaného odborníka na Unix.
  • Centralizované umístění systémových zdrojů (především souborů, ale také například tiskáren) na hostitelském počítači, s možností jejich sdílení více uživateli, je co do výsledného efektu shodné s jejich umístěním na file serveru lokální sítě a přináší i stejné výhody - možnost centrální správy, centrálního zálohování apod.
  • Chcete-li v lokální sítí serverového typu či v síti peer-to-peer provozovat aplikace, které nevychází z modelu klient/server (ale z modelu file server/pracovní stanice), pak musíme patřičným způsobem dimenzovat jednotlivé pracovní stanice - co do výkonu procesoru, objemu paměti RAM apod. Dále musíte počítat s tím, že pokud tyto aplikace zpracovávají nějaké datové soubory (například databázové soubory), pak si je vždy budou celé nejprve přenášet z file serveru po síti až na vlastní stanici, a teprve zde je budou zpracovávat. Půjde-li například o nějakou náročnější databázovou aplikaci, může být tímto způsobem celá síť velmi rychle zahlcena. Naproti tomu obdobná aplikace řešená podle modelu host/terminál "poběží" přímo na hostitelském počítači a všechny datové soubory bude zpracovávat v místě, kde se nachází.
  • Nezajímavý není ani finanční aspekt. Například pro vybudování sítě serverového typu potřebujete zakoupit samotný server, pro něj vhodný síťový operační systém (například NetWare 3.11 až 4.01 nebo Unix) v ceně desítek až stovek tisíc (podle platformy a počtu uživatelů) a dále pak patřičný počet dostatečně výkonných pracovních stanic, kabeláž, síťové karty atd. V případě řešení s víceuživatelským DOSem ušetříte síťový operační systém a místo něj si zakoupíte víceuživatelský DOS (který ve verzi DR Multiuser DOS pro max. 64 uživatelů stojí cca 18 000) a místo výkonných pracovních stanic vystačíte s nejjednoduššími PC (například i vyřazenými XT) v roli emulovaných terminálů nebo s klasickými jednoúčelovými terminály (které zbyly po zrušení centrálního počítače).

Víceuživatelský DOS v provedení DR Multiuser DOS od firmy Digital Research můžete doplnit také o síťovou nadstavbu DR NET, která vám z hostitelského počítače vytvoří navíc file server plnohodnotné sítě serverového typu - za cenu cca 15 000 Kč (bez omezení počtu uživatelů).

Ale o těchto konkrétních možnostech již ve druhém článku.