Vyšlo v měsíčníku Computer Echo č. 1/93 v roce 1993
Vytištěno z adresy: http://www.earchiv.cz/a93/a301e160.php3

Část 1.: filosofie vzájemné spolupráce

Interoperabilita jako vzájemné soužití nestejných platforem může mít mnoho různých podob. Nad tím, jaké mohou být v případě operačních systémů Unix a MS DOS, se zamýšlí tato série článků.

Dnešní počítačový svět není homogenní. Jeho obyvatelé nepatří k jedné jediné rase a nehovoří vždy stejným jazykem. Spíše naopak - v nejrůznějších oblastech, kde jsou počítače používány, se stále ještě můžeme setkat s více či méně odlišným hardwarem i softwarem, s odlišnými komunikačními protokoly, s odlišnými formáty dat i dalšími odlišnostmi, a v neposlední řadě i s různým pohledem na svět a přístupem k uživatelům. Co je ale příčinou této roztříštěnosti?

Za všechno mohou tržní mechanismy

Tak jako snad v každém oboru lidské činnosti, docházelo i v oblasti výpočetní techniky k postupnému vývoji, ovlivňovanému různými trendy. Dominujícím a stále přetrvávajícím faktorem byla a je přirozená snaha výrobců získat a udržet si co nejvíce zákazníků - měnila se pouze forma realizace tohoto záměru.

Když zalistujeme ve výkladovém slovníku .....
InteroperabilityStyková provozuschopnost (styková funkceschopnost)
The capability of a functional unit to operate normally in different data processing environments in a way that requires users to have little or no knowledge of the unique characteristics of those units.
NOTE - Interoperability - is achieved by means of standardization of interfaces.
Schopnost funkční jednotky pracovat normálně v různých prostředích zpracování dat tak, že neklade téměř žádné nebo vůbec žádné požadavky na uživatele ohledně konkrétních vlastností takových jednotek.
Pozn.: Stykové provozuschopnosti se dosahuje standardizací rozhraní.
(ISO 2382-1:1989)(Anglicko-český výkladový slovník výpočetní techniky, SNTL 1990, strana 109)

V době, kdy světu vládly střediskové (mainframe) počítače, se jejich výrobci snažili být "dodavateli všeho" - od vlastního počítače přes periferní zařízení a software až po školení uživatelů. Nejlepším způsobem, jak si své zákazníky udržet, či spíše pevně připoutat k sobě, pak byla vlastní koncepce hardwaru i softwaru, neslučitelného a neschopného spolupráce s obdobnými produkty jiných výrobců. V té době skutečně bylo v silách jednotlivých výrobců pokrýt veškeré požadavky svých zákazníků, které tehdy ještě nebyly tak různorodé jako dnes. S postupem času se ale tyto požadavky značně diversifikovaly, a jednotliví výrobci již nestačili vyhovět všemu a všem. Záhy si uvědomili, že je v jejich vlastním zájmu radikálně změnit dosavadní strategii, a přijít na trh s takovými produkty, které budou schopné spolupracovat i s produkty jiných výrobců. Tedy s produkty, které se dnes označují jako "otevřené" (open) - v tom smyslu, že jsou otevřeny možnosti spolupráce a vzájemné součinnosti s jinými produkty, které mohou být založeny na více či méně odlišných principech, myšlenkách či technologiích, pokud ovšem i tyto produkty budou dodržovat stejná, předem dohodnutá pravidla hry pro vzájemnou součinnost.

Co je platforma?

Historicky tedy vedle sebe vznikaly různé počítačové "světy" - s vlastními názory, přístupy a metodami, s vlastním specifickým hardwarem i softwarem a celou řadou dalších specifik - tedy to, co se dnes dosti vágně označuje jako platforma. Z počátku byly jednotlivé platformy plně disjunktní, a to zcela záměrně. Teprve posléze se pod tlakem uživatelů začaly projevovat tendence k vzájemnému sbližování jednotlivých platforem tak, aby byly schopné spolu komunikovat a vzájemně spolupracovat na řešení těch úkolů, které od nich jejich uživatelé požadovali.

