Linus og Linux-kernen — hvordan “open source”-metoden blev opfundet

I dette uddrag fra min kommende bog om fri software hører vi om, hvordan en ung datalogistuderende i 1991 begyndte at lave et helt nyt styresystem, der i dag er gratis til rådighed for alle og bruges på hundreder af millioner af computere verden over.

Og om, hvordan det både lagde grunden til en længere konflikt i bevægelsen for fri software, og hvordan Linus Torvalds uforvarende kom til at opfinde “open source”-metoden.

Linus Torvalds og Linux

I den kronologiske fortælling er vi nu ved at være fremme ved år 1991. Det år tog GNU-systemet sit næste store skridt fremad, da den dengang 21-årige finske datalogistuderende Linus Torvalds blev træt af at spadsere tværs over Helsinkis universitetsområde i den kolde nordiske vinter. I forbindelse med studiet havde Torvalds fulgt et kursus i styresystemer. Herfra vidste han, at den amerikansk/hollandske datalog Andrew Tanenbaum havde skabt et UNIX-lignende styresystem ved navn MINIX, der kunne køre på ganske almindelige PC'er som Torvalds' egen. Med det installeret kunne han eksperimentere med styresystemer og hardware på sin egen computer derhjemme og behøvede ikke gå hele vejen for at bruge en af universitetets computere.

Torvalds var interesseret i at undersøge funktionerne i sin egen computers CPU, den dengang ret ny Intel 80386-processor. Han begyndte derfor at skrive et simpelt UNIX-lignende styresystem. Han kom hurtigt så langt, at han kunne læse fra tastaturet og skrive på skærmen og begyndte at kigge sig om efter måder, hvorpå han kunne føje endnu mere funktionalitet til sit lille, hjemmebyggede system.

Torvalds havde få måneder forinden set Richard Stallman holde foredrag på universitetet i Helsinki og var meget opmærksom på de grundlæggende ideer bag fri software. For Torvalds handlede det mest om gensidighed: Jeg deler mine programmer og min kildekode med dig på den betingelse, at du også deler de ændringer, du selv laver. GNU-værktøjerne passede perfekt til Torvalds' planer om at kunne bygge et nyt styresystem på sin egen PC. Han begyndte derfor at tilpasse sit system, så de forskellige GNU-programmer kunne køre på det. Til sidst havde han noget, som ikke var tilfredsstillende, men dog virkede.
Tiden var kommet til at fortælle verden om det nye system, og det gjorde Torvalds den 25. august 1991 på Usenet-gruppen comp.os.minix:

I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

... I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :–)

