-----
---
   
  Operační systém UNIX minimalizovat/úvod maximalizovat 

O Unixu toho bylo jistě napsáno už hodně, avšak pro ty, kdo postrádá ucelený přehled o Unixu, a pro všechny, kdo se chtějí s Unixem lépe seznámit, tu mám článek, který vás do některých tajů Unixu zasvětí. Nejprve si povíme něco o historii Unixu a systémech na něm založených, potom se podíváme na jeho rozšíření a nahlédneme i do principů a stavby Unixu.

Máme-li dnes k dispozici počítač pracující pod některou verzí operačního systému Unix, můžeme jej obvykle použít jako server počítačové sítě na bázi UNIXu. Stačí k němu připojit vhodným způsobem pracovní stanice a na nich pak spustit vhodný program, který bude emulovat terminál k tomuto UNIXovému serveru. Práce s takovýmto terminálem pak bude mít všechny vlastnosti práce s operačním systémem UNIX. I proto je dnes Unix tak oblíbený a používaný na mnohých serverech. V současnosti existuje několik operačních systémů na tomto principu. Mnohé z nich jsou komerční produkty světových firem (Sun - SUN OS, Solaris (verze 8), Hewlett Packard - HP UX (11i), IBM - AIX, SGI-Irix, SCO- SCO Unix, Novell - UnixWare (7), True64 Unix, Mac OS X (verze 10…), BSD atd.). Pro běžného uživatele je ale dostupná freewarová verze špičkového Unixu nazvaného Linux podle svého tvůrce Linuse Thorvalda. Tento systém lze získat na mnoha uzlech sítě Internet, nebo jako freeware na CD-ROMu či DVD.

Historie Unixu

Jedním z populárních a zajisté jedním z nejlepších operačních systémů je Unix. Je rozšířen zejména na akademické půdě a ve specializovaných RISCových systémech (na serverech). Předchůdcem UNIXu byl nejdříve systém Multics, který měl obsluhovat tisíce současně připojených uživatelů. Pro svou složitost a finanční náročnost byl zrušen, stal se však základem pro budoucí UNIX.

Systém UNIX byl vyvinut v roce 1969 v Bell Laboratories firmy AT&T programátory Thompsonem a Denisem Ritchiem. UNIX byl podstatně jednodušší (z toho bylo také odvozeno jméno UNICS, které se později přeměnilo na UNIX). První verze Unicsu byly psány v assembleru, poté v jazyce BCPL (od Bucephalus - jméno koně Alexandra Velikého :-)). Hlavním důvodem masového rozšíření bylo to, že r. 1972 byl zdrojový text přepsán v programovacím jazyce C, což umožnilo jeho nasazení na více platformách.

UNIX byl vyvíjen ve verzích V1-V10, přičemž ve verzi V6 se vývoj rozdělil do dvou vývojových větví, a později tak vzniklo mnoho "odnoží" UNIXu. Mezi nejdůležitější větev patří řada BSD (Barkeley Software Distribution). Z ní se vytvořilo mnoho dalších systémů (SunOS, Mach, NeXT STEP, Mac OS X…). Jednotlivé varianty od sebe přebíraly zdrojový kód a byly navzájem více či méně kompatibilní. Druhou větev vyvíjela skupina Unix System Laboratories (USL), od které pochází řada System V (Unix System III, System V Release 4, SCO Unix, UnixWare, HP UX, IBM AIX, A/UX, OSF/1...). Rozdíly mezi oběma řadami postupně mizí, což je nejvíce patrné na jednotné platformě LINUXu.

Komerční distribuce Unixu byly zpočátku velmi drahé, některé klony se však začaly vyvíjet i v nekomerčním prostředí. Mezi výrobce volně šiřitelného Unixu (Unix GNU HURD) patří např. nadace FSF (založená Richardem M. Stallmanem), která vytvářela i volně šiřitelné programy pro UNIX. O rozvoj UNIXu se dále zasloužil Linus Torvalds, který r. 1991 začal tvořit jádro unixovského systému pro počítače řady 386. Zdrojové kódy dával volně k dispozici na internetu, a díky tomu přilákal mnoho internetových hackerů (v dobrém slova smyslu), kteří mu pomáhali vytvořit současný LINUX. Koncem r. 1993 mohl LINUX soutěžit ve stabilitě a spolehlivosti s mnohými komerčními UNIXy. Společně s vývojem LINUXu se dále zdokonalovala řada BSD, z které se vytvářely další nekomerční UNIXy. Známé jsou např. verze NetBSD, OpenBSD (1995, důraz na bezpečnost), FreeBSD. BSD se však nikdy neprosadily tak jako LINUX. Původně byl Unix určen pro střediskové a minipočítače. Dnes je možné Unix provozovat téměř na všech počítačích.