V dobách nepříliš dávných tvořily takovéto platformy především sálové (mainframe) počítače firmy IBM (řady 360/370, až po novější 43xx a 90xx), a počítače PDP a VAX firmy DEC (Digital Equipment Corporation). Zde byla charakteristickým rysem vázanost na jediného výrobce, a v důsledku toho pak jednotnost hardwaru i softwaru. V současné době můžeme za samostatný "svět" s ucelenou filosofií (tedy za samostatnou platformu) považovat také počítače standardu IBM PC s operačním systém MS DOS, případně i s nadstavbami typu MS Windows. Zde již chybí vázanost na jediného výrobce, stále však zůstává jednotná koncepce na poli hardwaru i softwaru, umožňující přenos aplikací v binárním tvaru. Podobně můžeme za samostatný a ucelený svět s vlastní filosofií považovat i prostředí operačního systému Unix, v obou jeho hlavních variantách - BSD Unix (Berkeley Standard Distribution) i System V (od firmy AT&T, nověji od její dceřinné organizace USL - Unix System Laboratories) a se všemi deriváty (AIX od firmy IBM, HP-UX firmy Hewlett Packard, Ultrix firmy DEC, HP-UX firmy Hewlett-Packard, SunOS resp. Solaris firmy Sun, SCO Unix firmy Santa Cruz Operation atd.). Prostředí Unixu tedy není nijak vázáno na jednoho výrobce, a dokonce není vázáno ani na vzájemně kompatibilní hardware - za což ale platí přenositelností aplikací jen na úrovni zdrojového kódu. I ta je však často spíše teoretická, neboť obě základní varianty Unixu i jejich jednotlivé deriváty se po implementační stránce často dosti podstatně liší. Přesto však v celém světě Unix-u zůstává stejný "způsob myšlení" a stejná základní architektura operačního systému a pro něj vyvíjených aplikací.

Přestože bychom mohli v hledání dalších platforem ještě chvíli pokračovat, zůstaneme u těch dvou posledně jmenovaných. Tedy u počítačů PC s MS DOS-em a u Unixu. Právě ty jsou totiž v současné době v našich podmínkách zřejmě nejzajímavější.

Interoperabilita je když .....

Co si skutečně představit, když se řekne "interoperabilita"
Pojem "interoperabilita" se nejčastěji používá v souvislosti s možností vzájemné spolupráce různých platforem v rámci heterogenních počítačových sítí - tedy například k vyjádření toho, že Unixovský počítač a na něm běžící aplikace dokáží spolupracovat s aplikací, provozovanou na počítači PC s operačním systémem MS DOS. Interoperabilita se však může týkat různých úrovní: způsobu propojení počítačů v síti a schopnosti síťového softwaru na dvou počítačích vzájemně si předávat data (i když zde by asi bylo přesnější mluvit o konektivitě), dále schopnosti operačních systémů sdílet si navzájem své zdroje (tedy například možnosti přístupu jednoho počítače k souborům, nacházejícím se na druhém počítači), a konečně vzájemné součinnosti mezi aplikačními programy - například schopnosti dvou systémů elektronické pošty předávat si jednotlivé zprávy.
Jakmile vedle sebe existují alespoň dvě různé platformy, zcela zákonitě se dříve či později objeví požadavek na jednorázový přenos dat mezi dvěma počítači, které "stojí" na různých platformách. Brzy na to bude následovat požadavek na trvalou možnost přenosu souborů oběma směry, posléze i na možnost společného využití tiskáren a dalších zařízení, na vzájemnou komunikaci nejrůznějších aplikací, zkrátka na co nejužší spolupráci a vzájemnou součinnost různých platforem. Tedy na to, co se dnes obecně označuje jako interoperabilita, a automaticky vztahuje na prostředí počítačových sítí - neboť o vzájemné součinnosti a spolupráci má rozumný smysl mluvit jen tehdy, jsou-li příslušné počítače vhodně propojeny.

