\"/
\"/ \"/    

Operační systém UNIX

Luděk Matyska, ÚVT MU
Ročník II - číslo 2, listopad 1991
Citace: L. Matyska. Operační systém UNIX. Zpravodaj ÚVT MU. ISSN 1212-0901, 1991, roč. II, č. 2, s. 5-8.
Tematické zařazení: Operační systémy
 předchozí článek | následující článek 

Úvod

V příspěvku UNIX - ano či ne ? (Zpravodaj 3/I) jsme měli možnost nahlédnout do historie a současnosti vývoje operačního systému UNIX, o něm samotném jsme se však prakticky nic nedověděli. Tomu by měl alespoň trochu odpomoci tento příspěvek, věnovaný přehledu základních vlastností operačního systému UNIX.

Vlastnosti UNIXu

MS DOS je monouživatelský jednoúlohový systém - s počítačem může pracovat pouze jediný uživatel a ten si může v daném okamžiku spustit jen jedinou úlohu. OS/2 je jednouživatelský víceúlohový systém - s počítačem opět může pracovat pouze jediný uživatel, avšak může spouštět více úloh souběžně. UNIX je skutečný víceúlohový víceuživatelský operační systém - s počítačem, na kterém je UNIX provozován, může současně komunikovat více uživatelů prostřednictvím terminálů, přitom každý uživatel má dojem, že s počítačem pracuje sám. Jeden uživatel může být na počítači přihlášen vícekrát (rozdíl např. od systému VM pro sálové počítače firmy IBM) a může spouštět více úloh současně.

Operační paměť

Všechny moderní verze UNIXu jsou 32 bitové, a pokud to technické prostředky umožňují, pracují s virtuální pamětí. To znamená, že jsou schopny využívat v maximální míře všech možností nabízených současnými procesory a přitom nejsou omezeny reálnou pamětí, která je na daném počítači k dispozici (případně jsou schopny okamžitě využít veškerou paměť, dodatečně instalovanou na vašem počítači). S tím souvisí i dynamická správa paměti - UNIX přiděluje úlohám (nazývaným procesy) paměť na jejich žádost, paměťové nároky lze přizpůsobit vstupním datům programu a to v konečném důsledku vede k lepšímu hospodaření s dostupnou pamětí. Přitom veškerý hardware, na kterém je UNIX provozován (s výjimkou hříčky XENIX pro Intel 8086), má ochranu paměti, UNIXem samozřejmě využívanou. Běžné uživatelské programy dostanou paměť přidělenu operačním systémem a jakýkoliv pokus o čtení či zápis mimo přidělený rozsah (ať již záměrný, nebo způsobený chybou v programu) vede k okamžitému zastavení úlohy (nikoliv však celého operačního systému). Jednotliví uživatelé tak mohou ladit své úlohy, aniž by přitom ohrožovali práci jiných, kteří s nimi počítač současně sdílejí.

Systém souborů a periferie

Základní jednotkou systému souborů je soubor. V UNIXu rozeznáváme tři základní typy souborů:

Obyčejné soubory představují vlastní data a programy, se kterými běžný uživatel pracuje. Každému souboru přísluší následující atributy:

Jméno souboru je v systémech souborů UNIXu System V tvořeno prakticky libovolnou posloupností nejvýše 14 znaků (tečka ve jméně je jen jeden možný znak, soubory mohou, ale nemusí mít ve jméně tečku a mohou mít ve jméně těch teček více, např. a.b.c.d.e..f je korektní jméno souboru). V BSD UNIXu (a rovněž v UNIXu System V Release 4) může mít jméno souboru až 255 znaků.

Ve víceuživatelských systémech je důležitou podmínkou provozovatelnosti ochrana souborů před neoprávněnou manipulací. Z hlediska oprávněnosti manipulace se soubory se v UNIXu pracuje se třemi úrovněmi - majitel souboru (většinou ten, kdo soubor vytvořil), skupina uživatelů (každý uživatel je členem nejméně jedné skupiny uživatelů) a ostatní. Pro každou z těchto úrovní je možno specifikovat práva pro

V každé instalaci UNIXu je definován jeden speciální uživatel, tzv. super-uživatel (super-user), který je zároveň administrátorem systému a jehož práva nelze omezit (avšak ani super-uživatel nemůže přímo spustit program, k němuž nikdo nemá právo spuštění).

Běžné default nastavení přístupových práv je čtení/zápis pro uživatele, čtení pro skupinu a nic nebo čtení pro ostatní. Uživatel může změnit oprávnění pouze u vlastních souborů.

Další skupinu souborů tvoří adresáře. Tyto soubory obsahují (konceptuálně) jiné soubory (a adresáře). I adresáře mají jména a lze jim definovat přístupová práva (pouze právo spuštění je zde nahrazeno právem "otevření" adresáře, tj. právem sestoupit do tohoto adresáře a pracovat v něm). Právo zápisu do adresáře odpovídá možnosti mazat jednotlivé soubory (a podadresáře) v něm obsažené.