Úspěch UNIXu tkví především v jeho stabilitě a bezpečnosti, která je zabezpečena samostatností všech unixovských programů a jejich dokonalou spoluprácí. Všechny programy lze spouštět na jediné příkazové řádce (s mnoha parametry), programy fungují automaticky a nevyžadují vstupy od uživatele. Programy si navzájem předávají vstupy a výstupy a jejich kombinací lze sestavovat složité operace bez nutného zásahu obsluhy. S daty lze v UNIXu provádět prakticky jakékoliv operace a zároveň lze snadno přistupovat k naprosté většině zdrojů.

Pro ujednocení mnoha doplňkových funkcí, volání a démonů vznikla řada standardů POSIX, které definují systémová volání, knihovní funkce a chování programů v "POSIX kompatibilním" operačním systému. Nové standardy vnesly do světa UNIXu řád a zabezpečily lepší konverzi aplikací na různé unixovské platformy.

Základní poznatky o Unixu

Obecně řečeno Unix je multitaskingový, víceuživatelský operační systém (více uživatelů je podporováno i při práci na jednom počítači) s propracovanou hierarchickou strukturou. Celý systém se skládá ze tří vrstev:

  • jádro - část operačního systému závislá na hardwarové platformě, se kterou také přímo komunikuje. Mimo to se jádro stará o správu procesů a přidělování systémových zdrojů vyšším vrstvám.
  • systémová volání - definují aplikační rozhraní (API) pro programy využívající jádra systému.
  • nadstavba - samotné aplikační programy (např. editory)

Nároky UNIXovských systémů:

Unix je možné provozovat i na počítačích s procesorem Intel, nejméně však s procesorem 286. Právě pro tento procesor byl na počátku 80. let vyvinut systém XENIX (Microsoft). Dalšího rozvoje dosáhl Unix pro osobní počítače až s příchodem procesoru 386, který již poskytuje dostatečný výkon. Minimální konfigurace pro Unix je tedy procesor 386 (lépe vyšší), 8 MB RAM (lépe 16 MB) a matematický koprocesor. Vynikajícím freewarovým operačním systémem je Linux dostupný volně přes Internet, nebo u některých distributorů freeware. Jedná se o propracovaný systém pracující (podle jádra) na mnoha platformách včetně PC.

Grafická uživatelská rozhraní:

Obdobně jako se ostatní operační systémy přecházejí na grafická uživatelská rozhraní (GUI), tak i Unix přichází s vlastními standardy. Ty jsou ovšem postiženy nejednotností a nekompatibilitou (tak jak je na tomto poli zvykem). Přesto vzniklo několik standardů, z nichž nejvýznamnější jsou OSF/Motif nebo X/Open Look. Tyto uživatelská rozhraní se spojují ve standardu X-Windows, což je uživatelsky mnohem přívětivější prostředí, než příkazová řádka.

UNIX a jeho uplatnění na trhu

Dnes se pomalu se začíná upouštět od komerčních verzí UNIXu, velkou konkurenci jim totiž představují systémy Nowell Netware (méně úspěšné), OS/2, Windows NT, Windows 2000 a také freewarový Linux. Komerční verze se UNIXu se používaly především pro svou přenositelnost, výkonnost, stabilitu a vysokou technologickou úroveň (64bitová architektura). Dominovaly u náročných informačních systémů s architekturou klient-server a RICS procesory a u rozsáhlých grafických aplikací. Byly však natolik předražené, že se firmy stále více poohlížely po levnějších systémech od Microsoftu nebo freewarových UNIXech. Komerční UNIXy stále představují dominantní síťovou platformu ve středních a velkých firmách. Velký podíl na tom má prosperující firma Sun Microsystems. Počet serverů s Windows NT a 2000 ale narůstá mnohem rychleji (tvoří už přes 1/4 používaných systémů). Stále roste i obliba systému Linux (využití zatím kolem 10%).

V tuzemsku se UNIX rozšiřoval díky strukturním změnám ve společnostech a celkovém hospodářství po r. 1989 pomaleji, upřednostňovány byly také levnější OS Microsoftu. Microsoftu navíc nahrával nárůst výkonu procesorů s architekturou CISC (procesory od Intelu). Unix podporovaly především telekomunikační firmy, stavební spořitelny, plynárenské firmy nebo hutě. Mezi dodavateli neintelovských platforem vévodí firmy IBM, Compaq a Hewlett Packard (OS Digital UNIX, true64 Unix, OpenVMS, OS/400, servery firmy Sun Microsystems).

Principy fungování UNIXu