Z pohledu uživatele je požadavek na interoperabilitu vlastně požadavkem na splynutí různých platforem. Pro uživatele by jistě bylo nejvýhodnější, kdyby se na něj jednotlivé aplikace "tvářily" na všech platformách stejně. Tedy aby mu všechny předkládaly stejné uživatelské rozhraní, umožňovaly stejné ovládání, nabízely stejné možnosti a funkce atd. Jednotlivé platformy jsou však natolik rozdílné, že prostý přenos aplikací mezi nimi není možný (v Unixu dokonce ani ne v rámci téže platformy). Řešením je pouze tvorba stejných aplikací v různých verzích pro různé platformy: příkladem může být oblíbený systémový program pro správu souborů Xtree Gold, napsaný původně pro prostředí MS DOSu, který ale dnes již existuje i ve verzi pro Unix.

Poněkud slabší požadavek, než přesně stejné pracovní prostředí na různých platformách, je alespoň možnost spolupráce aplikací stejného charakteru. Nejmarkatnějším příkladem zde může být elektronická pošta - zatímco na každé platformě může být elektronická pošta zajišťována odlišnými aplikačními programy, s odlišným uživatelským rozhraním i jinou celkovou filosofií, přesto může být možné přenášet bez větších problémů jednotlivé zprávy mezi různými platformami - pokud se příslušné aplikační programy shodnou na společném tvaru, formátu a významu těchto přenášených zpráv. Zde je tedy prostředkem k dosažení vzájemné součinnosti (interoperability) dodržování společných standardů.

Nutnou podmínkou k interoperabilitě na úrovni aplikací je však možnost vzájemného přístupu k nejrůznějším systémovým zdrojům mezi platformami - tedy například možnost vzájemného přístupu k souborům, tiskárnám, streamerům, eventuelně dalším speciálním zařízením. Tyto jsou ovšem ve správě příslušných operačních systémů. Interoperabilita na úrovni aplikací je proto podmíněna interoperabilitou na úrovni operačních systémů. Touto otázkou se budeme v dalším podrobněji zabývat, a to právě pro dva námi zvolené operační systémy: MS DOS a Unix.

Pokud si ale dva operační systémy chtějí navzájem umožnit přístup ke svým systémovým zdrojům, mohou tak učinit pouze v případě, že jsou spolu schopné vůbec komunikovat - tedy předávat si jakákoli data. Interoperabilita na úrovni operačních systémů je proto opět vázána na možnost vzájemné spolupráce těch softwarových i hardwarových složek příslušných platforem, které zajišťují vzájemné propojení. Tedy na vzájemné kompatibilitě technických prostředků vzájemného propojení, na shodných přenosových protokolech a na slučitelném síťovém programovém vybavení. Také touto otázkou se budeme podrobněji zabývat, v souvislosti se vzájemnou koexistencí MS DOSu a Unixu "na jednom drátě".

Rozdíly mezi MS DOSem a Unixem

Dříve, než se začneme systematicky zabývat otázkou interoperability na úrovni operačních systémů mezi námi zvolenými platformami - tedy mezi MS DOSem a Unixem, musíme se nejprve zmínit o významných odlišnostech mezi těmito dvěma operačními systémy. Z nich nám pak totiž vyplynou dosti významné důsledky pro jejich vzájemnou součinnost.

Základní rozdíl mezi MS DOSem a Unixem je již v jejich celkové koncepci. MS DOS byl a je jednoúlohovým a jednouživatelským operačním systémem. To znamená, že v každém okamžiku slouží vždy jen jednomu uživateli, který si na něm může v daném okamžiku pouštět vždy jen jednu úlohu. Na této skutečnosti nic nemění ani možnost pracovat s rezidentními programy (které lze při troše dobré vůle chápat jako další úlohy), ani nejrůznější nadstavby, umožňující tzv. multitasking (jako současný běh více úloh, v angličtině: tasks) - nejznámější takovouto nadstavbou je bezesporu systém MS Windows, provozovaný v tzv. enhanced módu (ovšem zase jen na počítačích PC s procesorem i80386 a vyšším). Podstatná je totiž skutečnost, že DOS nemá v sobě zabudovány žádné mechanismy na podporu multitaskingu. Tyto mu jsou implantovány až dodatečně (a proto i dosti komplikovaně a neefektivně) již zmíněnými nadstavbami. Naproti tomu Unix byl od začátku koncipován jako víceúlohový a víceuživatelský operační systém, a je tudíž náležitě vybaven potřebnými mechanismy pro podporu víceúlohového a víceuživatelského režimu, které MS DOSu chybí.

