Hopp til innhold

Unix

Fra Wikipedia, den frie encyklopedi
Unix
Unix System III kjørende på en PDP-11 simulator
Utvikler(e)Bell Labs, Ken Thompson, Dennis Ritchie, Brian Kernighan
Utgitt1969
Skrevet iC, assembler
Avledede systemerBerkeley Software Distribution, Linux
Nettstedhttps://opengroup.org/unix
ForgjengerMultics
EfterfølgerPlan 9
Unix System III kjørende på en PDP-11 simulator

Unix er en familie av operativsystemer med opprinnelse fra AT&T Bell Laboratories, der utviklingen startet i 1969. Karakteristika for systemet er portabilitet, multitasking og støtte for mange samtidige brukere gjennom tidsdeling. Systemets egenskaper i kombinasjon med Bell Labs' åpne deling av forskning med universiteter og andre forskningsmiljøer, førte til betydelig spredning av Unix gjennom 70-tallet.

Da 16- og 32-bits mikroprosessorer ble generelt tilgjengelige tidlig på 80-tallet, var Unix det naturlige OS-valg. Det samme var tilfellet for kraftige superminimaskiner, de fleste RISC-baserte, i andre halvdel av 80-tallet. Unix var lett å porte, anerkjent i det tekniske markedet, hadde kraftige utviklingsverktøy og bedre nettverks-støtte enn noen – det siste takket være utviklingen ved University of California, Berkeley (BSD), med økonomisk støtte fra det amerikanske forsvarsdepartementet (DARPA).

AT&T var frem til 1982 forhindret fra å delta i IT-markedet (maskinvare og programvare) på grunn av sitt monopol i telemarkedet. Oppløsningen av telemonopolet kombinert med den store interessen for Unix gjorde det naturlig for selskapet å kommersialisere systemet og å etablere standarder for Unix-variantene som allerede var i bruk. Sprikende interesser både kommersielt og teknisk blant markeds-aktørene i markedet, gjorde imidlertid standardisering vanskelig, og la grunnlag for det som senere er blitt hetende Unix-krigen. Først langt ut på 90-tallet ble formelle Unix-standarder etablert. Disse standardene finnes og brukes fortsatt – ikke bare for Unix og Unix-lignende systemer, men for operativsystemer generelt.

Unix er også en filosofi som dokumenteres i The Unix Philosophy (1995),[1] Eric Raymonds The Art of Unix programming (2003)[2] og i tidlige dokumenter fra utviklerne av systemet.[3] Essensen i filosofien er å lage små, oversiktlige komponenter med ansvar for én eller få oppgaver, som lett kan kombineres spontant og etter behov. Filosofien har hatt ringvirkninger til alle slags programvare-prosjekter siden, og Unix har direkte eller indirekte påvirket samtlige operativsystemer som finnes på markedet i dag.[4] Linux, som i dag er verdens mest utbredte operativsystem, er en Unix klone og anerkjennes av Dennis Ritchie, en av hovedpersonene bak Unix, som en videreutviklling av Unix' filosofi.[5] Den tette idémessige koblingen mellom Linux og Unix understrekes også i 2. utgave av Mike Gancarz' 'The Unix Philosophy' som fikk ny tittel: Linux and the Unix Philosophy (2003)[6]

Unix' historie starter med operativsystemet Multics, et ambisiøst samarbeidsprosjekt mellom MIT, Bell Labs og General Electric. Arbeidet med Multics gikk sakte fordi ambisjonene overgikk kapasiteten til datidens datamaskiner, og Bell Labs trakk seg fra prosjektet i 1969. Unix ble på mange måter en motreaksjon på kompleksiteten i Multics, og tok samtidig med en rekke gode ideer og erfaringer fra systemet. Ken Thompson - på søken etter nye prosjekter etter frikoblingen fra Multics - fikk tilgang til en avlagt PDP-7 minimaskin og utviklet først et spill, 'space travel'. Deretter startet han eksperimenter med algoritmer for optimalisering av lese/skrive-hastighet mot disk (lagringsenhet). Eksperimentene foregikk via stadig mer sofistikerte programmer, og på et tidspunkt oppdaget Thompson at han var 'tre trinn unna et operativsystem'.[7] Tre uker senere, på sensommeren 1969, var et enkelt operativsystem – med filsystem, teksteditor og assembler – i gang og forløperen til Unix et faktum.

