Deze vertaling bevat nog niet de wijzigingen die zijn gemaakt sinds 2021-08-30 in het originele Engelstalige artikel.

Je zou kunnen kijken naar deze wijzigingen. Lees ook de handleiding voor vertalingen voor informatie over het onderhouden van vertalingen van dit artikel.

Linux en het GNU-systeem


Voor meer informatie hierover, zie ook GNU/Linux veelgestelde vragen, en Waarom GNU/Linux?


Veel computergebruikers gebruiken dagelijks onbewust een aangepaste versie van het GNU-systeem. Door een bizarre wending in het verleden is de huidige, meestgebruikte versie van GNU bekend onder de naam “Linux”, en veel gebruikers zijn zich er niet van bewust dat dit het GNU-systeem is, ontwikkeld door het GNU-project.

Linux bestaat echt en men gebruikt het, maar het is slechts een deel van het besturingssysteem. Linux is de kernel (de “kern” van het besturingssysteem): het programma dat de toegang regelt tot de diverse onderdelen van het systeem zodat ander programma's behoorlijk kunnen draaien. De kernel is een onmisbaar onderdeel van het besturingssysteem, maar op zichzelf niet bruikbaar; het kan alleen functioneren in een compleet besturingssysteem. Linux wordt meestal gebruikt in combinatie met het GNU-besturingssysteem: het hele systeem is eigenlijk GNU met Linux toegevoegd, GNU/Linux dus. Al die zogeheten “Linux” distributies zijn dus eigenlijk GNU/Linux-distributies.

Veel gebruikers kennen het verschil niet tussen de kernel, Linux, en het systeem als geheel, wat ze óók “Linux” noemen. Dit dubbele gebruik van de naam geeft geen duidelijkheid. Deze gebruikers denken vaak dat Linus Torvalds het hele systeem heeft ontwikkeld in 1991, met wat hulp van buitenaf.

Programmeurs weten meestal wel dat Linux een kernel is. Maar omdat ze vaak aan Linux horen refereren als aan het hele systeem nemen ze aan dat de manier waarop het in ontwikkeld de benaming Linux rechtvaardigt. Zij geloven bijvoorbeeld dat, nadat Linus klaar was met de Linux kernel, de gebruikers op zoek gingen naar andere vrije software om het te completeren en de meeste andere onderdelen zomaar vonden, klaar voor gebruik.

Wat ze vonden was niet toevallig en lag er niet zo maar—het was het GNU-systeem dat bijna af was. De beschikbare vrije software maakte het geheel compleet doordat het GNU-project al sinds 1984 aan de weg timmerde om een compleet besturingssysteem van de grond te krijgen. In het GNU-manifest schetsten we het doel voor het maken van een op Unix lijkend systeem met de naam GNU. De eerste aankondiging van het GNU-project bevat ook een aantal doelen voor het GNU-systeem. Tegen de tijd dat Linus aan Linux begon was GNU al bijna af.

De meeste vrije-softwareprojecten hebben als doel het ontwikkelen van één programma voor een bepaald doel. Linus Torvalds bijvoorbeeld had als doel een kernel die op Unix lijkt (Linux); Donald Knuth had als doel een tekstzetter (TeX); Bob Scheifler had als doel een venstersysteem (X Window systeem). Het is normaal om de bijdrage van een dergelijk project af te meten aan de specifieke programma's die uit dat project kwamen.

Wanneer we zo de bijdrage van het GNU-project zouden bekijken, wat zou dan de conclusie zijn? Een verkoper van CD-ROM's kwam erachter dat in hun “Linux-distributie”, GNU-software de grootste bijdrage leverde met 28% van de totale broncode inclusief een aantal grote onderdelen, onmisbaar voor het systeem. Linux zelf was zo'n 3%. (De verhouding in 2008 zijn ongeveer dezelfde: in het versiebeheer van gNewSense maakt Linux 1,5% en de GNU pakketten 15% uit van de distibutie.) Wanneer je dus een naam zou bedenken voor het systeem op basis wie de programma's ervoor had geschreven dan zou je eerder uitkomen op “GNU”.