Relace a terminály, remote login

Obrázek 1.
Obrázek 1.: Představa terminálových relací
Počítač, pracující pod operačním systémem Unix, tedy může sloužit jednomu či více uživatelům současně, a každý z těchto uživatelů si na něm může spouštět teoreticky neomezený počet úloh (v praxi je ale tento počet omezený především výkonem technických prostředků počítače). S tím souvisí i možnost připojit k Unixovskému počítači větší počet uživatelských pracovních míst, tvořených klávesnicí a monitorem, a označovaných jako terminály (viz obrázek 1.). Uživatelé však komunikují s operačním systémem a se svými úlohami prostřednictvím tzv. relací, které si lze nejlépe představit jako rozhovor dvou účastníků, začínající přihlášením uživatele do systému (obvykle příkazem "login") a končící jeho odhlášením (příkazem "logout" či "logoff"). Terminál je pak pouze tím fyzickým zařízením, jehož prostřednictvím se tento rozhovor odehrává, podobně jako se rozhovor mezi lidmi může odehrávat například prostřednictvím telefonu. Podstatná je přitom skutečnost, že relace nejsou vázány na konkrétní terminál - podobně jako člověk, který si může zavolat z kterékoli fungujícího telefonního automatu, může si i uživatel otevřít svou relaci na kterémkoli dostupném terminálu (tj. může pracovat na kterémkoli z nich, který je právě volný).

V operačním systému MS DOS neexistuje žádná přímá analogie terminálů a relací. Při troše dobré vůle si můžeme představit, že počítač PC s operačním systémem MS DOS má jediný terminál (svůj monitor a svou klávesnici), prostřednictvím kterého probíhá vždy stále jediná relace. Je zde však ještě jeden významný rozdíl: zatímco Unix chápe terminál jako jediné vstupně/výstupní zařízení, MS DOS se dívá na klávesnici a na monitor jako na dvě samostatná zařízení.

S relacemi v Unixu velmi úzce souvisí jedna z možností interoperability počítačů PC s MS DOSem a Unixovských počítačů na úrovni aplikačních programů. Jsou-li oba druhy počítačů vhodně propojeny, může se počítač PC chovat jako (tzv. emulovat) skutečný terminál Unixovského počítače. Uživatel počítače PC si pak z něj může otevírat relace na Unixovském počítači a pracovat ze svého počítače PC přesně stejným způsobem, jako kdyby pracoval u skutečného terminálu Unixovského počítače (viz obrázek 1).

K realizaci takovéhoto řešení, kterému se říká terminálová emulace, je zapotřebí především vhodné propojení obou počítačů (ke kterému se dostaneme později). Na straně počítače PC je pak nutný aplikační program, který umožňuje používat klávesnici a obrazovku počítače PC stejně, jako klávesnici a obrazovku skutečného Unixovského terminálu, a dokáže také vhodně komunikovat s příslušným Unixovskýám počítačem. Na straně Unixovského počítače musí být spuštěn zvláštní systémový proces (tzv. démon), který s aplikačním programem na počítači PC komunikuje. Tento démon je ale dnes standardní součástí prakticky všech Unixů. Pro úplnost je vhodné ještě dodat, že právě popsaný způsob interoperability je možný i mezi dvěma Unixovskými počítači. Filosofie Unixu totiž počítá s tím, že jednotlivé počítače budou navzájem propojeny, a že terminály jednoho počítače budou moci být používány v roli emulovaných terminálů jiných Unixovských počítačů - tedy vlastně k tomu, aby uživatel, pracující u terminálu jednoho Unixovského počítače, mohl z tohoto terminálu pracovat i s jiným počítačem stejně, jako kdyby seděl přímo u jeho skutečného terminálu. Uživatel jednoho Unixovského počítače si tedy může ze svého terminálu otevírat relace i na jiných, "vzdálených" Unixovských počítačích (viz opět obrázek 1). Jelikož relace se v prostředí Unixu otevírá příkazem "login" pro přihlášení se do systému, je takováto možnost otevření vzdálené terminálové relace v angličtině označována jako "remote login". Aplikační program, prostřednictvím kterého lze vzdálené terminálové relace v prostředí Unixu otevírat ( a samozřejmě i ukončovat), se jmenuje telnet nebo rlogin, a je dnes jednou ze základních aplikací Unixu, která je standardní součástí prakticky všech verzí Unixu.