De første brukerne – aller først Dennis M. Ritchie, deretter Douglas McIlroy, Bob Morris, Joe Ossanna og Brian Kernighan, ble også de viktigste bidragsyterne til det som senere er blitt kalt Unix V1, versjon 1. Bell Labs hadde – etter datidens målestokk – store datamaskin-ressurser tilgjengelige for alle forskere. Thompsons system frihet imidlertid mer fordi det ga full kontroll. Det kunne skape sitt eget utviklingsmiljø. Penger til ny maskin fikk de imidlertid ikke. Ledelsen hadde brent seg på Multics og holdningen var at 'vi driver ikke med operativsystemer'.

Bell Labs er ofte blitt kalt 'The Idea Factory'[8] eller 'Invention Factory',[9] og 'produserte' store mengder patentsøknader. Patentavdelingen var på jakt etter tekniske hjelpemidler og gruppen rundt Thompson endret strategi: I samarbeid med patentavdelingen søkte de om penger til å utvikle et system for produksjon av patentsøknader. Søknaden ble innvilget, en PDP-11/20 maskin ble anskaffet, Thompson og Ritchie konverterte verktøyene til den nye arkitekturen, og Ossanna utviklet 'nroff' som formaterte pantentsøknader. I 2. halvdel av 1971 jobbet maskinskrivere fra pantentavdelingen full tid på systemet, mens operativsystem-utviklerne overtok etter arbeidstid.

For patentavdelingen var det nye systemet en revolusjon som kvalifiserte ytterligere investeringer, og Unix-gruppen fikk sin egen PDP-11/45 maskin, betydelig kraftigere enn den første, senere i 1971 (bildet). Dermed kunne utviklingen foregå på full tid, og det som i dag kalles Unix V1 ('first edition') var et faktum i november samme år. Et komplett flerbruker, tidsdelingssystem med over 60 kommandoer, inklusive Fortran kompilator, debugger og en rekke systemverktøy.[10]Påfølgende sommer kom V2 ('second edition'), som blant annet introduserte programmeringsspråket C.

I løpet av 1973 ble det meste av operativsystemet og alle verktøy omskrevet til C,[11] en endring som la grunnlaget for Unix' portabilitet. Endringen ble en del av 'fourth edition', tilgjengelig i november 1973. Ytterligere versjoner fulgte i 1974, 1975 og V7 i 1979. V6 og V7 ble startpunkt for en rekke avleggere og kommersielle varianter av Unix,

Unix ble utviklet for en annen målgruppe enn tidligere operativsystemer: Et utviklingsmiljø – for utviklere. Uten noen form for formalisering leverte Unix en filosofi som endret holdningen til og oppfatningen av operativsystemer for all fremtid, som forfatter Mike Gancartz beskriver boken The Unix Philosophy.[12] Før UNIX var operativsystemene rigide og uoversiktlige, mens programmer ble tunge og komplekse fordi de forsøkte å gjøre alt selv. Unix-filosofien var den motsatte – la hvert program gjøre én ting godt og deretter koble sammen programmer med såkalte 'pipes' til å dekke større oppgaver.

Akademiske miljøer plukket opp Unix med stor entusiasme utover 1970-tallet, takket være Bell Labs' åpne delingspolitikk. De samme miljøene leverte viktige bidrag tilbake til systemet og Bell Labs.[10] Spesielt viktig ble utviklingen ved og samarbeidet med UCB, University of California Berkeley, som en periode også utvekslet gjesteforskere mellom sine Unix-grupper.

BSD-utgavene av Unix økte spredningen ytterligere, både i akademiske og kommersielle miljøer. Spesielt ble 4.2BSD for Digitals VAX-maskiner en milepæl – med 32 biters arkitektur, virtuell hukommelse, raskere filsystem og TCP/IP støtte. Denne og etterfølgende utgaver fra Berkeley sammen med en rekke nye 32 biters mikroprosessorer, trigget en strøm av nye Unix-systemer på 80-tallet, både arbeidsstasjoner og mini/superminimaskiner. 4.2BSD (1983) og senere senere 4.3BSD (1986) leverte portabilitet, effektivitet og tilfang av verktøy gjorde terskelen lav for nye leverandører på markedet. Operativsystemet var blitt tilnærmet hyllevare - for leverandørsiden, en milepæl som bidro til at 4.3BSD Unix 10 år senere ble kalt 'The Greatest Software Ever Written' av magasinet Information Week.[13]

