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

DR Multiuser DOS aneb víceuživatelský DOS v praxi


Tento článek je součástí série recenzních článků, věnovaných produktu DR Multiuser DOS.
V předchozím článku jsme dospěli k obecné představě víceuživatelského DOSu: k tomu, s jakými problémy se musí vyrovnat, a čím musí být oproti své jednouživatelské verzi doplněn. Ukažme si nyní, jakým konkrétním způsobem naplňuje tuto představu jeden konkrétní produkt: DR Multiuser DOS firmy Digital Research, Inc. (nyní ve vlastnictví firmy Novell), a jeho další doplňky.

V prvním přiblížení si vlastnosti operačního systému DR Multiuser DOS můžeme shrnout takto: jde o víceuživatelský operační systém na bázi DOSu, určený pro provozování na počítačích s procesorem 80386 a vyšším. Z tohoto počítače vytváří víceuživatelský hostitelský počítač, pracující podle modelu host/terminál a schopný sloužit až 64 uživatelům současně. Každý z těchto uživatelů přitom může mít otevřeno až 8 dosovských relací (tj. mít současně spuštěno až osm "instancí" jednoúlohového DOSu) a v nich provozovat běžné aplikace pro prostředí DOSu. Všechny takto provozované aplikace (od všech uživatelů) přitom společně sdílí všechny systémové zdroje daného hostitelského počítače a samozřejmě se také dělí o jeho procesor. Souběžného běhu více úloh je dosaženo pomocí preemptivního multitaskingu, implementovaného na nejnižší možné úrovni. Použita je i zajímavá technika detekce neaktivních procesů, která umožňuje lépe hospodařit s časem procesoru a dosáhnout využití strojového času na více než 100 procent (v celkovém součtu). Přístupová práva jsou řešena obdobným způsobem jako v Unixu, včetně zavádění uživatelských skupin. Každá jednotlivá úloha přitom může mít k dispozici až 640 KB konvenční paměti, a kromě ní i rozšířenou paměť typu expanded (tj. paměť EMS). Paměť typu extended (tj. XMS) jednotlivé úlohy k dispozici nemají. Podporován je především textový režim zobrazení, z grafických režimů pak režim CGA - vyšší režimy pouze na tzv. systémové konzole, kterou je displej vlastního hostitelského počítače (a nikoli tedy na terminálech). Podporována je vícenásobná konektivita se sítěmi Novell NetWare - z jednoho hostitelského počítače lze současně otevřít až 16 samostatných relací s file serverem sítě NetWare.

V článku je popisována verze DR Multiuser DOS 5.11, která byla poskytnuta k recenzi. Na trhu by se však již brzy měla objevit novější verze 7 (Firma Novell se rozhodla sjednotit číslování verzí svých operačních systémů, a proto přeskočila verzi 6. Nová verze DR Multiuser DOSu tedy bude mít stejné číslo verze jako jednouživatelský Novell DOS 7.) - tam, kde se tato verze významněji liší od verze 5.11, je na to explicitně upozorněno.

Způsob připojování terminálů

DR Multiuser DOS umožňuje připojovat k hostitelskému počítači jednotlivé terminály třemi základními způsoby:

  • Po sériové lince (kabelu) přes zabudovaná sériová rozhraní hostitelského počítače. Do počítačů PC se ovšem standardně instalují pouze dvě sériová rozhraní (i když BIOS podporuje až čtyři), takže tímto způsobem je možné připojit jen dva další terminály - společně s původní klávesnicí a terminálem tak může vzniknout víceuživatelský systém pro tři uživatele.
  • Po sériové lince přes rozšiřující karty, které vytváří další sériová rozhraní (tzv. multiport cards, typicky s 4 až 64 sériovými rozhraními). DR Multiuser DOS sám nabízí ovladače pro řadu nejrozšířenějších karet tohoto typu (mj. pro karty Logshine, Digiboard) a samozřejmě dovoluje používat i jiné karty, ke kterým výrobce dodá potřebný ovladač.
  • Po lokální síti (např. Ethernet či Arcnet). Na straně hostitelského počítače vyžaduje tato možnost síťovou kartu podporovanou ovladači DR Multiuser DOSu (viz dále) a na straně terminálů pak emulační program IMSTERM for NetWare (který je popisován dále).

