Det hele startede med et computerspil – nu er Unix 50 år

Arven fra Unix lever videre i meget brugte operativsystemer.
Bilskilt brugt i markedsføringen af Unix, foran et tilsvarende system, som det Unix først blev udviklet til – DEC PDP-7 – fotograferet ved Universitetet i Oslo i 2005. Illustration: Wikimedia Commons/Tore Sinding Bekkedal, Wikimedia Commons/KHanger, Montasje

I slutningen af 1960’erne skete der rigtig meget innovation inden for informationsteknologien, som har fået stor betydning for, hvordan vi i dag benytter computere til at køre software og kommunikere. Én af de store milepæle var opfindelsen af operativsystemet Unix, som blev udviklet ved Bell Laboratories.

Man kan nok diskutere, hvornår Unix egentlig blev født, men 50-års jubilæet markeres af det nuværende Nokia Bell Labs i år. Det vil sige, at Unix blev født i 1969.

Andre vil sige, at fødselsdatoen hellere burde være 1. januar 1970 eller 3. november 1971, da den første version blev udgivet.

Det startede med Multics og et computerspil

Egentlig starter historien om Unix nogle år tidligere. I 1964 startede Bell Labs med MIT og General Electric et samarbejde om at udvikle et operativsystem for mainframen GE 645. Operativsystemet blev kaldt for Multics (Multiplexed Information and Computing Service).

Efter betydelige forsinkelser og budgetoverskridelser valgte Bell Labs at trække sig fra Multics-projektet. Det var komplekst, men havde samtidig mange positive egenskaber.

Ken Thompson var blandt de Bell Labs-ansatte, som arbejdede i Multics-projektet. I forbindelse med dette havde han skrevet et computerspil, ‘Space Travel’, for Multics. Efter at Bell Labs trak sig fra Multics-projektet, skrev han det om til operativsystemet Gecos og mainframen GE 635. Det var et kluntet system at spille på. Derudover var omkostningerne for CPU-tiden meget høj. I 1979 blev det oplyst, at det kostede 75 dollars at spille spillet på mainframen.

Derfor fandt Thompson en DEC PDP-7-computer, som kun blev brugt lidt, og sammen med kollegaen Dennis Ritchie skrev han spillet om, således at det kunne køres på denne. Men fordi Thompson og Ritchie ikke var vilde med softwaren, som fandtes på PDP-7-maskinen, erstattede de flere dele af det eksisterende operativsystem med deres egne.

Dette inkluderede en shell og værktøjer til blandt andet at kopiere, udskrive, redigere og slette filer, og derudover en pakke til floating-point aritmetik og en hel del andet. Meget var inspireret af Multics, men betydeligt forenklet.

Noget af det, som kendetegner Unix og Unix-lignende systemer, er udgangspunktet i softwaredesign, hvor problemer løses ved at sammenkoble enklere værktøjer frem for at lave store, monolitiske programmer.

Hulstrimler

Indtil der blev lavet en egentlig assembler-software specifikt til PDP-7-maskinen, hvilket skete i august 1969, blev softwaren skrevet i et assembly-sprog for en kryds-assembler på en Gecos-baseret maskine for så at blive overført til PDP-7-maskinen på hulstrimler.

Operativsystemet var stadig temmelig enkelt. Det kunne ikke køres på andre systemer, og det understøttede ikke time-sharing med flere samtidige brugere eller processer. Dette kom først senere. Centralt i denne første fase var udviklingen af et filsystem med filer, som effektivt kunne deles internt i en arbejdsgruppe, processorkontrol og omdirigering af IO-streams ved hjælp af <- og >-tegnene. Pipes mellem kommandoer med |-tegnet kom først i 1972.

I starten blev operativsystemet udviklet uden støtte fra Bell Labs. Det havde heller ikke noget navn.
Artiklen fortsætter under billedet.

De to centrale Unix-opfindere, Dennis Ritchie (stående) og Ken Thompson, foran minidatamaskinen DEC PDP-11 og kabinetter med en hel del andet udstyr. Billedet blev sandsynligvis taget i 1972. Illustration: Bell Labs

##Uniplexed Information and Computing Service
Men i 1970 var det formentlig Brian Kernighan, som kom med navneforslaget Unics (Uniplexed Information and Computing Service), som et slags ordspil på Multics. Først senere blev det stavet med et x til slut.

I løbet af 1970 blev der udviklet kompilatorer for sprogene TMG og B til Unix-systemet på PFP-7-maskinen.