Krig og standarder

[rediger | rediger kilde]

AT&T, som eide Bell Labs og dermed rettighetene til Unix, kom på banen i 1982 med etableringen av datterselskapet Unix System Group (USG) med formål å kommersialisere Unix. Kort tid etter ble Unix System III lansert, med et omfattende lisensieringsregime, bred dokumentasjon og kommersiell støtte fra USG, primært i forbindelse med porting til nye arkitekturer. Unix System III virket imidlertid gammelmodig i forhold til BSD Unix, og manglet mange av egenskapene nye aktører på markedet var interesserte i, for eksempel TCP/IP-støtte og virtuell hukommelse. Ett år senere, i 1983, kom Unix System V – med mange forbedringer, spesielt på nettverkstiden, men fortsatt teknisk tilbakestående i forhold til BSD.[14] Like fullt ble AT&T av mange kommersielle aktører oppfattet som den solide utviklingspartneren de manglet bak BSD, og det oppsto to leire – BSD kontra System V. Første del av den såkalte Unix-krigen var i gang. Krigen rullet i flere runder, med ulike aktører på hver av sidene, og kulminerte med etableringen av COSE (Common Open Software Environment) i 1993.[15] I 1996 kom en ytterligere opprydding da to av stridens hovedaktører, OSF og X/Open, slo seg sammen til The Open Group.

I mellomtiden hadde eierskapet til både Unix som system og varemerke gjennomgått flere bytter. AT&T solgte Unix-virksomheten (USG) til Novell i 1993,[16] som i sin tur overførte rettighetene til Unix som varemerke til standard- og interesseorganisasjonen X/Open. Året etter presenterte X/Open Single Unix Specification, den første reelle Unix-standarden. Etter at OSF og X/Open slo seg sammen i 1996 og avsluttet Unix-krigen, ble standarden interessant i praksis, og leverandører kunne sertifisere sine systemer som 'Unix 98'.[17]

Single UNIX Specification er per 2018 i sin fjerde utgave (UNIX 04) – en omfattende standard ratifisert av både IEEE og ISO, og en kravspesifikasjon som definerer hvilke krav et operativsystem må tilfredsstille for at det skal kunne kalles Unix. Ingen Linux-distribusjoner er UNIX-sertifisert, og heller ingen av de åpne *BSD-systemene, selv om terskelen for slik sertifisering i teknisk forstand er lav. Hovedårsaken er snarere kostnadene forbundet med slik sertifisering og regimene som må innføres for å sikre at endringer holdes innenfor rammene sertifisering setter. Darwin, som er én av disse variantene og basis for Apples MacOS system, er UNIX 03 kompatibel, men ikke sertifisert.

Nettopp MacOS er det mest utbredte av sertifiserte UNIX 03 operativsystemer i dag er macOS, og også den første BSD-variant med slik sertifisering. Andre kjente kommersielle UNIX distribusjoner med UNIX 03 sertifisering er AIX, HP-UX, og Solaris. IBMs AIX var først ute med sertifisering etter UNIX 04 standarden.[18]

Viktige egenskaper

[rediger | rediger kilde]

I ettertid er det bred enighet om at den underliggende filosofien var Unix' viktigste suksessfaktor. 'Small is beautiful' og 'keep it simple' manifesterer seg som bærende elementer på alle nivåer og er markant forskjellig fra andre samtidige operativsystemer. Filsystemet er et godt eksempel. Mens andre operativsystemer hadde mange typer filer – tekst, kode, rå data, strukturerte data, bilder, databaser etc., hadde Unix intet forhold til filenes innhold. Sett fra systemets side var enhver fil en 'strøm av bytes', og programmene som brukte dataene kunne tolke dem slik det passet. Dermed kunne alle verktøy i prinsippet behandle alle filer uten spesialtilfeller, en fleksibilitet som til tider ga overraskende resultater og spennende dynamikk.[19]

