VyÜlo v Φasopise: Computer Echo
╚φslo:1/93
Datum:1993
Strana:4-9
Rubrika/kategorie: Interoperabilita

zp∞t do archivu Φlßnk∙ | rejst°φk | nßsledujφcφ Φlßnek

Ji°φ Peterka

Interoperabilita

╚ß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φ.


zp∞t do archivu Φlßnk∙ | rejst°φk | nßsledujφcφ Φlßnek
Tento Φlßnek m∙₧e b²t voln∞ Üφ°en, pokud se tak d∞je pro studijnφ ·Φely, na nev²d∞leΦnΘm zßklad∞ a se zachovßnφm tohoto dov∞tku. Podrobnosti hledejte zde, resp. na adrese http://archiv.czech.net/copyleft.htm