I 1971 blev Unix for første gang flyttet til et nyt system – den nyindkøbte DEC PDP-11-minicomputer. Dette var en betydelig opgradering fra den oprindelige mainframe. Noget af det første, som blev flyttet over, var B-kompilatoren.

Den første færdige version af Unix, Version 1 Unix, blev udgivet den 3. november 1971.

Blev C-baseret

Samme år startede Dennis Ritchie udviklingen af det, som skulle blive programmeringssproget C, som senere blev det sprog, det meste af Unix blev skrevet i. Den vigtigste begivenhed skete i 1973, da operativsystemets kerne blev skrevet om i C og introduceret i Version 4 Unix.

Anden udgave af bogen "The C Programming Language", som Dennis Ritchie oprindeligt var medforfatter til sammen med Brian Kernighan i 1978. Illustration: Wikimedia

Det var først i 1973, at Unix blev præsenteret uden for Bell Labs. Dette førte til, at også andre ønskede systemet, men det kunne ikke tilbydes som et produkt, fordi moderselskabet, Bell System, af antitrust-årsager ikke kunne drive anden virksomhedstype end telekommunikationstjenester.

Derfor sendte Thompson kopier af Unix til interesserede kun mod omkostningerne af fragt og mediet, som operativsystemet blev leveret på. Noget senere fik Bell System og moderselskabet AT&T tilsyneladende lov til at sælge Version 6 Unix som kildekode, men med temmelig ugunstige betingelser for kommercielle brugere, hvilket Byte omtaler i en artikel i 1983. Betingelserne for uddannelsesinstitutioner var langt bedre.

Det, at Unix efterhånden blev skrevet næsten fuldstændig i C, gjorde det lettere, da Bell Labs til slut bestemte sig for, at det var på tide at gøre operativsystemet tilgængeligt for andet end DEC-maskiner.

Ny hardware

I 1977 fik selskabet fat i en Interdata 8/32-computer, som blev valgt, fordi den var mest muligt forskellig fra den DEC PDP-11-computer, Unix kørte på fra før.

I en artikel publiceret i The Bell System Technical Journal sommeren 1978 hedder det, at systemkernen og meget af den tilhørende software for nylig var blevet flyttet til den nye computer. Næsten al softwaren var skrevet i C, og næsten alt var identisk på de to systemer.

Senere, og da særligt med Version 7 Unix, blev operativsystemet porteret til langt flere systemer og processorarkitekturer.

Den nævnte serie med Unix-versioner fra Bell Labs, gerne kaldet Research Unix, var langtfra den eneste. Med årene kom der en række andre varianter, både kommercielle og ikke-kommercielle. Nogle af de første varianter, MERT (Multi-Environment Real-Time) og PWB/UNIX, blev også udviklet hos Bell Labs.

BSD

En variant eller forgrening, som fortsat lever videre i mere moderne efterkommere, var BSD (Berkeley Software Distribution).
Berkeley-universitetet havde brugt Research Unix siden 1974 og udviklet en del tillæg og forbedringer, som også andre universiteter var interesserede i.

Bill Joy, som senere var med til at etablere Sun Microsystems, startede i 1977 arbejdet med at sammensætte den første distribution, som blev kaldt for 1BSD. Den kom i marts 1978 og var først og fremmest en udvidelse til Version 6 Unix. I senere versioner blev langt mere erstattet af BSD-projektets egne løsninger.

Liste over mapper i version 6 Unix, der her kører på en PDP-11-simulator. Foto: Wikimedia Commons/Huihermit (CC0 1.0) Illustration: Wikimedia Commons/Huihermit (CC0 1.0)

I 1979 kom Version 7 Unix, som var den sidste udgave af Research Unix, som i nævneværdig grad blev distribueret uden for Bell Labs.

UNIX System III

I stedet satsede moderselskabet AT&T på at udvikle et kommercielt produkt, som fik navnet UNIX System III. Det kom i slutningen af 1981 og kombinerede egenskaber ikke bare fra Version 7 Unix, men også fra en række andre Unix-udgaver inden for AT&T, inklusive allerede nævnte PWB/UNIX.

Dette var dog ikke den første kommercielle udgave af Unix. Den første var IS/1 fra Interactive Systems Corporation. Den kom allerede i 1977 og var en variant af Version 6 Unix baseret på en licens fra AT&T.