Maar we vinden niet dat dit de juiste benadering is. Het GNU-project was en is geen project voor het ontwikkelen van een specifiek programma. Het was geen project om een C-compiler te ontwikkelen, hoewel we dit wel gedaan hebben. Het was geen project om een tekstbewerkingsprogramma te maken, hoewel we die ontwikkeld hebben. Doel was om een compleet vrij systeem te ontwikkelen, lijkend op Unix: GNU.

Velen hebben enorm bijgedragen aan de vrije software in het systeem en allemaal verdienen ze het om genoemd te worden. Maar de reden waarom het een integraal systeem is—en niet alleen maar een verzameling bruikbare programma's—is omdat dit het doel was van het GNU project. We hebben een lijst opgesteld met benodigde programma's zodat het een compleet vrij systeem zou worden en zijn daar systematisch naar op zoek gegaan, hebben delen zelf ontwikkeld, of laten ontwikkelen. We schreven belangrijke maar saaie (1) onderdelen omdat je nu eenmaal niet zonder kunt. Sommige gereedschappen werden vanzelf populair onder programmeurs maar we schreven ook vele onderdelen die geen gereedschap waren (2) . We schreven zelfs een schaakspel, GNU Chess, omdat een compleet systeem ook spelletjes nodig heeft.

Begin jaren '90 hadden we een compleet systeem klaar, op de kernel na (waar we ook aan werkten, GNU Hurd, die bovenop Mach liep). Ontwikkeling van de kernel was een stuk moeilijker dan verwacht; GNU Hurd begon in 2001 stabiel te draaien. We hebben echter nog een lange weg te gaan voordat het klaar is voor algemeen gebruik.

Gelukkig hoefden we door toedoen van Linux niet te wachten op de Hurd. Nadat Torvalds Linux in 1992 had bevrijd vormde dit het laatste stukje van de puzzel die het GNU-systeem is. Men kon daarna Linux combineren met GNU om zo een compleet vrij systeem te verwezenlijken: een versie van het GNU-systeem dat ook Linux bevatte. Met andere woorden, het GNU/Linux-systeem.

De twee combineren klinkt eenvoudig genoeg maar was niet zo makkelijk. Sommige onderdelen(3) van GNU moesten behoorlijk op de schop om met Linux te kunnen samenwerken. Het geheel zo integreren dat een distributie zo “uit de verpakking” zou werken was ook zo'n moeilijke klus. Dit moest problemen oplossen als hoe het systeem te installeren en op te starten—iets waar we nog niet naar hadden gekeken omdat we nog niet zover waren. De mensen die de diverse distributies ontwikkeld hebben droegen hun steentje bij maar dat zou toch wel opgepakt zijn.

Het GNU-project steunt GNU/Linux-systemen en ook het GNU-systeem, met financiële steun van de FSF. We financierden het herschrijven van uitbreidingen op de C-bibliotheek die met Linux te maken hadden, zodat deze nu naadloos samenwerken en de huidige GNU/Linux-systemen gebruiken nu de bibliotheek zonder aparte wijzigingen. De FSF financierde ook de start van de ontwikkeling van Debian GNU/Linux.

Tegenwoordig zijn er veel varianten van het GNU/Linux-systeem in omloop (“distributies” genoemd). De meesten daarvan bevatten ook niet-vrije software—hun ontwikkelaars volgen een “open broncode” filosofie die meer verwant is aan Linux dan aan de “vrije software” filosofie . Maar er zijn ook compleet vrije GNU/Linux-distributies. De FSF steunt hier een aantal van met computerapparatuur.

