Historie UNIXu a Linuxu

(c) 1999 Petr Klika

Operační systém UNIX má dlouhou a fascinující historii. Snad o žádném jiném systému se nenapsalo tolik odborné literatury, jako právě o něm. Jeho klony lze najít téměř na každém typu počít ače, který byl od jeho vzniku vyroben. Přestože jeho počátky sahají do konce 60. let, jeho vlastnosti byly natolik dobře vymyšlené a sofistikované, že s úspěchem mohou konkurovat operačním systémům, které vznikly mnohem později.

Historie UNIXu se zřejmě začala psát už v roce 1964, kdy byl v Bell Telephone Laboratories (založeny r. 1925) ve spolupráci s MIT (Massachussets Institute of Technology) a General Electric Company zahájen projekt komplexního operačního systému Multics. Jeho hlavním cílem bylo vytvořit výpočetní systém, který by byl zobecněným prototypem interaktivního systému, v němž by bylo možné efektivní poskytování výpočetních prostřed ků pomocí vzdálených terminálů.

Při jeho implementaci se dodržovaly následující principy:

  1. Projekt systému musí předcházet jeho realizaci.
  2. Při realizaci systému použít operační systém pro interaktivní přístup (byl to systém CTSS)
  3. Pro realizaci počítačově nezávislých funkcí použít programovací jazyk vyšší úrovně (použit byl PL/1).

Projekt byl od počátku pojat velmi velkoryse a moderně. Jeho koncepce byla v mnoha ohledech unikátní a řada technik v něm použitých byla přejata většinou pozdějších systémů. Byl to například hierarchický souborový systém, stránkování n a žádost, segmentace, zvláštní důraz byl věnován ochraně a utajení informací.

Výsledek však nesplnil očekávání. Systém byl velice robustní, nesnadno ovladatelný a k uživatelům příliš vlídný taky nebyl. Některé funkce se do něj nepodařilo implementova t a systém měl potíže při připojení více uživatelů naráz (přestože to byl jeden z hlavních cílů). Proto firma Bell Telephone Laboratories od projektu v roce 1969 upustila. MIT a GEC však ve v ývoji Multicsu pokračovaly, dále ho vylepšili a umožnily jeho další využití v některých dalších firmách (Honeywell).

V době, kdy BTL opustili projekt Multics, pocítili její programátoři nutnost nějakého použitelného operačního systému. Mezi těmi, kteří se podíleli na vývoji Multicsu, byli i pánové Ken Thompson, Dennis Ritchie a Brian Kernighan. Ken Thompson přišel s myšlenkou jednoduchého, elegantního a snadno použitelného operačního systému. Napsal assembler, základ operačního systému a systém souborů pro minipočítač PDP 7. Ten byl rozšířen dalšími programátory a v roce 1970 byl B. Kernighanem pojmenován UNIX (parafráze jména Multics). Na světě byl UNIX V1.

Pro další rozvoj UNIXu však počítač PDP 7 nestačil a programátoři požádali o finance na počítač PDP 11. Návrh však byl zamítnut. Pomohla však žádost patentového oddělení BT L, které potřebovalo nějaký systém pro automatizované zpracování textů. Thompson a kolegové nabídli realizaci tohoto systému a v roce 1971 dostali počítač PDP 11/20. Od té doby má UNIX spoust u nástrojů pro zpracování textů.

Při vývoji UNIXu však vyvstal problém s přenosem na jíné počítače, neboť byl napsán v assembleru. To totiž znemožňovalo jeho přenesení bez přepsání celého programu. Aby jej bylo možno přenést, bylo nutné ho přepsat do nějakého vyš šího, na hardware nezávislého jazyka. A protože žádný vhodný jazyk nebyl, začal K. Thompson předělávat jazyk Fortran upravený pro UNIX, nazval ho B. Na jeho práci navázal D. Ritchie, který ne jprve vytvořil beztypový jazyk BPCL, později po rozšíření o datové struktury vznikl jazyk C. Ten se ukázal pro účely systémového programování velice vhodný, neboť přes dosažení velmi dobré strojové nezávislosti dokázal generovat velice efektivní kód, který umožnil v něm napsat i tak kritický program, jako bylo jádro operačního systému.

