History of Unix and Linux (long)

Martin Kokes martin.kokes na gplus.cz
Pondělí Březen 26 18:32:42 CEST 2001


"Martin Kubecek" <Martin.Kubecek na bull.cz> píše v diskusním příspěvku
news:OF6A9D6DB7.B400AF09-ONC1256A1B.00467C55 na bull.cz...
> Preji pekny den.
>
> Marne se snazim v Internetu sehnat nejakou fakt dobrou stranku
> pojednavajici o vzniku Unixu (o jeho vyvojovych radach, o podilejicich se
> spolecnostech .......)
> Slysel jsem pouze neco o tom ze to melo vznikonout z nejakoeho projektu
VME
> nekdy v 60 letech (z ktereho pak dale cerpali Microsoft a Novell)
>
> Vite nekdo kam bych mel zabrousit?
>
> Diky

Sjel jsem vám přes Recognitu kousek textu z "Luděk Skočovský - Principy a
problémy operačního systému UNIX":

Obecně

Snaha využívat co nejefektivněji drahý sálový počítač nutila výrobce
vyvinout operační systém. Běžící úlohu ve chvíli, kdy čekala na příchod dat
od některé z periferií, procesor přestal provádět a věnoval se jiné. Úlohy
pracovaly zdánlivě současně na témže počítači. Program, který řízení práce
jednotlivých úloh zajišťuje, je ope­rační systém. Protože i on potřebuje být
procesorem prováděn, je sám také jednou z úloh, ale na vyšší úrovni, takže k
jeho provádění se procesor vrací nejčastěji. Říkáme, že je prováděn v
supervizorovém režimu. Výpočetním systémem rozumíme technické vybavení, tj.
vlastní počítač (hardware) a základní programové vybavení neboli operační
systém (Operating System). Zdroj výpočetního systému je některá jeho část,
kterou úloha potřebuje pro plnění své funkce. Je jím např. tiskárna, a to
jak fyzická periferie, tak program, který ji řídí (ovladač, driver), a
program, který k ní zajišťuje v daném okamžiku výlučný přístup, tj. program,
který vytváří a správcuje frontu požadavků na tisk.

Část operačního systému se věnovala výběru několika z úloh dodaných na
děrných štítcích nebo magnetic­kých médiích, jejichž současné provádění
znamená nejlépe využívat výpočetní systém. Klasická kniha [ 1 ] ope­račních
systémů 60. let hovoří o funkci plánování prací. Plánování prací ale časem
přestalo být potřebné, proto­že se s počítačem začalo pracovat přímo, tj.
uživatel sedící u terminálu zadával spuštění své úlohy a čekal v nejmenším
možném časovém úseku na její zpracování. Protože je možné k počítači
připojit více terminálů, operační systém se začal zabývat otázkou jak
nejrychleji vyhovět požadavkům všech uživatelů a ztratilo smysl vybírat jen
některé úlohy, přičemž jiné by byly odstaveny třeba na několik desítek
minut. Přímá komunikace uživatele s operačním systémem pomocí terminálu je
interaktivní práce a doba rozhovoru člověka s počítačem sezení (session).
UNIX je interaktivní operační systém. Každá interakce uživatele a operačního
systému je navíc zvýhodněna oproti již běžícím úlohám. Při interakci je
používán určitý komunikační jazyk, který obecně nazýváme shell a překládáme
příkazový interpret.

Obecná proslulost operačního systému UNIX vyplývá především z jeho
přenositelnosti. Jednou z hlavních myšlenek na začátku byla myšlenka
naprogramovat UNIX ve vyšším programovacím jazyce a zřetelně oddělit (a
komentovat) strojově závislou část. Za tím účelem vytvořil D. Ritchie
programovací jazyk C a jedna z prv­ních verzí - UNIX version 7 oficiálně
uvolněná pro veřejnost se mohla pochlubit naprogramovaným operačním systémem
o 10 000 řádcích v jazyce C a 1000 řádcích v asembleru. První přenos na jiný
typ počítače prokázal, že UNIX přenositelný je, i když ne tak snadno, jak se
předpokládalo. Každopádně tím byl ale odstartován neofi­ciální projekt
operačního systému UNIX na různých typech počítačů od různých výrobců.
Současně se snahou o přenositelnost operačního systému vznikla myšlenka
přenositelnosti programů a aplikací mezi různými počíta­či. Tuto myšlenku
potvrdil návrh B. Kernighana hovořící o jednotném programovém vybavení
programátora (viz [2] a [3]). Znamená to, že programátor může při psaní
aplikací využívat programové celky, které jsou sou­částí operačního systému,
a to platí všude, kam bude aplikace přenesena. Vznikla podpora
přenositelnosti pro­gramů na dvou úrovních. Jednak je to přenositelnost
programu, který využívá přímo operační systém pro zajiště­ní základních úkon
ů (přenos dat z periferie, vytváření procesů ...), a jednak přenositelnost
na úrovni sady pod­půrných programů, z nichž každý obvykle vykonává jednu
funkci, a to bezchybně, a možnosti spojovat programy navzájem a se zbylou
částí vlastní aplikace. Říkáme, že používáme volání jádra (System Calls),
tj. první úroveň, a nástrojů programátora (Tools), druhá úroveň.

Jak je vidět, to, co jsme na začátku označili operační systém, přestalo být
, jednou z úloh běžících současně s ostatními". Z tohoto pohledu můžeme
operační systém UNIX rozdělit na
- jádro operačního systému,
- základní podpůrné tabulky a programy,
- nástroje programátora.