Het maken van een vrije GNU/Linux-distributie is niet alleen een kwestie van het uitsluiten van niet-vrije software. Tegenwoordig bevat de gangbare versie van Linux ook niet-vrije programma's. Het is de bedoeling dat dit soort programma's in in- en uitvoerapparaten wordt geladen wanneer het systeem opstart en worden alleen in binaire vorm uitgeleverd als onderdeel van de "broncode" in de vorm van eindeloze nummerreeksen. En dus houdt dat in dat we ook een vrije versie van Linux moeten onderhouden.

Of je nu GNU/Linux gebruikt of niet, verwar mensen alsjeblieft niet door de naam “Linux” slordig te gebruiken. Linux is de kernel, een hoofdbestanddeel van het systeem. Het systeem als geheel is min of meer het GNU-systeem met daaraan Linux toegevoegd. Wanneer je het over deze combinatie hebt, noem het dan alsjeblieft “GNU/Linux”.

Wanneer je een link naar “GNU/Linux” aan wilt maken ter referentie, dan zijn dit artikel en http://www.gnu.org/gnu/the-gnu-project.html een goede keuze. Als je ter referentie een link naar Linux, de kernel, wilt aanmaken dan is http://foldoc.org/linux een goede URL om te gebruiken.

Aanvullingen

Behalve GNU is er nog één ander project dat onafhankelijk een vrij besturingssysteem heeft gemaakt dat lijkt op Unix. Dit systeem kent men als BSD, ontwikkeld aan de universiteit van Berkeley. In de tachtiger jaren is dit begonnen als niet-vrij systeem maar werd vrij gemaakt in de jaren 90. Een vrij en bestaand besturingssysteem(4) is tegenwoordig altijd een variant op het GNU systeem of op BSD.

Mensen vragen weleens of BSD ook een versie van GNU is, net als GNU/Linux. De ontwikkelaars van BSD werden geïnspireerd door het voorbeeld van het GNU-project om hun code vrij te geven, daarbij geholpen door aanmoedigingen van GNU activisten, maar de code heeft weinig overeenkomsten met GNU. Huidige BSD-systemen gebruiken wel wat code van GNU, net als GNU wel het een en ander gebruikt van BSD maar over het geheel bezien zijn het toch twee verschillende systemen die apart van elkaar zich ontwikkeld hebben. De ontwikkelaars van BSD hebben geen kernel gemaakt en dit toegevoegd aan het GNU-systeem en dus is een benaming als GNU/BSD hier niet op zijn plaats.(5)

Voetnoten

  1. Deze saaie maar belangrijke componenten zijn onder andere de GNU assembler (GAS) en de linker (GLD) beide nu onderdeel van het GNU Binutils pakket, GNU tar, en meer.
  2. Bijvoorbeeld de Bourne Again SHell (BASH), de PostScript lezer Ghostscript, en de GNU C bibliotheek zijn geen programmeergereedschappen. Ook GNUCash, GNOME, en GNU Chess niet.
  3. Bijvoorbeeld de GNU C bibliotheek.
  4. Nadat dit was geschreven is er een bijna geheel vrij Windows-achtig systeem ontwikkeld, hoewel dit technisch gezien verschilt van GNU of Linux, dus het is hier niet van toepassing. Het merendeel van de kernel van Solaris is inmiddels vrijgegeven maar wanneer je daar een vrij systeem van wilt maken zul je nog delen van de kernel moeten vervangen en het vervolgens in GNU of BSD moeten hangen.
  5. Hoewel, in de jaren na het verschijnen van dit artikel is de GNU C bibliotheek overgezet op diverse versies van de BSD kernel, die het mogelijk maakt het GNU systeem met deze kernel te distribueren. Net als GNU/Linux zijn dit inderdaad varianten op GNU en heten dus bijvoorbeeld GNU/kFreeBSD en GNU/kNetBSD, afhankelijk van de gebruikte kernel. Doorsnee gebruikers van normale bureaucomputers zullen echter al nauwelijks het verschil kennen tussen GNU/Linux e GNU/*BSD.