Každému perifernímu zařízení (floppy a pevným diskům, tiskárnám, síťovým kartám, modemům, terminálům, ale i systémové paměti atd.) odpovídá v UNIXu jeden nebo více souborů zařízení. Tyto speciální soubory však nepředstavují přímo fyzická data, ale jsou pod nimi skryty ovladače těchto periferních zařízení, jejichž prostřednictvím se lze k příslušným datům dostat, případně lze jimi data odeslat (tiskárna). Z pohledu uživatele však jde o soubory, tzn. lze s nimi pracovat prakticky stejným mechanismem, jako se pracuje s obyčejnými soubory (je např. možno přečíst si obsah paměti, poslat data na obrazovku apod.). Ochrana periferních zařízení proti neoprávněným přístupům (např. pokus o zápis do paměti by zřejmě ve většině případů skončil katastrofou, ostatně ani čtení by nepřispělo k bezpečnosti uživatelů) je řešena stejně jako ochrana souborů - systémem práv přístupu. Soubory odpovídající periferním zařízením lze "otevírat" a "zavírat", lze je "číst" i do nich "zapisovat" (máme-li samozřejmě oprávnění pro tuto operaci a je-li tato operace na dané periferii smysluplná).

Jednotlivé adresáře tvoří v UNIXu hierarchickou strukturu, běžně označovanou jako systém souborů (filesystem). Každý systém souborů začíná speciálním adresářem / (lomítko, které je používáno jako oddělovač jmen podadresářů), nazývaným kořen (root). Jeden fyzický systém souborů nemůže přesahovat hranice fyzického zařízení (disku, diskety), na kterém je realizován. Uživateli je však k dispozici jediný logický systém souborů, který může být tvořen více fyzickými systémy. V takovém případě jeden fyzický systém souborů (ten, v němž je binární obraz operačního systému) tvoří základ, na nějž jsou postupně připojovány (montovány, mount) ostatní fyzické systémy souborů. Toto připojení spojí zvolený adresář základního systému s kořenem jiného systému a po úspěšném dokončení operace montování systému souborů je jakýkoliv přístup do původního adresáře základního systému chápán jako pokus o přístup do tohoto připojeného systému souborů. Lze připojit prakticky neomezené množství systémů souborů a tím vytvářet libovolně velké logické systémy, přístupné uživateli (který si většinou ani není vědom hranic jednotlivých systémů souborů). Při zapojení UNIXovských počítačů do sítí je možno obdobným způsobem připojovat i nelokální systémy souborů.

Uživatelský interface

Jednou z výtek, se kterou se v souvislosti s UNIXem v našich krajích setkáváme, je jeho údajně "nepříjemné" uživatelské prostředí. UNIX vznikal v době, kdy grafické terminály byly velmi drahou raritou, kterou měli k dispozici pouze ti, kteří interaktivní grafický vstup a výstup skutečně potřebovali (to ostatně leckde platí dodnes). Základní verze UNIXu byly proto orientovány především na alfanumerické (ne-grafické) terminály, kde naopak bylo vykonáno nemálo práce pro unifikaci přístupu k nejrůznějším typům terminálů, takže v současnosti se aplikační programy prakticky nemusí starat o specifika terminálů, ze kterých jsou spouštěny (součástí distribuce UNIXu je rozsáhlá knihovna terminálů s jednotným aplikačním rozhraním). Výhodu použitelnosti programů na více typech terminálů většina uživatelů u nás nevidí jako přínos (pro prakticky nulové zkušenosti s prací u alfanumerických terminálů), a naopak UNIX je v našich krajích většinou spojován s možností pouze znakově-orientovaného prostředí.

S nástupem osobních počítačů a pak především pracovních stanic s vysoce kvalitními grafickými obrazovkami prudce vzrostl tlak uživatelů na kvalitní grafické rozhraní. Vývoj UNIXu ani v tomto směru nezůstal pozadu a velmi brzy vzniklo grafické prostředí X/Window (neplést si s MS WINDOWS pro MS DOS), jehož vývoj probíhal na MIT. Toto grafické prostředí pracuje systémem klient/server, kde jednotlivé grafické terminály vystupují v roli klientů vůči UNIXovskému centrálnímu počítači-serveru1. Terminály jsou přitom inteligentní - přebírají většinu skutečně grafických funkcí (jako vykreslení základních geometrických obrazců, šrafování či plnění ploch, generování písma, ...) a snímají z centrálního počítače značnou část výpočetně náročných grafických funkcí. Činnost centrálního počítače je pak omezena spíše na globální manipulaci s objekty na obrazovce, což umožnilo vytvořit jednotné programátorské rozhraní pro nejrozmanitější typy technických prostředků (jako terminály lze sice použít počítače PC-AT, k dispozici jsou však kvalitní X/Window terminály, osazené buď speciálním grafickým procesorem nebo 32bitovým mikroprocesorem alespoň třídy Motorola 68020, ovšem v ceně kolem $3000), aniž by bylo třeba cokoliv měnit na programech používajících X/Window rozhraní. V současnosti je nejvíce rozšířena Version 11 Release 3 a 4 tohoto rozhraní (značeno X11.3 a X11.4) a v průběhu léta 1991 byla uvedena na trh i release 5. Vlastní X/Window představuje především rozhraní pro programátory, skutečné uživatelské rozhraní je pak konstruováno nad X/Window s pomocí celé řady pro tento účel vyvinutých nástrojů (widgets).