Odlišné systémy souborů

Obrázek 2.
Obr. 2.: Představa systému souborů v MS DOSu
Způsob hospodaření a práce se soubory je pro každý operační systém klíčovou záležitostí, MS DOS a Unix nevyjímaje. Oba tyto operační systémy umožňují vytvářet hierarchické systémy souborů se stromovitými strukturami jednotlivých adresářů. Oba se také shodně dívají na zařízení, která jsou schopna fungovat jako nosiče souborů: například na disketové jednotky, pevné disky (celé nebo jejich části, organizované jako tzv. partitions), případně RAM disky apod.) - každé z těchto zařízení je z tohoto pohledu nositelem (dílčího) systému souborů (opět se stromovitou strukturou). Rozdíl je ovšem v tom, jak je s těmito dílčími systémy souborů dále nakládáno. MS DOS je nespojuje do větších celků, ale chápe každý z těchto systémů souborů jako samostatný a vztažený k příslušnému zařízení.

Obrázek 3.
Obr. 3.: Představa operace mount
Každý soubor je pak vlastně určen třemi "souřadnicemi": zařízením (anglicky: drive), na kterém se nachází, dále tzv. přístupovou cestou (tj. posloupností adresářů, kterou je třeba projít od kořene až do toho adresáře, ve kterém se soubor nachází), a konečně svým jménem (a příponou). Podle konvence je první disketová jednotka označena jako zařízení A:, případná druhá disketová jednotka jako zařízení B:, první pevný disk resp. první partition prvního pevného disku jako zařízení C: atd., podle konkrétní konfigurace - viz obrázek 2.

Naproti tomu operační systém Unix spojuje všechny dílčí systémy souborů do jediného výsledného systému souborů, ve kterém nadále zachovává přísnou stromovitou strukturu. Unix je za tímto účelem vybaven operací "mount" (doslova: přimontuj, připevni), jejíž podstatu naznačuje obrázek 3: dva systémy souborů se spojí tak, že list jednoho splyne s kořenem druhého. Tímto způsobem je pak v Unixu sestaven jediný výsledný systém souborů - viz obrázek 4.

Komu patří soubory?

Obrázek 4.
Obr. 4.: Představa systému souborů v Unixu
Další odlišnost v pohledu na soubory a adresáře vyplývá z jednouživatelské resp. víceuživatelské povahy námi zvolených operačních systémů. Jelikož Unix je víceuživatelský operační systém, musí počítat s tím, že jednotlivé soubory mají své konkrétní majitele, a ti mohou chtít omezit jiným uživatelům přístup ke svým souborům. Aby však nebylo nutné přesně specifikovat přístupová práva k souborům pro všechny uživatele jednotlivě, je v Unixu zaveden pojem skupiny uživatelů, a přístupová práva se pak definují pro celou skupinu najednou. Každý uživatel je přitom členem jedné (primární) skupiny, a pro každý soubor jsou definována přístupová práva zvlášť pro vlastníka souboru, dále pro skupinu, do které tento uživatel patří, a konečně pro všechny ostatní uživatele. Zakázat či povolit je přitom možné čtení, zápis a provedení (spuštění) souboru. Přístupová práva se ovšem nedefinují jen pro soubory, ale i pro adresáře. Právo provedení (spuštění) pak v případě adresáře reguluje "vstup" do něj, a následně pak i do všech podadresářů tohoto adresáře.

Jestliže MS DOS je jednouživatelským operačním systémem, může vycházet z představy, že všechny soubory patří automaticky tomuto jedinému uživateli, kterého pak ale nemusí vůbec uvažovat. Je příznačné, že MS DOS pojem uživatele vlastně ani vůbec nezná. Jednotlivé soubory v MS DOSu nemají definována přístupová práva, ale pouze několik atributů, pomocí kterých lze mj. chránit soubor proti přepisu (přesněji: lze jej prohlásit za soubor pouze pro čtení (read-only)).