Po nabootování běží v systému jen jádro (kernel). Jádro pak samo spustí první uživatelský program, kterému vyhradí potřebné prostředky a předá mu řízení. Běh programu je pak jádrem usměrňován jedině, když se musí obsloužit i jiné programy, nebo když je nutné obsloužit periferii. Program může po jádru vyžadovat nějakou systémovou službu, o kterou se přihlásí systémovým voláním.

Běžícím aplikačním programům se v UNIXu říká procesy. Proces se skládá z identifikačních údajů v jádře, kódu v operační paměti a z dalších dat programu. Procesy mohou pomocí systémového volání vytvářet další procesy a stanovovat, jakým programem budou obsluhovány. (=> procesy rodičovské a procesy dceřinné). Každý proces a datový soubor má svého majitele, kterým může být kterýkoliv registrovaný uživatel (-> přístupová práva k procesu, souboru, vzájemná přístupová práva procesů a souborů).

První proces po startu systému se nazývá vždy init a jeho majitelem je root (superuživatel, UID=0). Proces init pak vytváří řadu dalších procesů k poskytování komplexních systémových služeb, které běží po celou dobu života systému - tzv. démony (např. démon cron, který spouští aplikace podle naplánování, další démoni mohou být používáni např. pro obsluhování tisku). Většina démonů obsluhuje síťové služby, "vyčkává" na síťovém portu až přijde síťový paket a předává ho jádru. Jádro požadavek "přeloží" a vrátí ho zpět démonu, který si ho sám vyhodnotí a určitým způsobem se pak zachová (může třeba navázat komunikaci s jinou aplikací). Démon většinou pro provedení instrukcí vytvoří pomocí systémového volání nový proces a sám pak znovu vyčkává na další instrukce.

Mezi síťové servery (démony poskytující síťové služby) patří web server, FTP server, SMTP server pro příjem pošty (spolupracuje s inteligentním doručovatelem - démonem sendmail a síťovou službou IMAP - protokolem pro zpracování pošty na vzdáleném stroji). Starší variantou k SMTP serveru je protokol POP3. Jednotlivé uzly sítě (pracovní stanice, tiskárny) si svou konfiguraci berou ze serveru pomocí protokolu DHCP. Ten dodržují všichni výrobci OS, protokoly DHCP musí být kompatibilní. Pracovní stanice s OS Windows si běžně připojují síťové disky pomocí protokolu SMB, to je v UNIXu prováděno pomocí protokolu SAMBA, který poskytován zdarma pro všechny platformy. SAMBA poskytuje mnoho síťových služeb, umožňuje např. šifrovat uživatelská hesla tak, aby nebyla v lokální síti odposlechnutelná. Pro sdílení disků mezi unixovskými počítači bývá používán protokol NFS, který je navržen s ohledem na maximální propustnost sítě. Otázky oprávnění se řeší až na straně klienta.

Základním pracovním nástrojem uživatele UNIXu je shell, program sloužící ke spouštění dalších programů. Shell se aktivuje vždy, když se uživatel přihlásí k unixovskému stroji na konzoli, po síti nebo prostřednictvím terminálu. Používá se k zadání povelů pomocí klávesnice. V grafickém režimu lze spouštět programy pomocí příslušných ikon. Složitější textové příkazy shellu je vhodné napsat do souboru a ten pak spouštět jako kterýkoliv jiný program (program se spouští prostým zadáním jeho jména). Činnost programů lze ovlivnit úpravou jejich konfiguračních souborů.

Unix je velmi vlídný k použití terminálů, pomocí kterých se lze připojovat ke vzdáleným počítačům. K tomuto připojení slouží program telnet, pomocí kterého se ke vzdálenému počítači můžeme přihlásit a pak můžeme používat jakékoliv příkazy UNIXu. Bezpečnější náhradou telnetu je programový balík SSH - přenášená data se standardně šifrují. UNIX umožňuje pomocí terminálu skutečnou práci na serveru bez jakýchkoliv programů na straně uživatele, kdy se využívá procesor serveru, nikoliv jako u Windows, kdy se pracuje jen se soubory uloženými na serveru (a náš procesor musí stejně všechno oddřít). Pro automatické přihlašování ke vzdáleným strojům slouží například program Kerberos, který vygeneruje uživateli klíč, a ten ho pak identifikuje pro vzdálené stroje. Kerberos však není dosud použitelný na všech strojích, takže přihlašování není vždy automatické. Terminály je také možné použít jako klienty grafického výstupu, na němž se podílí grafický systém X11 (X Windows System) sestavený pro Unix. Základem tohoto systému jsou okna podobně jako u Windows. Aktivní může být vždy jen jedno okno, okna mohou být ovládána různými aplikacemi.


zpět | nahoru