To bylo přepsáno v roce 1973 a znamenalo zvrat v dějinách UNIXu. Velkou většinu systému totiž bylo možno přenést na jinou architekturu bez velkých zásahů, úplně přepsat bylo nutno jen menší část systému, napsanou v assembleru a která b yla hardwarově závislá. Tento proces byl názorně předveden při převedení UNIXu V7 na počítač Interdata 8/32. Bylo nutno změnit 33% řádků (assembler 100%, překladač jazyka C 61%, knihovna C 37 %, jádro 25%, ostatní programy 4%). Počet řádků, které se musely při přenesení změnit, se časem snižovaly. Dnes některé firmy nabízejí přenos na libovolný počítač za asi 5000 dolarů.

UNIX V7 také AT&T (pod které se BTL dostaly) i se zdrojovými texty uvolnila pro některé univerzity a další subjekty. Zejména byla pověřena univerzita v Berkeley (Kalifornie), aby UNIX přenesla na počítače VAX 11. Od té doby se vyvíjely dvě značně nezávislé větve UNIXu - větev AT&T a BSD (Berkeley Software Distribution, organizace vyvíjející UNIX na berkeleyské univerzitě).

Vývoj základní větve z AT&T probíhal velmi rychle. Do roku 1982 byl vytvářen UNIX System III, o rok později vznikl System V. To byl již plnohodnotný operační systém, udávající standart systémů jiných, a jeho vzhled se až do současn osti příliš nezměnil. Jeho vylepšení byla vydávána po třech až čtyřech letech, byla známa jako System V Release 2,3 a 4. Poslední verze vznikla roku 1990 a je používaná až do současnosti (upravená jen nepatrně několika "revizemi"). Systém se prodával pod jménem UNIX/PC.

 Pánové, stojící u zrodu UNIXu, se koncem 80. let pustili do projektu nového operačního systému, který by myšlenkově vycházel z UNIXu, ale obsahoval by nové rysy moderních operačních systémů (multi-threeding, mikrokernel aj.). Systém dostal jméno Plan 9, avšak nikdy se příliš neujal, stejně jako další systémy (Mach, Amoeba…).

Systém univerzity v Berkeley vznikal původně pro počítač VAX-11. Jeho první verze se jmenovala UNIX 32V, vzápětí byla přejmenována na BSD. BSD 3.0, vzniklá v roce 1980, byla o rok později nahrazena verzí 4.0, obsahující již obsluhu vir tuální paměti, rychlou obsluhu periferií a řadu nových programů. Tato verze pak byla vylepšena na BSD 4.3 (1986) a BSD 4.4 z roku 1992, která se používá dodnes.

Distribuční práva na tuto verzi byla předána společnosti Berkeley Software Distribution, Inc. - BSDI, která pak pokračovala v distribuci systému. Z její dílny vyšly roku 1992 BSDI 1.0 a roku 1995 BSDI 2.0, komerčně prodávané operační s ystémy.

Souběžně s verzí 4.x byly vyvíjeny i verze 2.x, používané pro počítače PDP 7 a PDP 11. Jejich vývoj skončil verzí 2.11.

Od UNIXu V7 a jeho nástupců, kteří dosáhli celosvětový ohlas, se vyvíjely i klony UNIXů od jiných výrobců. Ty však jméno UNIX používat nemohly. Používaly proto většinou jména, končící na "X" nebo "IX", aby tak symbolizovali příslušnost k UNIXu. Většina z nich vyšla z vývojové řady AT&T, později do svých produktů implementovala mnoho prvků z BSD. Jen několik jich vyšlo pouze z BSD UNIXu. Cena těchto systémů se pohybuje kolem 500 – 2000 dolarů.

Jedním z prvních klonů, odvozených od Systemu III, byl XENIX od firmy Microsoft. Ta se zavázala vytvořit implementaci UNIXu pro počítače řady PC/AT. Jako všechny operační systémy této firmy má i tento svoje “zvláštnosti”. Napříkla d pokud se rozhodnete používat jiný programovací jazyk než C, můžete si jeho překladač dokoupit. Ovšem pokud byste se chtěli podívat do zdrojových textů nebo manuálových stránek, máte prostě smůlu.

Vývoj tohoto systému později převzala firma Santa Cruz Operation (SCO), která ho přejmenovala nejprve na SCO UNIX, později na ODT a Open Server.

Mezi známější klony odvozené od Systemu V patří také:

Firma, vyvíjející systém odvozený především od Berkeleyské větve, je DEC (Digital Equipment Corporation). Ta vytvořila nejprve v7m-11 PLUS z roku 1982, později ho přejmenovala na ULTRIX, který fungoval na počítačích PDP-11 a VAX-1 1 (na těchto strojích fungoval i UNIXu podobný systém VMS, který z něj však přímo nevznikl). ULTRIX byl později přejmenován na Digital UNIX a nedávno (po zakoupení firmou Compaq) na Tru64 UNIX.