Men det er fra og med UNIX System III, at det virkelig begynder at blive vanskeligt at følge hele udviklingen, som skete inden for Unix. For en række selskaber skaffede sig licens fra AT&T til at lave egne, kommercielle Unix-udgaver. Dette kom i tillæg til alle, som baserede sig på BSD.

SunOS og Solaris

Unix-versionen fra det tidligere Sun Microsystems har en lidt speciel historie. Da SunOS 1.0 kom i 1983, var operativsystemet baseret på BSD og kørte på Suns Motorola 68k-baserede maskiner. SunOS blev videreudviklet med nye versioner frem til november 1994.

Men allerede i 1987 indgik AT&T og Sun et samarbejde om at slå de mest populære Unix-varianter sammen på den tid – BSD, Unix System V (som efterfulgte System III i 1983), SunOS og Xenix.

Xenix var Microsoft Unix-udgave, som kom i 1980.

Resultatet af samarbejdet mellem AT&T og Sun kom i 1988 og blev kaldt for Unix System V Release 4 (SVR4). I 1991 blev det klart, at Sun ville erstatte SunOS med en Unix-udgave baseret på SVR4. Dette operativsystem fik navnet Solaris, som i dag udgives af Oracle.

Den første nye og bredt tilgængelige udgave af Solaris fik versionsnummer 2.1 og kom i december 1992. 2.0-versionen var kun tilgængelig for udviklere, mens 1.x-udgaverne bare var et andet navn for SunOS 4.x-opdateringer, som blev udgivet efterfølgende.

Unix-krigene

Suns Unix-udgaver var på ingen måde de eneste kommercielle Unix-udgaver. DEC havde sit Ultrix, HP havde sit HP-UX, Silicon Graphics havde sit Irix, og IBM havde sit AIX, for bare at nævne er par stykker. Enkelte lever videre den dag i dag.

En tæt på fuldstændig oversigt over alle varianter og versioner af Unix-operativsystemer og Unix-lignende operativsystemer findes i dette dokument (PDF), som fortsat vedligeholdes. Det viser også, hvilke Unix-varianter nye Unix-varianter og -versioner til enhver tid har bygget på. I enkelte år var der mellem 30 og 40 varianter tilgængelige på samme tid.

Ud over, at det var en kamp om dominans mellem ‘de langhårede’ på BSD-siden og ‘de kortklippede’ på AT&T System V-siden, var der også større og mindre forskelle på alle de kommercielle leverandørers Unix-udgaver. Denne rivalisering er blevet kaldt for Unix-krigene.

Alle forskellene på de forskellige Unix-varianter gjorde blandt andet, at der var vanskelig software, som kunne køres på tværs af varianterne.

Standardisering

Mens dette pågik, kom der flere overlappende initiativer til standardisering af Unix. I 1988 kom POSIX (Portable Operating System Interface), som oprindelig var koncentreret om en del funktioner i C-baserede systembiblioteker. Senere blev den anset som en mindste fællesnævner, som blev opfyldt af både System V- og BSD-varianterne, men også af enkelte andre, Unix-lignende systemer.

Flere af standardiseringsinitiativerne blev i 1996 samlet i The Open Group, som blandt andet er standardiseringsorganisationen for Unix-varemærket. Systemer, som skal kunne bruge Unix-varemærket, skal fuldstændig efterleve det, som kaldes for Single UNIX Specification, et fælles navn til en familie med standarder for operativsystemer, inklusive førnævnte POSIX. Den nyeste udgave kom sidste år.

Ved siden af alt dette er der blevet udgivet flere Unix-lignende systemer. GNU-operativsystemet med Linux-kernen er nok det mest kendte. Andre eksempler er Idris, Coherent, Minix, Cromix og Android. Sidstnævnte er baseret på Linux-kernen, men kun en smule fra GNU.

Santa Cruz Operation

Unix’ historie har ikke været fri for stridigheder om ophavsret. De mest kendte stridigheder satte SCO Group i gang. Før vi kommer til det, bør vi lige repetere, hvordan SCO Group fik fat i (dele af) Unix-rettighederne.

Oprindelig hed selskabet Caldera Systems, før det skiftede navn til SCO Group i 2002 . Caldera Systems købte i 2001 Unix-rettighederne og -virksomheden til det separate softwareselskab Santa Cruz Operation (SCO), som kort tid efter skiftede navn til Tarantella, som var navnet på et af datterselskaberne. Handelen inkluderede teknologierne bag produktet UnixWare, som var blandt det, SCO modtog i forbindelse med en aftale med Novell i 1995.