Ikke minst i forbindelse med det såkalte skallet, kommandolinje-tolken, kom denne dynamikken til uttrykk. Et tekst-orientert grensesnitt mellom bruker og system som leser kommandoer og utfører dem – og leverer muligheten til å kjede dem via det som senere er blitt kjent som 'standard input/output'. Disse enkle egenskapene gjorde skallet til et programmerings-språk i seg selv, som automatisk ble utvidet hver gang et nytt program ble laget. Brian Kernighan skriver:[19]

The user-level programmable shell, with control-flow statements and easy I/O redirection, made it possible to program by using programs as building blocks.

Unix ble ofte kritisert for å være lite brukervennlig, en kritikk som går direkte på skallet, brukergrensesnittet, som det etterhvert ble mange varianter av. Denne kritikken blir av Mike Gancarz[1] parkert som meningsløs:

The entire UNIX philosophy revolves around the idea that the user knows what he is doing.

Referanser

[rediger | rediger kilde]
  1. ^ a b Gancarz, Mike (1995). The Unix Philosophy. Newton, MA: Digital Press. ISBN 1-55558-123-4. 
  2. ^ Raymond, Eric (2003). The Art of Unix Programming. USA: Addison-Wesley. ISBN 0-13-142901-9. 
  3. ^ Kernighan, Ritchie, Thompson; m.fl. (juli–august 1978). «The UNIX Time Sharing System». Bell System Technical Journal. 
  4. ^ Salus, Peter H. (1994). «Introduction». A Quarter Century of Unix. USA: Addison-Wesley. s. 1. ISBN 0-201-54777-5. «The result is that Unix has influenced every operating system on sale today.» 
  5. ^ «Interviews : Interview with Dennis M. Ritchie». www.linuxfocus.org. Besøkt 31. januar 2023. 
  6. ^ Gancarz, Mike (2003). Linux and the Unix philosophy. Amsterdam: Digital Press. ISBN 978-0-08-051034-7. OCLC 162594853. 
  7. ^ Kernighan, Brian W. (2020). Unix : a history and a memoir. [Seattle, Washington?]. ISBN 978-1-6959-7855-3. OCLC 1125982089. 
  8. ^ Hicks, Jesse (21. mars 2012). «'The Idea Factory': How Bell Labs invented the future». The Verge (på engelsk). Besøkt 27. januar 2023. 
  9. ^ Nast, Condé (21. november 1931). «Bell Labs: The Invention Factory». The New Yorker (på engelsk). Besøkt 27. januar 2023. 
  10. ^ a b Salus, Peter H. (1994). «Introduction». A Quarter Century of Unix. USA: Addison-Wesley. s. 1. ISBN 0-201-54777-5. «The result is that Unix has influenced every operating system on sale today.» 
  11. ^ Kernighan, Ritchie, Thompson; m.fl. (juli–august 1978). «The UNIX Time Sharing System». Bell System Technical Journal. 
  12. ^ Gancarz, Mike (1995). The Unix Philosophy. Newton, MA: Digital Press. ISBN 1-55558-123-4. 
  13. ^ «The greatest software ever written - myMAYDAY.com». Besøkt 27. januar 2023. 
  14. ^ Skrivervik, Helge (1989). Driftshåndbok for Unix BSD. [Oslo]: Yrkesopplæring. s. 13. ISBN 82-585-0699-4. OCLC 1028323317. 
  15. ^ «Detente: Databransjens Berlinmur faller med COSE og UNIX-freden». Mellvik-Rapporten. 1: 3–13. November 1993. 
  16. ^ «Novell to buy AT&T computing lab for $350 million in stock - UPI Archives». UPI (på engelsk). Besøkt 31. januar 2023. 
  17. ^ «The Single UNIX® Specification, Version 2 and UNIX 98». The Open Group. 3. januar 1998. Besøkt 31. januar 2023. 
  18. ^ «Open Brand». www.opengroup.org. Besøkt 31. januar 2023. 
  19. ^ a b Kernighan, Brian W. (2020). Unix : a history and a memoir. [Seattle, Washington?]. ISBN 978-1-6959-7855-3. OCLC 1125982089. 

Eksterne lenker

[rediger | rediger kilde]