Terminály, které lze k hostitelskému počítači připojovat, mohou být v zásadě opět trojího druhu:

  • Jednoduché (neinteligentní, "dumb") znakové terminály, například terminály připojované k unixovským počítačům či velkým střediskovým počítačům. Tyto terminály je samozřejmě možné provozovat jen ve znakovém režimu. Navíc zobrazují většinou jen 24 řádek (jak je obvyklé v prostředí Unixu), zatímco počítače PC počítají ve znakovém režimu s 25 řádkami.
  • Terminály schopné emulovat základní režimy zobrazení počítačů PC (jako například terminály Wyse 60, Wyse 120, Wyse 370). Tyto terminály je možné provozovat v běžném textovém režimu počítačů PC, a pokud podporují i grafiku, pak i v režimu CGA-grafiky (včetně barvy, pokud je terminálem podporována).
  • Počítače PC provozované v režimu emulovaného terminálu. K tomu účelu se hodí v podstatě jakýkoli PC, včetně nejjednoduššího modelu XT s minimem paměti, které stačí k provozování potřebného emulačního programu. Tím by mohl být v zásadě libovolný komunikační program, ale DR Multiuser DOS používá ve znakovém režimu svůj vlastní režim emulace, který není běžně používanými komunikačními programy podporován. Standardní součástí DR Multiuser DOSu je však vlastní emulační program, který můžete za tímto účelem použít, nebo si jako zvláštní doplněk můžete zakoupit dokonalejší emulační program, "šitý na míru" Multiuser DOSu - viz dále.

Režimy zobrazování

Obrázek 2.1.
Obr. 2.1: Možnosti připojování terminálů k Multiuser DOSu
Pokud jde o režimy zobrazování, které DR Multiuser DOS podporuje, je nutné rozlišit mezi terminály a tzv. systémovou konzolou, tvořenou vlastní klávesnicí a displejem hostitelského počítače. Na této systémové konzole (též: hlavní konzole) je podporováno zobrazování ve všech režimech videoadaptérů VGA či Herkules. Naproti tomu na jednotlivých terminálech je podporován pouze znakový režim zobrazení, a pokud je toho příslušný terminál schopen, pak i grafický režim CGA (tj. 640 x 200 bodů). Vyšší grafické režimy na terminálech podporovány nejsou.

Možnosti emulace

Emulační program PCTERM, dodávaný jako standardní součást DR Multiuser DOSu, můžete využít jak pro emulaci znakového režimu na terminálu, tak i pro emulaci barevného grafického režimu v rozlišení CGA. Můžete jej provozovat na libovolném počítači PC, který má alespoň 256 KB paměti RAM. Pro připojení tohoto počítače k hostitelskému počítači potřebujete sériový kabel zapojený jako tzv. nulový modem - emulátor PCTERM je však schopen používat i tzv. softwarový handshake, takže vystačíte i s takovým sériovým kabelem, který má jen tři vodiče (zemnicí vodič a vzájemně překřížené vodiče TxD a RxD). Nejvyšší přenosovou rychlostí, kterou emulátor PCTERM zvládá, je 38 400 b/s.).

Jako samostatný doplněk (tj. nezahrnutý v ceně vlastního DR Multiuser DOSu) si můžete zakoupit i dokonalejší emulátor IMSTERM pro prostředí DOSu. Jeho Hlavní předností tohoto emulátoru (oproti emulátorům PCTERM, resp. PTERM) je to, že má formu rezidentního programu, a může tedy být provozován na pozadí jiného programu - dovoluje vám například pracovat "v lokálu" na nějaké aplikaci, v okamžiku skutečné potřeby aktivovat rezidentní emulátor, jeho prostřednictvím chvíli pracovat na hostitelském počítači a pak se zase vrátit zpět do původní "lokální" aplikace, jejíž běh nebyl vůbec přerušen. Tento emulátor již také zvládá vyšší přenosové rychlosti (až 115 000 kb/s) a kromě přímého připojení počítače PC v roli terminálu po sériovém kabelu umožňuje připojit počítač i přes veřejnou telefonní síť prostřednictvím modemu - což otevírá mnohé zajímavé možnosti (viz například scénáře č. 3 a 4). Ve verzi 7 DR Multiuser DOSu by již měl být tento emulátor jeho standardní součástí a měl by také být vybaven schopností přenosu souborů mezi hostitelským počítačem a emulovaným terminálem.

Ještě další možností je pak emulátor IMSTERM pro prostředí sítí NetWare (neboli: IMSTERM for NetWare). Tato varianta emulátoru se vyznačuje tím, že pro komunikaci emulovaného terminálu s hostitelským počítačem využívá přenosových schopností lokální sítě. Označení .. for NetWare.. přitom neznamená, že k tomu potřebujete plnohodnotnou síť Novell NetWare - znamená to, že pro vlastní přenos dat jsou využívány přenosové protokoly IPX/SPX sítí NetWare. Z čistě praktického pohledu to znamená, že na straně hostitelského počítače musíte mít nainstalovánu síťovou kartu a k ní ovladač pro síť Novell NetWare a na straně počítače v roli emulovaného terminálu musíte mít taktéž nainstalovánu vhodnou síťovou kartu a nad ní ovladač, který vytváří rozhraní IPX. Žádný server k tomu zapotřebí není (viz obr. 2.2).