Další odlišností obou námi zvolených operačních systémů jsou také konvence pro tvorbu jmen souborů. Zatímco v MS DOSu může mít jméno souboru až osm znaků (a přípona tři), Unix je v tomto ohledu benevolentnější, a připouští nejen delší jména a přípony, ale umožňuje v nich používat také více speciálních znaků, které naopak v DOSu nejsou přípustné. Podstatná je také skutečnost, že Unix rozlišuje velká a malá písmena ve jménech a příponách souborů i adresářů, zatímco MS DOS nikoli.

Transparentní a netransparentní sdílení souborů

Zamysleme se nyní nad tím, jakým principiálním způsobem může mít počítač s MS DOSem přístup k souborům Unixovského počítače a naopak.

Možnosti jsou v zásadě dvě, a lze je charakterizovat jako transparentní a netransparentní.

Představme si, že naše dva počítače jsou vhodným způsobem propojeny, a že na obou z nich je k dispozici systémový aplikační program (utilita), schopný přenést zadaný soubor z jednoho počítače na druhý. Uživatel, pracující na jednom počítači, si pomocí tohoto systémového programu může přenést z druhého počítače na svůj počítač soubor který potřebuje, zde jej zpracovat, a případně jej zase zase obdobným způsobem přenést zpět. Tento způsob lze charakterizovat jako netransparentní, neboť při něm uživatel "ví" o tom, že určitý soubor je umístěn na jiném počítači, a v důsledku toho s ním pracuje jinak, než se soubory na svém počítači. Pro uživatele je tedy tento způsob poněkud pracnější, na druhé straně je ale zase implementačně jednodušší. Snáze se také vyrovnává s různými odlišnostmi v pohledu na soubory v různých systémech - například problém s nepřípustností některých Unixovských jmen souborů v MS DOSu lze jednoduše vyřešit tak, že při přenosu z Unixu do DOSu musí uživatel explicitně zadat, pod jakým (DOSovským) jménem má být soubor přijat.

Jako transparentní sdílení souborů lze chápat takovou situaci, kdy se soubory jiného počítače "tváří" přesně stejně, jako soubory daného počítače, a lze s nimi také přesně stejným způsobem pracovat. Tedy situaci, kdy pro uživatele ani pro jeho aplikační programy vlastně není žádný rozdíl mezi soubory na daném počítači a soubory na počítači vzdáleném. Jaké jsou ale možnosti konkrétní realizace této představy?

V případě, že počítač PC s MS DOSem chce transparentně sdílet část souborů Unixovského počítače, lze vhodným programovým a hardwarovým řešením dosáhnout toho, že příslušná část adresářového stromu Unixovského počítače se DOSovskému počítači bude jevit jako další samostatné zařízení - viz obrázek 5. Počítač s MS DOSem pak může pracovat se soubory na tomto (virtuálním, nikoli skutečném) zařízení stejně, jako se soubory na jiném ze "svých" zařízení.

Obrázek 5.
Obr. 5.: Představa zpřístupnění souborů Unixovského počítače počítači s MS DOSem
Při takovémto transparentním sdílení Unixovských souborů počítačem PC s MS DOSem však vznikají také určité problémy. Jedním z nich je problém se jmény souborů: některá jména (a přípony), které jsou v Unixu přípustná, v MS DOSu již přípustná nejsou. Má-li však být Unixovský soubor "viditelný" i z MS DOSu, musí být jeho jméno vhodně transformováno - zkráceno na maximální počet možných znaků, nepřípustné znaky musí být nahrazeny jinými znaky, které v MS DOSu přípustné jsou atd. Musí tedy existovat přesná pravidla oboustranné transformace, která navíc musí být jednoznačná (aby se dva různé Unixovské souboru "nepromítly" do MS DOSu se stejným DOSovským jménem).

Dalším problémem je například otázka zachovávání vlastnických práv k souborům. V Unixu můžete editovat soubor, jehož vlastníkem je jiný uživatel, ale ke kterému máte právo zápisu. I po dokončení vaší editace však soubor nemění svého vlastníka. Naopak v MS DOSu většina editorů pracuje takovým způsobem, že zruší starou záložní kopii editovaného souboru (soubor .BAK), ze stávající verze udělá novou záložní kopii, a novou verzi, vzniklou editací, vytvoří jako zcela nový soubor. Jeho vlastníkem je pak ovšem ten, kdo s editorem pracoval, a nikoli již vlastník původního editovaného souboru.