Mange af de Unix-relaterede rettigheder havde Novell fået fat i, da selskabet købte Unix System Laboratories-divisionen (USL) hos AT&T Corporation i 1993. USL var ansvarlig for at udvikle og vedligeholde UNIX System V Release 4-kildekoden (SVR4). Inkluderet i handelen var også varemærket Unix, men dette blev samme år doneret til X/Open, én af standardiseringsgrupperne, som senere blev en del af The Open Group.

Det var for øvrigt Santa Cruz Operation, som i 1987 købte rettighederne til Microsofts Unix-version, Xenix, efter at have porteret og solgt licenserede udgaver af operativsystemet siden 1983.

Trussel mod Linux

Al denne forhistorie gjorde, at SCO Group mente at eje rettighederne til al Unix-kildekoden udviklet hos AT&T-ejede USL. Der var på ingen måde enighed om dette, men tidligt i 2003 kom det frem, at selskabet var i færd med at undersøge, om Linux kunne indeholde ophavsretsbeskyttet materiale.

GNU / Linux har meget til fælles med Unix, men er ikke baseret på Unix-kildekode. Illustration: Wikimedia Commons

I marts samme år blev IBM sagsøgt af SCO Group for at have taget bidder af Unix-koden og lagt dem ind i Linux. Det blev ikke oplyst, hvad IBM skulle have kopieret, men erstatningskravet fra SCO Group var på 1 milliard dollars for tabte licensindtægter fra Unix.

Selskabet truede også med at trække licensen på IBM’s Unix-version tilbage inden 100 dage, hvis IBM ikke betalte. SCO Group gjorde alvor af truslen i juni 2003.

Senere sagsøgte SCO Group en række andre selskaber for lignende forhold, inklusive Novell. Derudover truede selskabet med at kræve licensafgift fra alle Linux-brugerne.

SCO Group huskes i dag måske bedst som patenttrolden, som ikke ville dø. Det sidste af væsentlig karakter, som skete med selskabet, var, at det begærede sig konkurs i 2012. Før det havde en række retsinstanser slået fast, at det er Novell og ikke SCO, som ejer rettighederne til Unix.

Udgivet som åben kildekode

Selv om der er flere af de ældre Unix-varianter, som stadig lever i dag, inklusive BSD-baserede FreeBSD, OpenBSD, NetBSD og DragonFly, er det hos Apple, at Unix når ud til de store antal brugere.

I 1997 købte Apple den tidligere computerleverandør NeXT. Med i købet fik Apple NeXTStep-operativsystemet, en Unix-variant delvis baseret på BSD, og programmeringsgrænsefladen OpenStep.

Allerede den 7. januar 1997 meddelte Apple planerne om et nyt operativsystem baseret på NeXT-teknologien. Det fik kodenavnet Rhapsody. Efter et par testudgaver blev operativsystemet udgivet som Apples første serveroperativsystem, Mac OS X Server, i 1999.

Den første klientversion, Mac OS X, blev først lanceret den 24. marts 2001. Senere blev operativsystemet døbt om til OS X, før det i 2016 fik navnet macOS.

I 2000 blev blandt andet kernen i Mac OS X udgivet som åben kildekode under navnet Darwin. Også de fleste andre af Apples operativsystemer er baseret på Darwin, inklusive watchOS, iOS og tvOS. Men det er efter sigende kun macOS, som er certificeret som kompatibel med den nævnte Single UNIX Specification.

Dermed er MacOS sandsynligvis den Unix- og BSD-variant, som flest har et forhold til i dag.

Kilderne til artiklen inkluderer blandt andet: Unix: An Oral History, Wikipedia, The Open Group og Dennis M. Ritchie.

Artiklen er fra digi.no.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (11)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Henrik Kramshøj Blogger

Man kunne vel egentlig blot anbefale folk at købe bogen:

A Quarter Century of UNIX (Addison-Wesley Unix and Open Systems) Paperback – 31 May 1994
by Peter H. Salus
ISBN-10: 0201547775
ISBN-13: 978-0201547771

  • 0
  • 0
Hans Nielsen

Læste for meget længe siden en god og lang guide og dukumentation til Linux CLI.
Har glemt langt det meste, men filsystem, rettigheder, pipes, / har hængt ved.

Det har samtidigt givet mig en meget god basis for at forstå det underligende, som bruger retigheder, og filsystem. Selv om jeg næsten kun bruger et GUI.