Terminálové relace - DOS sessions

Obrázek 2.2.
Obr. 2.2.: Představa fungování emulátoru IMSTERM for NetWare
Víceuživatelský charakter DR Multiuser DOSu dovoluje, aby si každý uživatel mohl ze svého terminálu zřídit samostatnou terminálovou relaci - což je nejlépe si představit jako možnost spuštění samostatné "instance" běžného jednouživatelského DOSu, resp. jako jeden virtuální počítač s běžným jednouživatelským a jednoúlohovým DOSem. DR Multiuser DOS těmto terminálovým relacím říká DOS sessions (doslova: dosovské relace) a s možností jejich zřizování jde ještě dále: jak na systémové konzole, tak i na každém terminálu umožňuje zřídit až osm takovýchto dosovských relací, v jejichž rámci mohou být nezávisle na sobě provozovány různé úlohy pro prostředí běžného DOSu. Z nich je ovšem vždy jen jedna provozována na popředí, a ostatní běží na pozadí - pokud právě nepotřebují žádný vstup z klávesnice, mohou spokojeně "počítat", zatímco uživatel komunikuje s úlohou na popředí. Sám si přitom volí (nastavitelnou kombinací horkých kláves), kterou úlohu chce mít na popředí.

Správce systému přitom má možnost omezit počet relací, které mohou být současně zřízeny jak na systémové konzole, tak i na každém jednotlivém terminálu. Důvodem k takovémuto opatření nejčastěji bývá omezený objem operační paměti, který je na hostitelském počítači k dispozici.

Uživatelé a přístupová práva

DR Multiuser DOS se s otázkou uživatelů a přístupových práv vyrovnává způsobem, který velmi připomíná operační systém Unix. Jednotliví uživatelé jsou identifikováni přidělenými uživatelskými jmény, jejich uživatelské účty jsou chráněny hesly a stejně jako v Unixu jsou uživatelé zařazováni do skupin (tj. každý je vždy členem právě jedné skupiny).

Soubory umístěné na hostitelském počítači patří vždy určitým konkrétním uživatelům (kteří jsou jejich vlastníky) a přístupová práva k těmto souborům jsou stejně jako v Unixu stanovována samostatně pro vlastníka, pro skupinu, do které vlastník patří, a pro "zbytek světa". Na rozdíl od Unixu se ale v DR Multiuser DOSu v rámci každé z těchto tří kategorií stanovuje právo čtení, právo zápisu a právo zrušení (delete), zatímco v Unixu se stanovuje právo čtení, zápisu a provedení (a možnost zrušení je chápána jako zvláštní případ zápisu, resp. přepisu).

Tak jako ostatně v každém víceuživatelském systému, musí i v DR Multiuser DOSu existovat alespoň jeden superuživatel - tedy uživatel s maximálními právy, kterého se žádná omezení netýkají (a který například mění implicitně nastavovaná přístupová práva, zřizuje a ruší uživatelské účty apod.). Uživatelské jméno tohoto superuživatele není pevně dáno (jako tomu bývá v Unixu), ale je možné jej volit (v průběhu instalace DR Multiuser DOSu).

Otevřený, nebo zabezpečený systém?

Zajímavou možností, kterou DR Multiuser DOS nabízí, je tzv. "otevřený" systém: jde o takovou variantu víceúlohového DOSu, která se nesnaží rozlišovat mezi jednotlivými uživateli a vlastně s nimi ani nepočítá. Každému, kdo si sedne k některému z terminálů či k systémové konzole, pak nabízí v zásadě identické postavení a identická přístupová práva ke všem systémovým zdrojům.

Tato "otevřená" varianta je alternativou dosud popisované víceuživatelské varianty, která počítá s jednotlivými uživateli a s individuálními přístupovými právy (a která je označována jako "bezpečná", resp. "secure"). Nicméně "otevřená" varianta nemusí být zcela nezabezpečená proti neoprávněnému přístupu - v rámci ní je možné každý jednotlivý soubor chránit individuálním přístupovým heslem.

Obě varianty jsou samozřejmě vzájemně neslučitelné a nemohou existovat vedle sebe. Proto se již při instalaci DR Multiuser DOSu musíte rozhodnout, zda si přejete nainstalovat "otevřený" víceúlohový systém, nebo "bezpečný" víceuživatelský operační systém.

