Använder du Unix? Du kanske inte vet om det men din telefon, din server, din dator på skrivbordet eller kanske till och med din bilstereo kör sannolikt Unix eller någon form av det. Nu fyller världens kraftfullaste operativsystem 50 år – vi berättar hela historien.
Av Joacim melin
I den legendariska boken Unix Haters Handbook skriver Donald Norman, då anställd på Apple, detta i förordet:
”Vet du vad som är det verkliga problemet med Unix? Det verkliga problemet är att det blev så populärt. Det var inte meningen att Unix skulle bli populärt, det var gjort för några få personer som arbetade i sina labb på Digital Equipments gamla PDP-11-dator.”
I slutet på förordet tillade Norman:
”Om den här boken inte dödar Unix kommer ingenting att göra det.”
Han kunde inte ha haft mer rätt.
Unix är egentligen världens mest osannolika mjukvaruprojekt i form av ett operativsystem som varit dödsdömt gång efter annan, och där dess ursprungliga ägare gjorde allt för att mjölka pengar ur ett projekt som ägaren själv egentligen inte hade ett särskilt stort intresse av att vidareutveckla. Det är ett operativsystem som inspirerat och kopierats till åtskilliga andra, men oavsett vilken form det tagit sig ändå fortsatt bygga på samma filosofi som när det först presenterades 1969. Vi talar alltså om Unix, som numera får ses som en filosofi snarare än ett verkligt operativsystem. Ett operativsystem du på ett eller annat sätt använder varje dag, oavsett om du har för avsikt att göra det eller inte.
Ett lyckat misslyckande
Det började med ett misslyckande i mitten av 1960-talet i form av ett operativsystem kallat Muliplexed Operating and Computing System, eller Multics, som utvecklades i ett samarbete mellan General Electric och Bell Laboratories. I takt med att datorerna blev allt mer kraftfulla hade intresset för att göra det möjligt för flera användare att använda en och samma dator samtidigt vuxit. Det första större försöket utvecklades på MIT-universitetet i USA i slutet av 50-talet och början av 60-talet. Operativsystemet fick namnet Compatible Time-Sharing System, CTSS, och demonstrerades för första gången i november 1961 på en IBM 709-stordator som MIT ägde.
MIT får också anses vara platsen där hackerkulturen hade sin födelse och de hackers som var studenter på skolan ansåg, inte helt orättvist, att IBM 709-datorn var en styggelse i största allmänhet (mycket beroende på de restriktioner som datorn omgärdades av) och i synnerhet med tanke på att CTSS byggde på att varje användare hade egna inloggningskonton, och om det var något hackarna på MIT inte tålde var det en låst dörr eller ett minst lika låst inloggningskonto – information skulle vara fritt tillgänglig för alla.
Länklista |
Att studenterna också hade friare tillgång till en PDP-6-dator från Digital Equipment gjorde att de inom kort började hacka på ett alternativ till CTSS, som MIT-studenten Tom Knight lite ironiskt döpte till Incompatible Timesharing System (ITS) som hackergänget på MIT byggde helt enligt sina egna värderingar, tycke och smak.
Utvecklingen flyttas över till en PDP-10-dator
Det fanns användarkonton i ITS (men det gick att använda utan att faktiskt logga in, något som ansågs vara oartigt) men alla filer som lagrades på datorn var tillgängliga för alla. ITS skrevs i Assembler på rekordtid och snart fick hackarna tillgång till en betydligt snabbare PDP-10-dator och all utveckling av ITS flyttades över dit. Att ITS skrevs i Assembler kan i dagsläget anses vara oviktigt, men det influerade på många sätt hur Unix skulle utvecklas några år senare. ITS användes för övrigt på MIT fram till 1990, men hade spridits över världen och den sista plats där det användes var på datorföreningen Stacken på Kungliga tekniska högskolan i Stockholm där det användes fram till 1995.
ITS hade många intressanta funktioner – exempelvis var varje dator som körde ITS ansluten till Arpanet, föregångaren till internet, och det var möjligt att låta ett program exekveras på flera datorer med ITS samtidigt och arbeta med filer som fanns lokalt på varje dator.
Det utvecklades också flera intressanta mjukvaror på ITS, bland annat Emacs.
CTSS hade också sin beskärda del av intressanta tekniska framsteg – bland annat fanns den första varianten av E-post i CTSS i form av att användarna kunde skicka brev till varandra på samma dator.
Ken Thompson, som vi snart kommer att återvända till i denna historia, utvecklade en textredigerare kallad QED som senare fungerade som inspiration för Ed, Vi och Vim. Och som vi nämnde var CTSS det första operativsystem som implementerade lösenordsskyddade konton. CTSS porterades senare över till en större datormodell från IBM, 7094, men spreds precis som ITS inte till andra hårdvaruplattformar.
Multics har fortsatt att utvecklats
CTSS användes på MIT fram till och med 1973. Till skillnad från ITS och CTSS har Multics fortsatt utvecklas, åtminstone fram till och med december år 2016 då version 12.6f släpptes. Multics är numera baserat på öppen källkod och körs av naturliga skäl i en emulator då hårdvaran det skrevs för inte riktigt är praktisk att använda idag.
Det bör noteras att Multics, då det var en kommersiell produkt som först ägdes av General Electrics datordivision, senare Honeywell och till sist av Bull, kördes på en rad datormodeller från de tre företagen. Den sista kända installationen av Multics kördes av det kanadensiska försvaret och stängdes av i slutet av oktober 1990.
Varför är då denna inledning så viktig för Unix historia? Svaret är Ken Thompson. Han var nämligen en av utvecklarna bakom Multics och tyckte att det fanns en hel del intressanta ideér i Multics som han ville vidareutveckla, samtidigt som Multics var alldeles för komplicerat för hans smak och utvecklingstakten var alldeles för långsam. Dessa ideér delades av ytterligare fyra personer: Denis Ritchie, Brian Kernighan, Joe Ossanna och Douglas McIlroy som skulle komma in i projektet lite senare. Enligt legenden skickade Ken Thompson sin fru på semester en månad och satte sedan igång att skriva grunden till det som skulle bli Unix men som då gick under namnet ”Ken’s new system” – namnet Unics föreslogs av Brian Kernighan 1970, men ändrades senare till Unix. Resultatet av Thompsons hackande blev ett embryo, knappast ett färdigt operativsystem, men en kärna, en enkel kommandoradstolk, ett enklare filsystem och några verktyg räckte för att få bollen i rullning. Intressant nog skrevs allt detta på Multics innan det kunde köras igång på den PDP-7-dator som fanns att tillgå.
”Koden för filsystemet skrevs med krita på stora griffeltavlor och kom att kallas ’chalk file system’”
Initialt hade projektet svårt att få stöd från cheferna på Bell Laboratories. Unix-gänget presenterade aldrig några solida planer utan hankade sig fram och när de väl kom till skott och ville köpa en snabbare dator fick de nej av cheferna. Detta till trots fortsatte Ken Thompson och Dennis Ritchie sitt arbete. Koden för filsystemet skrevs med krita på stora griffeltavlor och kom att kallas ”chalk file system” (chalk = krita) – en typ av programmeringsmetodik man inte ser så ofta idag.
Ett system för brödraskap
Dennis Ritchie skrev 1979 ett dokument kallat The History of the Unix Time-sharing system där han redogjorde för varför han och hans kollegor från Multics-projektet bestämde sig för att utveckla det som skulle bli Unix:
”Vad vi ville var inte enbart att bevara en bra miljö att programmera i, utan också ett system där ett brödraskap kunde skapas. Vi visste av erfarenhet att en grundsten i delade datorsystem … är inte bara att knappa in program genom en terminal istället för en hålkortsskrivare, utan också att uppmuntra till nära kommunikation.”
I början av 1970 fick projektet lov att beställa en helt ny datormodell från Digital Equipment, en ”minidator” kallad PDP-11 som rymdes i ett 19-tumsrack. (Undertecknad hade för övrigt en modell kallad PDP-11/34 om tre rack ståendes i köket i sin första lägenhet för 27 år sedan, tills en hyresvärd på besök påpekade att den maximala punktbelastningen var ett ton per kvadratmeter, med en följdfråga om vad racken egentligen vägde…).
Otroligt nog fick alltså inköpet tummen upp av cheferna på Bell Laboratories och datorn beställdes i maj 1970. Ett par månader senare levererades datorn, dock utan någon form av disksystem som inte kunde levereras förrän i december samma år.
Satsar vidare
Utveckligen av Unix tog ny fart och knappt ett halvår efter diskarnas ankomst var attityden på Bell Laboratories gentemot det nya operativsystemet som förbytt – ingen ville längre lägga ned projektet utan mer hårdvara köptes in.
Ett experiment där patentavdelningen på Bell Laboratories använde en enklare egenutvecklad ordbehandlare på Unix-datorn föll väl ut och snart var det fler avdelningar på företaget som började använda applikationer på PDP-11-datorn, som nu började få problem med lagringsyta. Disken kunde endast lagra en halv megabyte och informationen fick istället lagras på band.
Det är dags att C
Unix var från början skrivet i Assembler, men 1971 påbörjades arbetet på det som skulle bli programmerings-
språket C och 1973 skrevs Unixkärnan om i C och antog den form som skulle leva kvar under många år. I sitt dokument från 1979 skrev Dennis Ritchie om hur framgången med porteringen av kärnan från Assembler till C gjorde att programmerarna bakom Unix insåg att C var i det närmaste det perfekta verktyget för mjukvaruutveckling. Unix blev aldrig helt fritt från Assemblerkod men de små delar som fanns kvar var enkla att flytta över till andra arkitekturer.
Snart skrevs i princip alla verktygsprogram i Unix i C och detta gjorde också att Unix som operativsystem blev extremt portabelt – borta var nästintill den stenhårda kopplingen till den underliggande hårdvaran som Assembler krävde och istället kunde man, med mer eller mindre stora ansträngningar, kompilera om hela Unix för en ny processorarkitektur eller datormodell där det behövdes.
Portabiliteten skulle bli en av Unix främsta egenskaper. En av de sämsta var hur operativsystemet sköttes ur en kommersiell synvinkel.
Källkoden spreds relativt fritt
Bell Laboratories var en del av det amerikanska telefonbolaget AT&T som nu hade börjat erbjuda Unix till universitet, myndigheter och kommersiella kunder i form av en licens där hela källkoden till Unix ingick i paketet. Det dröjde givetvis inte länge förrän källkoden spreds relativt fritt vilket bland annat ledde till att Arpanet antog Unix som standardoperativsystem för hela sitt nätverk framför de äldre Interface Message Processor-datorer (IMP) som använts från att Arpanet började byggas på bland annat Honeywells DDP-516-dator.
Dessa ersattes med PDP-datorer och därmed fanns också möjligheten att köra Unix. Det var dock inte bara militären som genom Arpanet började använda Unix, universiteten blev också intresserade, men i början av 1980-talet var prislappen för Unix så pass hög att många fick avstå och fortsätta köra exempelvis VMS på sina DEC-datorer som då var vanliga. På Berkeley-universitetet var man särskilt sugen på att köra Unix vilket gjorde att legendaren Bill Joy, som senare var med och startade datortillverkaren Sun Microsystems, redan 1970 började arbeta på en klon av Unix kallad Berkeley Standard Distribution, BSD.
Joy och flera andra programmerare arbetade sedan under den första halvan av 1980-talet med att bygga en Unixklon där de utgick från källkoden för Unix men skrev om koden så gott det gick. I juni 1991 släpptes en version av BSD kallad Net 2, den första Unixklon där källkoden var släppt helt fri för alla att nyttja och förbättra om de så önskade under BSD-licensen.
Linux, GNU och BSD
1983 började Richard Stallman arbeta på en egen Unix-klon han kallade Gnu’s Not Unix (GNU), men den kärna som skulle utgöra basen i GNU, kallad GNU Hurd, släpptes aldrig. Senare skulle Stallman hävda att Linux inte skulle funnits utan hans och andras ansträngningar och att det sålunda skulle kallas GNU/Linux.
Huruvida Stallman är korrekt i det antagandet är ständigt föremål för diskussion, men om man tänker sig att Stallman kunde släppt sitt eget operativsystem istället för att försöka döpa om någon annans dito, är man i undertecknads ögon inte ute och cyklar.
Linus Torvalds hade å sin sida börjat arbeta på en egen klon av Unix. Han släppte sin första version av kärnan till sitt operativsystem, som då gick under namnet Freaks (en sammanslagning av orden free, freek och Unix) i september samma år men det dröjde till 1994 innan Linux släpptes som ett helt operativsystem. Kärnan hade då distribuerats under Gnu Public License, GPL, sedan 1992.
Varför blev då inte BSD vad Linux är idag? I början på 1990-talet hade ett företag kallat Unix System Labs (USL) köpt rättigheterna till AT&T Unix och stämde 1992 Berkeley Software Design (BSDI), ett företag bildat 1991 som då levde på att utveckla och distribuera BSD under namnet BSD/OS. 1992 släppte BSDI operativsystemet BSD/386 och det var då ”hela helsicket” brakade loss på allvar. USL menade i sin stämning att BSD/386 innehöll ”källkod och affärshemligheter” från AT&T Unix. Hela saken löstes utanför domstol 1994 då Novell hade köpt upp USL.
”Svaret på varför BSD inte blev vad Linux är idag kan spåras tillbaka till när Red Hat börsintroducerades i augusti 1999”
Att USL stämde BSDI hade sannolikt inte så mycket att göra med varken källkod eller affärshemligheter utan det faktum att BSD/386 då kostade 995 amerikanska dollar, vilket kunde jämföras med AT&T Unix som kostade över 20 000 dollar. Det var sannolikt också ganska talande att av de tio webbplatser som fanns i mitten av 1990-talet drevs den absoluta merparten på BSD/386 framför något annat operativsystem, AT&T Unix inkluderat. Svaret på varför BSD inte blev vad Linux är idag kan spåras tillbaka till när Red Hat börsintroducerades i augusti 1999.
Börsintroduktionen blev en enorm framgång för Red Hat och givetvis ville BSDI göra samma sak, men där Red Hat lyckades, körde BSDI rakt i diket och både börsintroduktion och framgångar uteblev. Istället slogs BSDI året efter samman med Walnut Creek, ett företag som distribuerade gratis mjukvara på CD-ROM-skivor. Kort därefter köptes bolaget upp av Telenet System Solutions och året efter, 2002, såldes verksamheten som inkluderade BSD/OS till Wind River Software, som relativt snabbt lade ned BSD/OS. Konkurrensen från FreeBSD och andra BSD-baserade operativsystem blev alldeles för stark.
Fortsatta ägarbyten
Det var inte bara BSD som bytte ägare både en, två och tre gånger. Novell hade köpt AT&T Unix 1993 och döpt om hela klabbet till Unixware. De sålde det sedan vidare till Santa Cruz Operations (SCO) 1995. Åtminstone var SCO av den åsikten, men Novell delade den inte varför SCO stämde Novell över huruvida SCO faktiskt köpt rättigheterna till Unix eller inte.
Målet avgjordes egentligen aldrig. SCO ägnade sig också åt att stämma flera Linuxdistributioner och företag bakom dessa (i den mån det fanns några) i början på år 2000 vilket inte ledde till något annat än att fullständigt förgöra varumärket SCO i IT-industrins ögon.
Numera ägs varumärket Unix av ett konsortium kallat The Open Group med 461 medlemsföretag och organisationer som säkerställer att operativsystem som uppfyller en rad krav faktiskt får kalla sig för Unix, och ska man använda sig av varumärket får man certifiera sig och vackert betala en slant för det vilket en rad operativsystem också gjort genom åren. IBM:s AIX och ZOS, Hewlett-Packards HP-UX, Silicon Graphics Irix, Sun Microsystems Solaris, Digitals Tru64, Apples Mac OS är alla certifierade. Givetvis fanns det fler Unix-varianter, vem minns inte Nextstep, Minix, Plan 9, QNX, Coherent, Interactive 386/ix (som levererades på över 40 1,44 megabytes-disketter), Xenix, Unicos, Ultrix …
Vad har då allt detta att göra med din mobiltelefon, bilstereo, server, lagringsenhet, brandvägg, dator och TV?
Jo, de kan köra IOS som delvis baseras på kod från FreeBSD eller Android som baseras på Linux. Bilstereon kanske kör Android Auto och din server på Linux eller kanske OpenBSD. Lagringsenheten kan använda Freenas och brandväggen PFsense, som båda baseras på FreeBSD. Din datorn kan vara laddad med Linux eller Mac OS. Och din TV med Samsung Tizen eller Android TV, båda baserade på Linux.
Se där vad en månads programmerande kan leda till.