Jsou také operační systémy, které se odvozují téměř výhradně od BSD. Nejznámější jsou NeXT Step firmy NeXT a systém OSF/1, vytvořený konsorciem OSF (kam patří DEC, HP a mnoho dalších).

Graf vyvoje UNIXu najdete zde.

Protože vznikalo takové množství UNIXů a jejich klonů, začaly problémy s jejich kompatibilitou. Už nebylo jisté, že pokud napíšete program pro jeden operační systém, poběží vám také na jiném. Proto začaly vznikat snahy o jejich no rmalizaci. Prvním takovým počinem bylo vydání dokumentu SVID (System V Interface Definition) koncernem AT&T roku 1985. V něm se firma zavazuje, že pokud budou programy dodržovat formát systémových volání, definovaný v něm, budou přenositelné na každý systém kompatibilní s UNIX System V. Tato norma byla později rozšiřována, dnes platí SVID 3.

Na SVID navázal ještě téhož roku mezinárodní norma X/OPEN Portability Guide sdružení X/OPEN. Rovněž definuje rozhraní systémových volání, knihovny a práci s databázemi, vše pro System V. Ve velké části se shoduje s normou SVID.

Významnou normu zavedl institut IEEE roku 1988. Jmenuje se POSIX Standard 1003 a má asi 20 částí. Významným rozdílem od předchozích norem je, že popisuje obecný operační sy stém, tedy nejen UNIX. Odpovídá mu například také OS/2 firmy IBM.

BSD UNIX však zůstal stranou těchto tendencí a uchoval si svoji nezávislost.

A jaká je kompatibilita současných UNIXů? Na úrovni přeložených programů systémy kompatibilní nejsou, z důvodů rozdílné architektury počítačů. Jsou pokusy o normalizaci binárních programů (ELF), avšak jsou s tím spojeny četné komplikace. A co se týče kompatibility zdrojových textů, existuje jeden hlavní problém: Neslučitelné překladače jazyka C, které nevyhovují normám ANSI.

Zajímavou otázkou vývoje UNIXu je také jeho licencování a distribuce. V době, kdy UNIX vyvíjely společnosti BTL a AT&T, nemohly kvůli rozhodnutí protimonopolního úřadu tento systém komerčně prodávat (firmy, klonující UNIX jej prodávat mohly, ale pod jiným názvem). Proto AT&T prodaly v roce 1991 distribuční práva společnosti USL (UNIX Systém Laboratories), která jej již prodávat mohla. Dál pak licenci odko upily firmy Novell, X/OPEN (1993) a nakonec Open Group, jejíž částí se X/OPEN stala. Zdrojové texty Systemu V k dispozici nejsou.

Zdrojové texty BSD byly až do verze 4.3 také tajné. Teprve části této verze byly uvolněny veřejnosti pod jmény Net/1 a Net/2. Také BSD 4.4 byla zpočátku distribuovaná bez zdrojových textů. Až roku 1994 vydala BSDI ořezanou verzi jako B SD 4.4-Lite a za rok BSD 4.4-Lite 2. Tyto texty však neobsahovaly některé podstatné části systému, bez kterých nebylo možné sestavit provozuschopné jádro.

Proto vznikly projekty, mající za cíl doplnění zdrojových textů do úplné podoby. Prvním pokusem byl tzv. 386BSD z roku 1992, UNIXový systém pro procesory i386. Jeho vývoj skončil u verze 1.0. Navázaly na něj však dva další systémy , a to NetBSD a FreeBSD. Byla do nich později přidána i část z BSD-Lite a v současné době jsou to velice dobré systémy, které jsou k dostání zdarma (u FreeBSD se dokončuje verze 3, NetBSD má poslední verzi 1.3 ). Z BSD 4.4-Lite vyšel i OpenBSD, jehož vývoj však zřejmě skončil u verze 2.4.

Podrobny obrazek vyvoje volne siritelnych BSD UNIXu najdete zde.

Nejznámějším volně dostupným operačním systémem se stal v druhé polovině 90. let Linux. Jeho autorem je finský student Linus Torvalds. Ten se rozhodl, že si vytvoří vlastní jádro systému, který bude postaven na principech UNIXu. Č erpal zejména ze systému Minix, klonu UNIXu, určeného zejména k výuce. Avšak neobsahuje žádné časti jeho zdrojového kódu, ani kódu některé z verzí UNIXu.

