Operační systém UNIX a jazyk C

Jan Brodský
Luděk Skočovský

SNTL Nakladatelství technické literatury Praha 1989, ISBN 80-03-00049-1

Předmluva


Bell Laboratories, kde Unix vznikl, byly založeny r. 1925. V současné sobě mají přibližně 25 000 zaměstnanců, vlastní patenty na více než 20 000 výrobků a sedmi zaměstnancům byla udělena Nobelova cena. Základní výzkum se týká oblastí důležitých pro rozvoj komunikací, zejména matematiky, fyziky a počítačů.

V r. 1969 Bell Laboratories opustily projekt univerzálního operačního systému sdílení času (General Electric a MIT pokračovaly dále a výsledkem je Multics). Jeden z programátorů, Ken Thompson (tehdy ve věku 27 let) zformuloval myšlenku, že "operační systém by měl být jednoduchý, elegantní a snadno použitelný". S tímto cílem napsal asembler, základní operační systém a hlavně systém souborů pro minipočítač PDP-7. Další programátoři postupně doplňovali pomocné programy. V r. 1970 byl operační systém pojmenován. Autorství názvu Unix je přisuzováno Brianu Kernighanovi, název údajně vznikl jako opozice k Multics (Multi-cs, Uni-cs, Unix-x). Zdá se, že Unix vznikl na základě principu práce hrou.

Na jaře 1970 Ken Thompson požádal vedení Bell Laboratories o zakoupení PDP-11 pro další rozvoj Unixu. Požadavek byl zřejmě v důsledku nedůvěry v projekty operačních systémů zamítnut. Thompson a jeho kolegové tedy napsali nové zdůvodnění, ve kterém předstírali, že vyvinou systém pro automatizovanou kancelář, žádanou patentovým oddělením. Tentokrát již projekt prošel, skupina dostala PDP-11/20 a pravděpodobně pod tlakem patentového oddělení se do Unixu vloudily rysy snadného zpracování textů.

V r. 1973, kdy skupina mohla používat PDP-11/45, byl Unix přepsán do jazyka C, který mezitím s tímto cílem vytvořil Dennis Ritchie. Thompson psal záležitosti procesů, Ritchie vstupně-výstupní systém. V pozadí těchto úprav byla vzrůstající popularita Unixu uvnitř Bell Laboratories, a tím i narůstající potřeba údržby mnoha systémů v provozu.

V r. 1978 vznikla sedmá verze, nyní označovaná jako Unix v7. Její vytvoření bylo motivováno snahou dokázat přenositelnost Unixu na počítač Interdata 8/32 s architekturou odlišnou od PDP-11. Touto verzí Unixu začíná jeho celosvětový úspěch. Byla totiž uvolněna i mimo Bell Laboratories včetně zdrojových textů. Bell Laboratories např. požádaly kalifornskou Univerzitu v Berkeley o přenesení této verze na VAX. První virtualizovaná verze UNIX 32V byla hotova v r. 1979. Na přelomu 1979 a 1980 byla v Berkeley vytvořena skupina CSRG (Computer Science Research Group).

Výsledkem činnosti této skupiny bylo několik dalších verzí v rychlém sledu: 3.0BSD (Berkeley System Distribution) plně využívající virtuální paměť v r. 1980, 4.0BSD a na jaře 1980 4.1BSD se C-shellem, obrazovkovým editorem, novým popisem vlastností terminálů, symbolickým ladícím programem a řadou nových příkazů. V r. 1986 vznikla verze 4.3BSD, v době psaní knihy poslední známá verze Unixu z Berkeley. Souběžně vznikají odpovídající verze pro PDP-11 pod názvem 2.xBSD, jedna z posledních je 2.9BSD z r. 1984.

V Bell Laboratories (nyní pod hlavičkou AT&T) rovněž nezaháleli. Verze Unix System III (1982) má jako první Unix komerční provedení, zřejmě pod tlakem o rok dříve zformované zájmové skupiny /usr/group výrobců a uživatelů Unixu. O rok později AT&T ohlašuje Unix System V.1 a v r. 1984 uvádí na trh Unix System V.2. V následujícím roce AT&T zveřejňuje dokument System V Interface Description (dále jen SVID) se závazkem tohoto znění: "Dodrží-li aplikační program syntaxi a sémantiku volání systému z tohoto dokumentu, poběží beze změny na libovolném počítači kompatibilním s Unix System V". V r. 1987 AT&T ohlašuje Unix System V.3 se silnou podporou sítí.

Na Unixu začínají pracovat i jiní. Firma Microsoft se v r. 1980 zavázala implementovat Unix na 16bitové mikroprocesory. Výsledek pod názvem Xenix je znám zejména pro osobní počítače typu IBM PC-AT, první verze je odvozena od Unix System III, poslední verze dodržuje SVID. Druhou takovou firmou je Santa Cruz Operation s produktem SCO Xenix. Firma Hewlett-Packard uhýbá z projektu SUN, operačního systému pro řadu HP 9000 (buď s procesorem řady MC 68000, nebo s vlastním 32 bitovým procesorem) a implementuje HP-UX, odvozený nejprve od Unixu System III, později od Unix System V. Jako první přichází (1985) s jádrem Unixu v ROM paměti (HP-UX/RO). Firma IBM implementuje AIX (odvozený od Unix System V.2) pro počítač IBM PC/RT s procesorem architektury RISC. V r. 1985 vstoupila na trh firma Microport s několika verzemi Unix System V/AT pro osobní počítače IBM PC/AT. Jsou vždy odvozeny od AT&T Unix System V. Firma AMDAHL implementovala svůj systém UTS pro počítače Amdahl 470/V již v r. 1982.

I firma DEC si v r. 1982 uvědomila, že Unix přežije a uvedla na trh vlastní implementaci pod názvem v7/m-11 PLUS. O rok později změnila jméno na Ultrix-11 a Ultrix-32 pro VAX. Obě varianty jsou orientovány na univerzitní BSD systémy. Po zveřejnění SVID se firma DEC rovněž zavázala, že budoucí verze Ultrixu budou normě vyhovovat, ale pouze na zdrojové úrovni. Současně bude sledována i kompatibilita na 4.2BSD, aby uživatelé mohli používat programové produkty z Berkeley.

V západní Evropě vznikla r. 1985 zájmová skupina X/OPEN výrobců, která rovněž zveřejnila svoje doporučení, X/OPEN Portability Guide [26]. Není bez zajímavosti, že kromě záležitostí, týkající se vlastního systému a knihovny standardních podprogramů, definuje i normu pro indexsekvenční soubory, relační databázi a Cobol.

V zemích RVHP se Unixu rovněž věnuje mimořádná pozornost. Do ruštiny jsou překládány všechny významné publikace o Unixu z anglosaské oblasti, vyšla i původní monografie popisující vlastní implementaci INMOS [3]. Ve spolupráci NDR a ČSSR vznikla původní implementace PSU pro počítače řady JSEP; v NDR dále vznikla implementace Unixu pro minipočítače Robotron pod názvem MUTOS.

V ČSSR je k dispozici DEMOS pro minipočítače SMEP SM 52-11 a SM 52-12. V době, kdy se tato kniha objeví na trhu, bude pravděpodobně již implementován Unix na všech počítačích vyráběných a dodávaných v ČSSR jako výsledek snahy o jednotné základní programové vybavení. Toto tvrzení se týká nejen počítačů střediskových (JSEP), minipočítačů (SMEP), ale i mikropočítačů (osobní počítače a pracovní stanice). Všechny implementace budou vyhovovat doporučení X/OPEN.