daimiposten - december '96

daimiposten er internt meddelelsesorgan for studerende og medarbejdere ved Datalogisk Afdeling, Aarhus Universitet. Indlæggene er ikke udtryk for afdelingens officielle holdning.


The History of UNIX, del 1

Ken Thompson sad på sit kontor en sen nattetime, kun oplyst af det grønne slær fra terminalen foran sig. Han forsøgte at navigere sit rumskib ud af den fastlåste bane mellem Mars og asteroidebæltet. Han tastede kommandoerne ind, og kunne så blot sætte sig tilbage og vente før han fik noget resultat. Han mumlede sagte frem for sig: 'Damn! This is no way to play Space Travel!' Maskinen var ikke god nok. Operativsystemet var elendigt. Og nu ville han gøre noget ved det.

Af Søren Maagaard Andersen & Lars Ræder Clausen.

Sommeren 1969 var en nedtur for de ansatte i Bell Telephone Laboratories (BTL). AT&T havde lige trukket sig ud af Multics projektet, som de havde arbejdet på de sidste 5 år. Folk sad tilbage efter et stort, frugtesløst arbejde, og havde ikke rigtig noget at lave.
Multics (Multiplexed Information and Computing Service) var et stort anlagt projekt i samarbejde mellem General Electric, BTL og MIT. De ville lave et operativsystem som skulle kunne behandle op til 1000 brugere samtidigt, have et stabilt filsystem og virtual memory. Det skulle være fremtidens system. Man implementerede det på en GE-645. Da BTL trak sig ud, havde de brugt flere millioner dollars på det, og tre brugere samtidigt kunne overbelaste det.
Folkene hos BTL var ikke ansat til bestemte projekter. BTL ansatte universitetsuddannede til at tænke selv, få gode ideer og føre dem ud i livet. To af disse var Ken Thomson og Dennis Ritchie. [Ken Thomson og Dennis Ritchie.]
Sammen med Rudd Canaday tænkte de over, hvordan man kunne lave et fornuftigt filsystem. De mødtes en dag på Rudd's kontor og designede Unix filsystemet på papir. Ken implementerede det i løbet af et par dage på en PDP-7, en 18-bit en-bruger maskine fra Dec (nu Digital). Det eneste den havde indtil da var en assembler og en loader, men med det nye filsystem fik man snart lavet både en rudimentær kernel og Space Travel på den. Allerede nu kunne man være to brugere samtidig på dette nye system, som Peter Neumann, afdelingens spøgefugl, havde kaldt Unics (for Uniplexed Information and Computing Service) som et ordspil på Multics. Dette muterede, muligvis med Brian Kernighans hjælp, til Unix.
Senere på sommeren skulle Ken's kone på ferie en måned. Af denne tid afsatte Ken en uge til at lave operativsystemet, en til at lave shellen, en til editoren og en til assembleren. Efter denne efterhånden mytiske mande-måned var Unix selvstændigt, der var ikke længere brug for at cross-compile fra en Gecos maskine. Det havde alt hvad der skulle til for at man kunne vedligeholde det.
De blev dog hurtigt trætte af at skulle skrive en sekvens af tests på paper tape uden rigtig at kunne se, hvad der skete undervejs. Derfor lavede de et program, kaldet exec, som kunne køre ting direkte fra filsystemet, og et til at lade dem give kommandoer til dem, kaldet shell. Straks efter begyndte de at skrive flere værktøjer, men stadigvæk kun i assembler..
For at gøre det nemmere for dem selv at lave disse værktøjer, konstruerede de et lille sprog kaldet B. B var en nedskåret udgave af BCPL, et af de sprog, de havde brugt under Gecos. Faktisk var B kun en fortolker, som hurtigt blevet skrevet i sig selv. På grund af pladsmangel lavede de også en Virtual B (vb), som pagede 4K segments af sig selv ind og ud. Det sidste B program kørte på BTL op til 1989.

Efterhånden blev den gamle PDP-7 for lille til det voksende system, og under undskyldningen at ville lave et tekst-formatterings program fik afdelingen en ny PDP-11. Da de havde overført systemet (på en maskine der det første stykke tid ikke engang havde nogen disk), lavede de deres første editor, ed, en efterkommer af det berygtede Teco.
Den 3. november 1971 udkom første udgave af »Unix Programmer's Manual«. Den var inddelt i 7 afsnit, som er de samme som man siden da har inddelt man-pages efter. Deri kunne man, udover mange af de kommandoer, vi stadig bruger i dag, finde exotiske kommandoer som dbppt (Dump Binary PaPer Tape - nu dump, dsw (Delete sing SWitches), rkd (dump disk to tape?) og un (find UNdefined symbols).

Dette var Unix, som det så ud i 1972. Det var allerede da i brug 10 steder indenfor AT&T, men som man kan se, stoppede udviklingen ikke her. I næste artikel beskriver vi C's ankomst, pipes og hvordan Unix spredte sig til universitetsverdenen.

Redaktionen regner med at kunne bringe del 2 af historien om Unix i næste nummer af daimiposten.


Sidste ændring: søndag d. 28. december 1997.