Kromě X/Window a jeho nadstaveb vznikla samozřejmě řada obdobných grafických prostředí, jako je SunView firmy Sun, NeWS pracující v PostScriptu, Motif od OSF či nejnovější NewWawe firmy Hewlett-Packard. Všechna tato rozhraní pracují systémem okének a jídelníčků, jsou ovládána myší nebo přímo z klávesnice a vzhledem k víceúlohovému charakteru samotného UNIXu umožňují zcela bez omezení spouštět v jednotlivých oknech aplikace, které pracují paralelně. Vzhledem k výrazně vyššímu výkonu běžných UNIXovských počítačů ve srovnání s klasickými osobními počítači umožňují tato prostředí práci s grafickými terminály v kvalitě, která předčí jak grafická rozhraní známá z MS DOSu, tak i Presentation Manager OS/2 (to je dáno i podstatně kvalitnějšími obrazovkami, používanými v této souvislosti). Všeobecně je kvalita UNIXovského grafického rozhraní považována za srovnatelnou až lepší než grafické rozhraní počítačů Macintosh firmy Apple, představujících špičku v oblasti osobních počítačů.

Přenositelnost

Jednou z nejvýznamnějších vlastností UNIXu je jeho rozšíření na nejrozmanitějších typech počítačů. S verzemi UNIXu je možno se setkat na osobních počítačích (životaschopné verze XENIXu jsou k dispozici dokonce i pro PC/AT), pracovních stanicích (především firmy Sun, jejichž verze UNIXu pod názvem SunOS velmi přispěla k pronikavému úspěchu UNIXu v posledních letech), minipočítačích (VAX, AT&T, IBM), ale i na velkých sálových počítačích (VAX 9000, ICL) a dokonce i na superpočítačích (Fujitsu, Cray). K tomuto rozšíření velmi podstatnou měrou přispěl fakt, že celých 90% tohoto operačního systému je napsáno v jazyce vysoké úrovně C, a rovněž licenční politika AT&T, která zpřístupnila zdrojové texty2, čímž umožnila výrobcům počítačů přenést UNIX co nejrychleji na nové architektury.

Toto rozšíření UNIXu jej činí velmi perspektivním operačním systémem prakticky pro všechny typy aplikací - vývoj, údržba i používání jakéhokoliv software probíhá pod jediným operačním systémem, a přitom na nejrůznějších počítačích. Navíc vývoj jakéhokoliv software pro jednu verzi UNIXu velmi pronikavě usnadní přenos na jiné verze, a tedy i na jiné počítače. Z uživatelského pohledu je to rovněž velkým přínosem - není nutno se učit různé příkazy pro práci s různými počítači a jejich operačními systémy, na všech počítačích, které jsou uživateli k dispozici, je (nebo alespoň by mělo být) prakticky jednotné vývojové i aplikační prostředí. Navíc aplikace napsané na jednom typu počítače bude možno bez velkých problémů přenést i na jiné počítače (každý, kdo se snažil o přenos netriviálních programů napsaných např. ve FORTRANu pod MS DOSem pod FORTRAN na IBM, potvrdí, že by mu to ušetřilo dny a týdny vysilující, v podstatě zcela zbytečné práce).

Závěr

Přes svůj relativně vysoký věk je UNIX nesporně moderní operační systém, který si již jednoznačně prosadil svou pozici, zejména prostřednictvím výkonných pracovních stanic. Investice do UNIXu (jak finanční, tak v podobě zaškolení) se zcela jistě vyplatí všem, kteří počítají s intenzivním využíváním výpočetní techniky a pro jejichž záměry je kabát MS DOSu již příliš těsný (ať z důvodů paměťových, výkonnostních či jiných). Je to rovněž systém volby pro všechny, kteří počítají s využíváním hardwaru různé úrovně - UNIX je implementován (smysluplně) od PC-386 až po superpočítače. Operační systém UNIX přitom nabízí i mohutné prostředky počítačové komunikace (od elektronické pošty až po distribuované systémy se sdílením souborů) a jeho vlastnosti ho předurčují stát se univerzálním operačním systémem let devadesátých (a možná i počátku příštího tisíciletí).

UNIX je skutečný operační systém se všemi tomu odpovídajícími klady a zápory a jako takový vyžaduje jistou údržbu (tj. něco, co MS DOS prakticky nepotřebuje). V některém z dalších čísel Zpravodaje si proto povíme více o tom, s čím musí počítat každý uživatel, který se rozhodne vyměnit svůj osobní počítač s MS DOSem za počítač pracující pod UNIXem.

setting
1 Pro zmatení pojmů je v X/Window zavedena opačná terminologie - na centrálním počítači běží vlastní úloha (klient), která žádá grafické terminály (servery) o vstupně/výstupní služby.
... zpět do textu
2 Samozřejmě ne zadarmo, dnešní cena licence pro školská pracoviště je cca $43 000.
... zpět do textu
Zpět na začátek
ÚVT MU, poslední změna 14.11.2011