På også andre systemer, så jeg vil da opfordre andre til ikke kun at læse historien, men også at læse om og lærer systemet. Da det giver en basis for forståelse, som man ikke altid oplever, når man til dagligt bruger et GUI som i windows.

Så til dem som ikke er så gammel så de kender til DOS. Så synes jeg de skal lærer og læse om CLI i
Uni* Linux, det kommer også snart til windows

Tror det var på slug, jeg fandt, læse og lærte om CLI, men kan ikke finde det nu. Men der er sikkert nogle andre som kan linke til en god gratis guide gerne på Dansk ?

https://tutorials.ubuntu.com/tutorial/command-line-for-beginners#0

  • 0
  • 0
Christian Nobel

Og nu vi er i gang.

Der er altså ikke noget der hedder et bilskilt på dansk, det hedder en nummerplade.

Jeg kan i øvrigt huske at i forne tider sagde onde tunger at Unix bare var VMS hvor alle kommandoer var forkortet ned til kryptiske 2-3 tegns kommandoer- teknisk var det nu ikke korrekt, Unix og VMS har ikke meget tilfælles, men det med de kryptiske kommandoer havde de nu ret i.

  • 1
  • 2
Per Tolbøll

Jeg kan i øvrigt huske at i forne tider sagde onde tunger at Unix bare var VMS hvor alle kommandoer var forkortet ned til kryptiske 2-3 tegns kommandoer- teknisk var det nu ikke korrekt, Unix og VMS har ikke meget tilfælles, men det med de kryptiske kommandoer havde de nu ret i.


Det er såmænd ikke så svært, f.eks hedder SHOW SYSTEM bare ps -ef - og sådan er det hele vejen igennem ;-)
I øvrigt har VMS meget mere tilfælles med Windows NT hvis man lige linder lidt på låget.
(I øvrigt havde DEC en anden CLI, der hed MCR, der vitterligt også var 2-3-bogstavers kommandoer all the way, men den var vist ikke så udbredt på VMS)

  • 1
  • 0
Palle Simonsen

Unix og nu Linux's betydning er uomtvistelig. Egentlig fantastisk at det samme OS bruges til supercomputere, Kubernetes Clusters, web servere, diverse RDBMS og NoSQL clusters m.m., smarttv's telefoner, ... osv.

Selvom det personligt ikke er blevet ti l så mange one-liners med sed, awk etc. er det blevet til en del løsninger over årene til diverse televirksomheder, betalingstjenester, luftfart, beslutningstøtte m.m.

Unix/Linux er med sine programmørvenlige værktøjer en fantastisk udviklingsplatform, hvis man ikke har kodeskræk - og så er der jo både et subsystem og en bash til W10, hvis det er der man er :)

Alt ære til Ritchie, Kernighan, Stalhlman, Thorvals og vores egen Kamp m.fl. for at skabe og holde Unix kørende

  • 3
  • 0
Martin Kofoed

Helt enig.

Joken op gennem nullerne om at "[next_year] will be the year of Linux on the desktop..." med henvisning til gennembrudet, som aldrig rigtig kom, er blevet irrelevant, al den stund at Linux (og andre Unix-varianter) kan findes snart sagt ALLE andre steder, og at brugerne også har flyttet sig væk fra den traditionelle desktop. Slaget er dermed indiskutabelt vundet på alle andre platforme end den traditionelle og stagnerende desktop. For én, som har kørt linux på private desktops, servers, set-top-bokse osv. osv. siden begyndelsen af nullerne, er det en meget tilfredsstillende følelse. :-)

I dag ved mange knap nok, at de starter et antal linux-instanser op, når de afvikler deres webapp på en docker swarm. Det er blevet en commodity på linie med vand i hanen.

  • 3
  • 0
Christian Nobel

Unix og nu Linux's betydning er uomtvistelig. Egentlig fantastisk at det samme OS bruges til supercomputere, Kubernetes Clusters, web servere, diverse RDBMS og NoSQL clusters m.m., smarttv's telefoner, ... osv.

Helt enig.

Og så til embedded brug - personligt bruger jeg Raspberry Pi en masse, ikke fordi det er den bedste hardware, men fordi der er et stort community omkring den, hvilket jo er en kæmpe styrke ved Linux.

Lidt OT, så vil jeg varmt anbefale Alpine Linux til Raspberry - alt afvikles fra RAM, så farvel til ødelagte SD kort - og så fylder den ingen ting.

  • 2
  • 0
Log ind eller Opret konto for at kommentere
IT Company Rank
maximize minimize