Pokud jde o transparentní sdílení souborů MS DOSu Unixovským počítačem, zde je vzhledem k větší obecnosti Unixu problémů výrazně méně. Například každé jméno souboru, přípustné v MS DOSu, je současně přípustné i v Unixu (naopak samozřejmě ne). Pokud jde o formu zpřístupnění DOSovských souborů, vzhledem k filosofii Unixu zde připadá v úvahu pouze připojení systému souborů na některém ze zařízení počítače PC (případně podstromu tohoto systému souborů) pomocí operace mount do některé části stávajícího adresářového stromu Unixovského počítače.

Ta tiskárna je moje !!

Vedle souborů jsou dalším žhavým kandidátem na vzájemné zpřístupnění mezi platformami také různá fyzická zařízení, především pak tiskárny. Máte-li například k Unixovském počítači připojenu výkonnou laserovou tiskárnu s Postscriptem, zcela zákonitě na ní budou chtít tisknout i uživatelé počítačů PC s MS DOSem. Podívejme se proto ještě, v čem se liší pohled obou námi zvolených platforem právě na tiskárny.

V MS DOSu se uživatel, resp. jeho aplikační úloha, může chovat vzhledem k tiskárně velmi sobecky - může si myslet, že ji má jen a jen pro sebe. Tak to ostatně vyplývá z jednoúlohové a jednouživatelské povahy MS DOSu. Kterákoli úloha si tudíž v MS DOSu může dovolit tisknout na tiskárně, kdykoli si vzpomene. Kdyby se ale takto chovaly aplikační programy i v Unixu, dopadlo by to špatně. Výsledný tisk by představoval pěkný "guláš" - výstupy jednotlivých úloh by byly téměř náhodně promíchány, například jedno písmeno od jedná úlohy, pak tři písmena od jiné, další znak zase od jiné úlohy atd. Příčinou je právě víceúlohový charakter Unixu, který jednotlivé úlohy (přesněji: procesy) nechává běžet vždy po určitý časový interval (řádově desítek až stovek milisekund), a pak je vystřídá další úlohou (procesem). Kdyby pak každá úloha posílala svůj výstup na tiskárnu přímo, docházelo by vzhledem ke střídavému běhu jednotlivých úloh i k promíchání jejich výstupů na tiskárnu.

Řešením je technika, označovaná obecně jako spooling. Je založena na myšlence, že jednotlivé úlohy neposílají svůj výstup přímo na tiskárnu, ale nejprve do vhodného souboru (samozřejmě každá do jiného). Teprve v okamžiku, kdy nějaká úloha dokončí svůj výstup na tiskárnu (tj. naplní svůj soubor s výstupními daty), je příslušný soubor přenesen na tiskárnu a skutečně vytištěn. Tuto fázi ale již zajišťuje operační systém, a nikoli úloha sama. Pouze operační systém totiž má potřebný přehled o tom, zda je právě tiskárna používána, a které úlohy na ní chtějí tisknout. Je tedy na operačním systému, aby evidoval jednotlivé požadavky na tisk, přebíral soubory s výstupními daty od jednotlivých úloh, a předával je tiskárně k vytisknutí - což v praxi znamená vést frontu těchto požadavků a řadit do nich jednotlivé soubory.

Co z výše uvedených skutečností vyplývá pro možnost sdílení tiskáren mezi různými platformami? Především to, že když se o jednu tiskárnu mohou ucházet alespoň dva zájemci, je nutné používat techniku spoolingu. A to platí samozřejmě i pro úlohy, které běží pod MS DOSem na počítači PC. Jejich sobeckému přístupu k tiskárně, kterou obvykle považují za své výhradné vlastnictví, lze naštěstí vyhovět technickým řešením. Techniku spoolingu lze totiž v MS DOSu realizovat tak, aby to pro příslušnou úlohu nebylo vůbec viditelné. To již ale úzce souvisí s konkrétním způsobem vzájemného propojení jednotlivých počítačů a způsobem jejich vzájemné komunikace. Ale tím se bude zabývat příští pokračování.