(https://fossbytes.com/linus-torvaldss-famous-email-first-linux-announcement/)

Det system, der senere blev kendt under navnet Linux, var født.

Selve Linux-kernen var dog ikke Linux-projektets største nyskabelse. Linus Torvalds fortsatte nemlig med at annoncere nye udgaver af systemet ud på nyhedsgruppen comp.os.minix. Her kunne andre entusiaster downloade systemet, forsøgte at køre det på deres egne computere, rette fejl i kildekoden og tilføje deres egne udvidelser. Torvalds bad om, at man sendte rettede udgaver af systemet tilbage til ham. Så snart han havde modtaget disse, flettede han dem sammen med sin egen kode, så de kunne komme med i fremtidige versioner. Efterhånden som systemet blev bedre blev det også mere populært. Allerede i midten af 1990erne var det nye styresystem vokset fra en enkelt studerendes private hobbyprojekt til et stabilt og professionelt Unix-lignende system, der blev brugt til filservere og arbejdsstationer på universiteter verden over. Den stigende udbredelse betød, at endnu flere fik lejlighed til at arbejde på det, og Linux-systemet voksede som ved en sneboldseffekt. På det tidspunkt var systemets udvikling for længst flyttet fra nyhedsgruppen comp.os.minix til den nyoprettede comp.os.linux. Folk sendte deres bidrag, hvor de havde fået en ny del af systemet eller en ny slags hardware til at virke med linux-kernen, til nyhedsgruppen, og Linus Torvalds modtog alle bidrag og indarbejdede dem i sin egen udgave af systemet. Torvalds opfandt dermed uden at være klar over det open source-metoden, det distribuerede samarbejde over Internettet, som i dag karakteriserer stort set alle fri software-projekter.

Udvekslingen af kode mellem bidragyderne blev lettet af, at Torvalds i 1992 besluttede at udsende sit styresystem under GNU General Public License, der som allerede beskrevet var den licens, som Richard Stallman havde udviklet for at sikre, at GNU-systemet altid ville forblive frit. Dette forpligtede alle, der ønskede at offentliggøre nye versioner af systemet, til også at offentliggøre kildekoden – og når nu de var ved det og Linus gerne ville have den, sendte de den som regel til ham også. Valget af licens garanterede, at man uden problemer kunne bruge samtlige GNU-programmer med det nye Linux-system. Eftersom GNU-værktøjer som tekstbehandlingsprogrammet Emacs og oversætteren GCC allerede var standard i de datalogiske og generelt naturvidenskabelige institutter på universiteterne, bidrog det kun til Linux' popularitet.

Allerede i 1993 begyndte styresystemet “Linux” at dukke op i kommercielle pakker, og i samme år grundlagde Ian Murdoch den ikke-kommercielle og fællesskabs- eller community-drevne Linux-udgave Debian – opkaldt efter Murdoch selv og hans hustru Deborah. Debian udviklede sig efterhånden til en af de vigtigste og mest stabile udgaver af Linux-systemet.

Linux' uventede succes havde umiddelbart to ofre. For det første var der Andrew Tanenbaums lille Unix-system Minix, som indtil 1991 havde været et af de få Unix-lignende systemer, der kunne bruges på almindelige PC'ere. Minix blev solgt, primært til undervisningsbrug, sammen med al sin kildekode. Minix var i modsætning til Linux ikke fri software, og det kunne ikke deles frit, hver enkelt bruger var nødt til at købe sit eget eksemplar. Da Linux kom frem og kunne deles frit, var Minix pludselig meget mindre attraktivt. Det andet offer var Free Software Foundations egen kerne, GNU/Hurd. Da Linux for alvor begyndte at slå an i akademiske kredse, var der ikke længere det samme pres for at færdiggøre det i forvejen hårdt ramte Hurd-projekt. På en måde kunne det også være lige meget. GNU-systemet havde allerede fået en kerne, og den hed Linux.

Linux' popularitet udløste snart en konflikt mellem Linus Torvalds' gruppe af meget aktive entusiaster, hvis primære interesse i systemet var at skabe noget, der virkede (og have det sjovt så længe), og Free Software Foundation med Richard Stallman i spidsen, hvis vision var politisk: De arbejdede på at skabe et system, der var og forblev frit for alle at bruge.

Konflikten var altså primært ideologisk. Linus og hans horder af hobby-entusiaster ville først og fremmest rode med teknikken og interesserede sig ikke altid for bevægelsens politiske og filosofiske mål. Kontrakten bag GPL så de som et middel til at sikre, at de selv havde adgang til fremtidige versioner af deres egen kode.

Richard Stallman var ikke tilfreds. Der eksisterede nu et fuldt færdigt styresystem, som byggede på det arbejde, han og hans samarbejdspartnere i Free Software Foundation havde udført — men der var ingen, der talte om andet end “Linux”. Linux' popularitet betød, at fri software og især GNU-projektets programmer blev mere udbredte, men det var der ikke rigtig nogen af systemets nye brugere, der vidste noget om.

Der opstod også praktiske problemer i samarbejdet mellem Linux-programmørerne og de ansatte og frivillige i Free Software Foundation. I arbejdet med at integrere GNU-værktøjerne med den nye kerne stødte Linux-folkene på en del fejl og mangler ved GNU-værktøjerne. I den samarbejdets ånd, som de selv var slået ind på, begyndte de at sende rettelser og ønsker om ny funktionalitet ind til GNU-projektets medarbejdere. Men her stødte de på en uventet forhindring. Hvor Linus som projektleder gerne ville have alt med og derfor gerne tog en ny funktion med i tillid til, at eventuelle fejl nok skulle blive rettet, var GNU-projektet præget af MIT-hackernes tekniske perfektionisme.

GNU-programmørerne ville hellere bruge timer på at diskutere en løsning end risikere at introducere en fejl i de færdige programmer. De begyndte også at miste tålmodigheden med den stadige strøm af henvendelser fra Linux-programmører, der ville have optaget deres egen kode i GNU. De begyndte at besvare disse henvendelser med nedsættende bemærkninger om kvaliteten af Linux-folkets arbejde. GNU-programmørerne fik derfor et ikke helt ufortjent ry for at være utilnærmelige og arrogante. I lang tid eksisterede der parallelle versioner af flere GNU-værktøjer, indtil der efterhånden blev opnået en forsoning mellem lejrene. Linux-projektets tekniske succes var ubestridelig, og GNU-projektets monolitiske karakter og intellektuelle arrogance måtte efterhånden blødes op. Under Stallmans ledelse var man kommet langt med en udviklingsmodel, der var baseret på nogle få, højtuddannede og meget hårdtarbejdende individers indsats, men denne model havde også sine begrænsninger.

Linux' succes og Hurd-kernens fiasko havde vist, at det ikke var muligt at designe al software i en komité af akademiske eksperter uden sammenhæng med den virkelige verden og dens pragmatiske krav. For at udvirke en forsoning kontaktede Stallman Ian Murdoch, der havde grundlagt Debian-systemet, der var en af de første såkaldte “distributioner” af GNU-værktøjerne med Linux-kernen. Debian er stadig et af de vigtigste Linux-projekter og var også en af de første 100% brugerstyrede og ikke-kommercielle udgaver af Linux (andre tidlige eksempler var community-drevne Linux-projekter er det endnu levende Slackware og det nu hedengangne SLS) . Som Debian-projektets leder spillede Murdoch en vigtig rolle i udbredelsen af Linux til folk, der var positivt indstillet over for tankerne bag fri software.

Stallman gik til Murdoch med et forslag til en enkel og letforståelig ændring: Det nye og efterhånden meget populære styresystem, der gik under navnet “Linux”, var opstået ved at kombinere Linus Torvalds kerne med GNU-projektets værktøjer. Var det så ikke rimeligt at kalde det samlede system for GNU/Linux (udtales “GNU plus Linux”) frem for bare Linux? Stallman bad med andre ord om, at Debian-projektet skiftede navn fra “Debian Linux” til “Debian GNU/Linux”, så GNU-projektets navn også blev nævnt. Dette ville både betyde, at GNU-projektet faktisk blev krediteret for den helt centrale rolle, det spillede i opbygningen af det samlede system, og at brugere af Debian blev konfronteret med navnet GNU og fik mulighed for at spørge til, hvad det betød. Ian Murdoch syntes godt om forslaget, som han opfattede som et forsøg på at forsone de stridende parter i det “tekniske” Linux-projekt og det “politiske” GNU. Debian-systemets officielle navn er den dag i dag “Debian GNU/Linux”. Dette omfattede dog kun Debian — andre distributioner blev ved med at omtale systemet som “Linux”. Den notorisk trættekære Richard Stallmans insisteren på at kalde det samlede system for “GNU/Linux” fremkaldte også hovedrysten hos nogle, der så det som en trættende og næsten barnlig insisteren på at få så meget af æren som muligt.

Spørgsmålet om, hvorvidt det samlede system, som man kan bygge af Linux-kernen og GNU-værktøjerne, skal hedde Linux eller GNU/Linux, er stadig ikke afgjort. Tilhængere af systemet som en billig og teknisk solid løsning vil som regel foretrække at kalde det “Linux” for at undgå at henlede opmærksomheden på de (måske lidt pinlige) bagvedliggende politiske ideer. Tilhængere af ideen bag fri software vil ofte kalde det “GNU/Linux” for at gøre opmærksom på, at valget af fri software i sidste ende er et politisk valg, der vedrører brugerens frihed til at påvirke og ændre den teknologi, der definerer hans eller hendes dagligdag.

Denne strid brød for alvor ud i slutningen af 1990erne, da open source-bevægelsen blev grundlagt. Anledningen var en voksende frustration med mulighederne for at realisere de i stifternes øjne enestående muligheder i tankerne bag fri software. Der var også en erkendelse af, at man med Linux-kernens enestående succes stod over for et helt nyt fænomen. Udvikling af store systemer var hidtil blevet opfattet som noget, der nødvendigvis måtte foretages af højtuddannede, vellønnede professionelle. For at skabe et nyt system måtte disse højtuddannede medarbejdere først gennem en lang og kostbar analyse- og designproces, hvorefter de kunne programmere et system, der skulle igennem en lige så lang test- og indkøringsfase, før det kunne bruges til noget.

Linus Torvalds havde sprunget alle disse led over og satte sig i stedet bare ned og skrev programmet. Han og hans ulønnede entusiaster skabte derefter på næsten ingen tid en kerne til et solidt og professionelt styresystem, der meget hurtigt skabte grobund for IT-forretninger i millionklassen. Programmøren Eric S. Raymond skrev i 1997 sit indflydelsesrige essay “The Cathedral and the Bazaar”, hvor han brugte titlens metafor til at forklare forskellen på de to udviklingsmodeller.

I et traditionelt softwareprojekter foregår udviklingen som i en katedral. Udviklerne holder sig ligesom præsterne i denne metafor afsondret fra menigheden og leverer først når alle forberedelser er overstået det endelige produkt til kirkegængerne i form af gudstjeneste eller softwarepakke.

Linux-systemet blev derimod til i fuldstændig åbenhed, så alle, der havde lyst, kunne gennemse koden og foreslå ændringer. Dette mindede ifølge Raymond om en østerlandsk basar, hvor små programstumper og bidrag til systemet går fra person til person, og hvor alle kunder (brugere og udviklere) har deres fulde frihed til at besøge alle butikker (alle delprogrammer og alle dele af koden), præcis som de vil. Med basar-metoden kunne man, som Linux-kernen beviste, skabe velafprøvede systemer i et tempo og af en kvalitet, som ingen havde drømt om før. Ifølge Raymond skyldtes dette, at den fri og gratis adgang til at afprøve systemet og undersøge dets kildekode medførte en grad af kvalitetskontrol og revision, som man slet ikke kendte i traditionelle katedral-projekter. Hvor katedral-modellen altid kommer ud med store, monolitiske systemer, der indeholder mange fejl, fordi udviklerne ikke kan tænke på eller afprøve alt, vokser basar-projekter op fra små minisystemer eller prototyper, som hele tiden bliver brugt og derfor hele tiden bliver rettet og forbedret, så den færdige udgave (ideelt set) hurtigt bliver stort set fejlfri. Som Raymond argumenterede, giver den åbne udviklingsmodel bedre resultater, fordi der potentielt er mange flere mennesker til at påpege de fejl, der uvægerligt vil opstå.

Raymond brugte konflikten mellem Linux-projektet og Free Software Foundations GNU-projekt som bevis for sin tese. GNU var udviklet efter den traditionelle udviklingsmodel med lønnede udviklere, der selv har ansvaret for at udvikle og frigive færdige systemer. Linux-kernen var fremstillet af ulønnede entusiaster, der primært gjorde det for at underholde sig i deres fritid. Hvor katedral-projektet GNU havde brugt adskillige år på ikke at få Hurd-kernen bare tilnærmelsesvis færdig, havde Linux-folket meget hurtigere skabt en fuldt færdig styresystemskerne. Dette var ikke bare en flot bedrift — før det rent faktisk skete, ville man have anset det for umuligt. Linux var ikke et legetøjssystem, det var kernen til et fuldt udviklet styresystem.

Det betød, at fri software ikke længere kun var et spørgsmål om frihed. Efter Linux var det også en helt ny udviklingsmodel, hvor åbenheden var den første betingelse. Ideen er at udvikle et system og lægge det ud, hvor alle kan se det. Ikke bare alle i hele firmaet – alle i hele verden kan se det, hvis de vil – og bruge det og og ændre i det. Hvis folk begynder at sende deres ændringer tilbage, er praksis i den metode, som Linus indførte, at bruge dem og glæder sig over den forbedring, de bidrager med. Hvis mange mennesker bruger systemet og interesserer sig for dets kode, vil de meste alvorlige fejl hurtigt forsvinde, eftersom der er mange mennesker til at falde over fejlene og rette dem.

Given enough eyeballs, all bugs are shallow”, som Raymond udtrykte det. Det centrale ved denne udviklingsmodel er åbenheden. Koden er frit tilgængelig, udviklingen diskuteres på en offentligt tilgængelig nyhedsgruppe eller mailing-liste, og alle har mulighed for at bidrage, hvis de har lyst.

Konsekvenserne af denne opfindelse skal vi høre mere om i næste kapitel.


Copyright 2025 Carsten Agger — CC-BY-SA

Follow me on Mastodon!.