Vlastnost, kterou se vyznačuje UNIX a která vychází zejména z
přenositelnosti, je otevřenost. V dnešních návrzích otevřených systémů UNIX
vyniká snadnou přizpůsobivostí, a to zvláště z pohledu počítačových sítí.
Původně byla otevřenost pro UNIX chápána také z hlediska "průhlednosti"
vnitřní struktury. Tato "otevřenost" byla v době distribuce prvních verzí
provázena také tím, že součástí distribuce byly všechny zdrojové texty jádra
a nástrojů. Navíc na magnetických páskách uživatel obdržel i podrobnou a
kvalitní dokumentaci. To bylo v 80. letech trnem v oku všem obchodníkům s
operačními systémy a přestože původní myšlenka "nelíbí-li se ti funkce
tohoto nástroje, máš k dispozici zdrojové texty pro modifikaci" byla jednou
z hlavních, dnes se zdrojové texty operačního systému UNIX prodávají pouze
za velké peníze. Avšak na začátku 80. let právě tato vlastnost znamenala
bouřlivý vývoj pro UNIX, jak také ukazuje následující článek.

Historie

Vznik operačního systému UNIX je datován r. 1969 a situován do střediska
výzkumu firmy AT&T Bell Laboratories. K. Thompson, D. Ritchie. a B.
Kernighan, pracující na projektu nového univerzálního operačního systému
MULTICS, se snažili vytvořit příjemnější programovací prostředí, než právě
MULTICS nabízel. Skupina odpadlíků poměrně rychle a z vlastní iniciativy
vytvořila zárodek dnešního UNIXU na PDP-7. Vedení Bell Labs. ale odmítlo
dále tento projekt podporovat a teprve po návrhu vývoje prostředí pro práci
s dokumenta­cí v UNIXU pro patentové oddělení, vývoj financovala a podpořila
počítačem typu PDP-11.

V průběhu několika let Ritchie vyvinul beztypový programovací jazyk BPCL, ze
kterého po zavedení dato­vých struktur vznikl jazyk C. Vývoj jazyka C byl
veden výhradně záměrem pro přepis UNIXU do vyššího pro­gramovacího jazyka a
motivován snahou o přenositelnost. V této době se UNIX začíná skutečně
používat v patentovém oddělení, ale i dalších odděleních Bell Laboratories.
Koncem 70. let se zdá být základní verze operačního systému podle představ
autorů hotova a Bell Labs. po dohodě se státní správou a školstvím uvolňují
UNIX version 7 pro použití i mimo výzkumné středisko. UNIX version 7
(označovaná zkráceně v7) má z pohle­du uživatele všechny charakteristické
rysy dnešních verzí. Je to zejména
- hierarchická struktura adresářů,
- práce s procesy jako s elementy nositele změn v datové základně,
- podpora volání jádra pro odstínění uživatele od konkrétního technického
zařízení,
- textově orientovaná interaktivní práce více uživatelů u terminálů.

Základním testem pro UNIX byl přenos v7 na počítač jiného typu, a to
INTERDATA 8/32, který potvrdil přenositelnost podle proklamovaných tezí.
Následující vývoj probíhá pod vedením jednak AT&T a jednak University of
California v Berkeley (UCB).

AT&T vyvíjí snahu dopracovat UNIX do podoby komerčně dodávaných systémů pro
profesionální použití, UCB se věnuje vývoji další systémové nadstavby,
především v oblasti počítačových sítí.
UNIX SYSTEM V je dominující verze, která je odrazovým můstkem současným
implementacím na různých počítačích od různých výrobců. V průběhu 80. let se
objevuje velké množství operačních systémů, které vzhle­dem k drahé licenci
na zdrojové texty se chovají jako UNIX, ale není zaručena přenositelnost v
nich odladěných programů do jiných systémů typu UNIX. AT&T proto vydává
doporučení SVID (System V Interface Definition), které stanovuje základní
přenositelnost programů pro UNIX na úrovni zdrojových textů vzhledem k
voláním jádra, jež normalizuje. Dnes známá SVID3 je obecně uznávaným
základním dokumentem pro UNIX a zabývá se specifikací i na úrovni
příkazových řádků nástrojů programátora, konvencí jazyka C, atd. Tato kniha
SVID3 plně akceptuje; odchylky, které v některých systémech stále existují,
budou v textu zvláště komen­továny.
Distribuce systémů s označením BSD (Berkeley System Distribution) z UCB byla
zahájena na počítačích VAX s označením 4.xBSD, kde x je označení verze a
2.xBSD pro počítače PDP všech modelů. Tým odborníků s označením BSD je
dodnes světově respektovanou vývojovou skupinou ovlivňující nové směry
UNIXU.
Z obou větví čerpající světoví výrobci počítačů jsou na obr. 1.1 uvedeni v
obláčcích, pod kterými je označení jejich komerčně dodávaného operačního
systému UNIX, vždy vyhovující doporučení SVID. Přestože obyčejný uživatel
rozpozná jinou implementaci pouze podle jména, jsou systémy pojmenovány
různě, a to i přes úsilí sjednotit všechny tyto systémy pod jménem UNIX.
V normalizačních snahách hraje důležitou roli evropská skupina výrobců
X/OPEN (zal. r: 1984), vydávající doporučení (X/OPEN Portability Guide),
které se v podstatných partiích zcela shoduje s SVID.

Normu POSIX vlastní IEEE (Institute of Electrical Electronic Egineers v
U.S.A.) pod evidencí Standard 1003.1 - 1988 a definuje standardní rozhraní
operačního systému a prostředí na bázi UNIX. POSIX je ale obec­nější normou,
snažící se definovat přenositelnost programů na úrovni zdrojových textů tak,
aby byly přenositel­né mezi různými typy operačních systémů.




Další informace o konferenci Linux