Práci na systému začal L. Torvalds někdy v květnu 1991 a první funkční verzi dokončil v srpnu. Jeho hlavním cílem bylo využít maximálně výhod procesorů Intel i386 a i486 (původně měl být Linux určen jen pro tyto procesory). K dyž na systému pracoval, předpokládal, že vytvoří pouze základní jádro a obsluhu systému souborů. Netušil ještě, že díky velkému přispění programátorské komunity na Internetu se jeho systém p o několika letech rozroste do podoby, schopné konkurovat jiným operačním systémům (ať již komerčním UNIXům, nebo třeba MS Windows). Dnes velká řada výrobců software i hardware začíná s podporou Linuxu (z nejznámějších jsou to např. Oracle, Corel, HP , IBM a další).

Linux se distribuuje pod licencí GPL (General Public Licence). Je to licence, vytvořená sdružením GNU (GNU’s Not UNIX), které založil Richard T. Stallman. GPL zaručuje všem lidem právo na získání programu včetně zdrojových textů zdarma nebo za manipulační poplatek. Tyto zdrojové texty se také mohou měnit. Neznamená to však, že by se Linux nesměl prodávat.

GPL umožňuje distributorům prodávat Linux třeba na CD, kde se do ceny započítá i manuál a technická podpora. Zákazníci však musí mít možnost pořídit si kopii programu včetně zdrojových textů třeba z Internetu.

Nyní existuje celá řada distributorů OS Linux. Ti k jádru přidávají mnoho dalších programů, které jsou k chodu systému třeba (např. grafické rozhraní, překladače různých jazyků atd.). Některé programy vytváří vlastní programá toři, slouží většinou k usnadnění instalace a správy systému. K nejznámějším distributorům patří: RedHat, Debian, Caldera, S.u.S.E, Slackware ap.

Vlastní Linux je pouze jádro operačního systému, které se ve zkompilované a omezené formě vejde na jednu disketu. Dodává se většinou ve formě zdrojových textů, které si sami přeložíte. Pokud c hcete se systémem pracovat, potřebujete k tomu ještě spoustu dalších programů. Nebylo by moc příjemné, kdyby jste měli jádro systému zadarmo a ostatní programy si museli dokoupit. Organizace GNU však vytvořila velkou spoustu software, která je k&nbs p;mání také zdarma. Také díky GNU se Linux tolik rozšířil.

Mezi programy, které GNU vyvíjí, patří např. kompilátor jazyka C/C++ - gcc a egcs. Je to optimalizující kompilátor, rychlost přeložených programů je až o 25% rychlejší, než překladače Borland, Visual nebo Watcom C++. Tento překladač lz e rovněž použít pro další jazyky, jako Fortran 77, Basic nebo Pascal.

Jedním z velkých plánů GNU je vytvoření vlastního operačního systému – Hurd. V současné době je založeno na mikrojádře Mach a k dispozici je jeho betaverze. Zatím to však nevypadá, že by mohl tento systém nějak výrazně u spět.

Na závěr bych se chtěl krátce zmínit o historii UNIXu u nás. Do konce 80. let zde byl UNIX téměř neznámým systémem, provozovaným pouze na několika počítačích, dovezených ze západních zemí. Prvním systémem vyvíjeným ve spolupráci s  ;NDR byl PSU pro počítače střediskové počítače řady JSEP (Jednotný systém elektronických počítačů).

Přelom měl nastat po dokončení státního úkolu rozvoje vědy a techniky JZPV 1 (Jednotné základní programové vybavení). Jeho úkolem bylo do konce roku 1989 vyvinout nebo zadaptovat operační systém typu UNIX na mikropočítače (PP06), minip očítače (SM 52/11 M1 a SM 52/12) a střediskové počítače (EC 1027). Systém měl vycházet z BSD UNIXu a měl respektovat normu X/OPEN. Úkol však nebyl dokončen, jediným výsledkem bylo vytvoř ení systémů DEMOS pro minipočítače řady SMEP (Systém malých elektronických počítačů).

Ani v 90. letech nenašel u nás UNIX většího rozšíření, pouze na univerzitách jsou provozovány některé komerční implementace (Solaris, IRIX), v domácnostech a kancelářích výrazně převažují operační systémy firmy MicroSoft (MS-DOS, MS-Windows). Pouze v poslední době se začíná častěji provozovat Linux, zejména jako síťový nebo internetový server.