Koexistence s jednouživatelským DOSem

Zajímavou a velmi důležitou vlastností DR Multiuser DOSu je jeho schopnost koexistence s běžným jednouživatelským a jednoúlohovým DOSem. Nikoli sice ve stejném čase (což by asi nemělo příliš velký význam), ale zato na stejném počítači: oba operační systémy mohou být nainstalovány současně a uživatel si při počátečním zavádění systému (tzv. bootu) může vybrat, který z nich má být skutečně zaveden.

Díky tomu je pak možná i taková strategie, kdy na určitém počítači je standardně provozován běžný jednouživatelský DOS (ať již MS DOS, PC DOS či DR DOS), a pouze v případě skutečné potřeby je místo běžného DOSu zaveden víceuživatelský DR Multiuser DOS. Uživatelé tak nepřichází o své běžné pracovní prostředí, pouze dostávají na výběr ještě jednu další alternativu, kterou mohou, ale nemusí používat.

Možnost koexistence DR Multiuser DOSu s běžným DOSem je umožněna mj. i tím, že oba operační systémy si "zabydlují" pevné disky i diskety stejným způsobem (tj. používají stejnou organizaci souborů na discích). To, co si DR Multiuser DOS musí u každého souboru pamatovat navíc (zejména jeho vlastníka a přístupová práva), přitom ukládá přímo do příslušných souborů takovým způsobem, že pro běžný DOS je to neviditelné.

Možnosti tisku

Vedle možnosti sdílení disků a na nich uložených souborů je významnou charakteristikou většiny víceuživatelských systémů také možnost sdílení tiskáren více uživateli. Nejinak je tomu i u DR Multiuser DOSu, jehož přístup k problematice tisku by bylo možné vystihnout sloganem: "odkudkoli lze tisknout na kterékoli tiskárně". DR Multiuser DOS samozřejmě umožňuje připojit tiskárny přímo k hostitelskému počítači, a to všemi obvyklými způsoby, tj. přes paralelní i přes sériová rozhraní. Kromě toho však umožňuje připojit sdílené tiskárny i k jednotlivým terminálům (avšak pouze k počítačům PC vystupujícím v roli emulovaných terminálů a používajícím některý z emulátorů "šitých na míru" DR Multiuser DOSu, jako jsou například emulátory PCTERM, IMSTERM, ev. další). Všem uživatelům pak nabízí jednotný pohled na tiskárny, který zcela zastírá místo a způsob jejich skutečného připojení. Uživatel, pracující u jednoho terminálu pak může tisknout například na tiskárně připojené k jinému terminálu.

Tak jako obecně v každém prostředí, které připouští současný běh více úloh, je i v DR Multiuser DOSu tisk řešen pomocí spoolingu. Příslušné spoolovací prostředky přitom umožňují nejen manipulovat s tiskovými úlohami (zejména rušit je apod.), ale dovolují také dynamicky přidělovat priority tiskovým úlohám, připraveným k tisku a čekajícím ve frontě na tisk.

Zajímavostí je i program SCRIPT, dodávaný jako součást DR Multiuser DOSu. Tento program je určen pro převod standardních ASCII-textů do PostScriptu ale kromě toho dokáže převádět do PostScriptu i výstupní data, formátovaná pro tisk na tiskárnách kompatibilních s tiskárnami HP Laserjet II. Navíc může být tento program nainstalován i jako rezidentní program, který průběžně zachytává data, určená k tisku, převádí je do tvaru PostScriptu a posílá je na postscriptovou tiskárnu. Tím se vlastně stává emulátorem tiskárny HP LJ II na postscriptové tiskárně.

Řešení multitaskingu

Multitasking je v DR Multiuser DOSu řešen jako preemptivní - což znamená, že jednotlivým úlohám je procesor vždy přidělován na určitý časový interval (časové kvantum, anglicky: time slice) a po jeho uplynutí je jim zase odebírán. Alternativou k tomuto řešení by byl tzv. nepreemptivní multitasking, v jehož rámci by úloha musela sama a z vlastní iniciativy vrátit procesor (resp. předat jej jiné úloze) - to by ale znamenalo, že by o mechanismu přepínání procesou mezi jednotlivými úlohami musela vědět a být mu přizpůsobena. Preemptivní multitasking, implementovaný v DR Multiuser DOsu, toto nevyžaduje: procesor je jednotlivým úlohám odnímán "násilím", bez jejich vědomí. V důsledku toho pak jednotlivé úlohy nemusí o existenci multitaskingu vůbec vědět - mohou to tedy být i zcela běžné úlohy, psané pro jednoúlohové prostředí běžného DOSu.