Linux: van hobbyproject tot volwaardig OS
In de zomer van 1991 kondigde de Finse programmeur Linus Torvalds aan een eigen gratis besturingssysteem te maken. Wat aanvankelijk ‘gewoon een hobbyproject’ was, is een kwart eeuw later het belangrijkste besturingssysteem ter wereld. De meerderheid van alle servers op internet draait inmiddels op Linux, net als alle Android-smartphones.
De geschiedenis van Linux begint bij Unix, het besturingssysteem dat in de jaren 1970 door AT&T werd ontwikkeld. Verschillende ontwikkelaars werkten op dat moment aan een eigen versie van het besturingssysteem, waarvan ze de broncode publiek wilden maken zodat iedereen er verder mee aan de slag kon. Eén van die ontwikkelaars was Richard Stallman, die in 1983 GNU startte (een recursief acroniem voor ‘GNU’s Not Unix!’). In het begin van de jaren 90 had het GNU-project een bijna volledig besturingssysteem ontwikkeld. Op één cruciale component na: de kernel, die het hele besturingssysteem controleert en superviseert. De ontwikkeling van de GNU-kernel, GNU Hurd, liep vast. Lees ook: Overstappen op Linux - Deel 1: Voorbereidingen.
Ondertussen had de Amerikaanse computerwetenschapper Andrew S. Tanenbaum, professor aan de Vrije Universiteit Amsterdam, zijn eigen Unixachtige besturingssysteem uitgebracht, MINIX. Hiermee wilde hij de principes van zijn tekstboek ‘Operating Systems: Design and Implementation’ illustreren. Studenten mochten de broncode bestuderen, maar er waren beperkingen op het wijzigen en herdistribueren van de code, waardoor het niet om opensourcesoftware ging. Bovendien was MINIX voor 16bit-computers ontwikkeld.
©PXimport
Hobbyproject van een student
Een van die studenten die dankzij MINIX leerden hoe een besturingssysteem werkt, was de Fin Linus Torvalds. Omdat hij op zijn pc met 386-processor een Unixachtig besturingssysteem wilde draaien en de commerciële Unix-versies te duur waren voor een student, besloot hij om dan maar zelf een kernel te schrijven. Op 25 augustus 1991 kondigde hij zijn project aan in de nieuwsgroep comp.os.minix met de gevleugelde woorden:
“Hello everybody out there using 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).”
Linux werd de ontbrekende kernel voor het GNU-besturingssysteem.
Linux-distributies
Nog geen jaar na de aankondiging van Linus Torvalds ontstaan de eerste Linux-distributies: collecties software die samen met de kernel een besturingssysteem vormen. In 1993 ontstaan Slackware en Debian, die anno 2017 nog altijd bestaan. En terwijl we eigenlijk van GNU/Linux moeten spreken als het om het besturingssysteem gaat (GNU met de Linux-kernel) werd de naam Linux al snel gebruikt voor het hele besturingssysteem, tot ergernis van de GNU-aanhangers die hun bijdrage onder de mat geveegd zien.
Het voordeel van opensourcesoftware is dat andere projecten erop kunnen voortbouwen. Zo ontstaan ook ‘forks’: distributies die zich baseren op een ‘moederdistributie’, maar hun eigen weg gaan. Zo kwam in 2004 Ubuntu tot stand, met als doel om een meer gebruiksvriendelijke versie van Debian te maken. En in 2006 ontstond op zijn beurt Linux Mint, dat voortbouwt op Ubuntu. Debian, Ubuntu en Linux Mint zijn anno 2017 de drie populairste Linux-distributies volgens de website DistroWatch, maar er bestaan honderden Linux-distributies met elk hun specifieke voordelen. Er is voor iedereen wat wils.
©PXimport
Pakketbeheerder
De belangrijkste innovatie van de Linux-wereld zit niet zozeer in de kernel, maar in de manier waarop je software in een Linux-distributie installeert: met een pakketbeheerder (package manager). In Windows moet je elk programma op zijn eigen website zoeken, een installatieprogramma downloaden en uitvoeren. En als je al je software up-to-date wilt houden, moet je ofwel telkens nieuwe versies van de programma’s downloaden, het updatemechanisme van al die programma’s gebruiken (als ze dat hebben) of een extern updateprogramma inzetten. In Linux zijn al die taken gecentraliseerd bij één programma: de pakketbeheerder.
Met de opkomst van de iPhone zagen we een gelijkaardig concept opkomen: een applicatiewinkel. En nadien kwam ook Microsoft met een Windows Store. Maar al die applicatiewinkels zijn eigenlijk een flauw afkooksel van wat pakketbeheerders in de Linux-wereld al een jaar of twintig doen. De pakketbeheerders zijn zelfs krachtiger: je kunt immers meerdere repository’s – de bronnen waarvan je software downloadt – toevoegen in een pakketbeheerder, terwijl in iOS, Android of Windows vanuit de officiële applicatiewinkel-app alleen de applicatiewinkel van de eigenaar van het besturingssysteem bruikbaar is.
©PXimport
Opensource
Opensourcesoftware is software waarvan de gebruikers de mogelijkheid krijgen om de code te bestuderen, aan te passen en te verspreiden. Als gebruiker kun je daarom ook de broncode van de software inkijken, zodat je ziet hoe de software is geprogrammeerd. Maar om van opensourcesoftware te kunnen spreken, is er meer nodig dan alleen toegang tot de broncode. Je moet ook het recht krijgen om iets met die broncode te doen. Daarom heeft de organisatie Open Source Initiative een definitie van opensourcesoftware gemaakt, met tien criteria waaraan de software moet voldoen: de Open Source Definition. Een belangrijke licentie in de opensourcewereld is de GNU General Public License (GPL), onder andere gebruikt door de Linux-kernel.
©PXimport
Overal Linux
De eerste versie van de Linux-kernel was specifiek voor de hardware van Torvalds geschreven. Hij gaf zelfs aan dat Linux niet portable was en waarschijnlijk nooit iets anders dan AT-harde schijven zou ondersteunen. Dat was wel heel pessimistisch. Al na enkele jaren werd Linux naar andere platforms geport, zoals de DEC Alpha, Sun SPARC en ARM. Vooral dit laatste platform is belangrijk. Doordat ARM-processoren heel energiezuinig zijn, vinden we ze vaak in apparaten met (vergeleken met een desktop-pc) weinig resources, zoals routers, NAS’en, IP-camera’s, smartphones en tablets.
Al jaren wordt er voor de grap gezegd: ‘dit jaar wordt het jaar van Linux op de desktop’. Toch blijft het aandeel van Linux jaar na jaar stabiel. Volgens de laatste metingen van StatCounter zou Linux op 1,5% van de desktops draaien. Maar op andere platforms is de strijd al lang gestreden en prijkt Linux op de eerste plaats. Bij de smartphones haalt Android volgens IDC een marktaandeel van 87%, en Android draait op de Linux-kernel. Op embedded devices (routers, IP-camera’s, maar ook domotica-apparatuur, consumentenelektronica, medische apparatuur enzovoort) draait een derde op Linux. Alleen al door het ARM-platform is Linux dus het meest gebruikte besturingssysteem op de wereld.
Ook een derde van de webservers draait op Linux, net als bijna een derde van de mainframes. Maar het opvallendst is de wereld van supercomputers: Linux draait op maar liefst 99,79% van de top 500 van supercomputers. Windows speelt daar geen enkele rol. Dat Linux op al die apparaten draait, van embedded devices met weinig RAM en zwakke processoren, tot supercomputers met tienduizenden 16core-processoren en in totaal tebibytes (=2 tot de macht 40 bytes) RAM, is een wonder. Het toont ook aan dat de architectuur van de Linux-kernel knap in elkaar zit.
©PXimport
Andere Unixachtige besturingssystemen
Linux is niet het enige besturingssysteem dat een versie van Unix implementeert. Zo ontwikkelde Sun het besturingssysteem Solaris (vroeger SunOS), ondertussen eigendom van Oracle door de overname van Sun. In 1992, een jaar na de eerste versie van Linux, ontstond 363BSD, een port van BSD Unix naar de Intel 80386-processor. 386BSD is vooral bekend in de Linux-wereld omdat Linus Torvalds ooit heeft gezegd dat Linux waarschijnlijk nooit zou gebeurd zijn als 386BSD (of GNU Hurd) al beschikbaar was toen hij aan zijn kernel begon. Het besturingssysteem is om een nog andere reden belangrijk: na de release van 386BSD 0.1 begon een groep gebruikers een onofficiële patchkit uit te brengen. Die groeide na een tijdje uit tot het FreeBSD-besturingssysteem, dat nog altijd populair is op servers. Ook NetBSD ontstond die periode als fork van 386BSD, en uit NetBSD ontstond OpenBSD, een besturingssysteem met focus op beveiliging. En toen Apple geen toekomst meer zag in zijn klassieke Mac OS, bouwde het voort op FreeBSD om Mac OS X (nu macOS) te bouwen.
Professioneel besturingssysteem
Tegen 1998 bieden bedrijven zoals IBM, Oracle en Compaq ondersteuning voor Linux. Die andere voorspelling van Torvalds, “just a hobby, won’t be big and professional like gnu”, was dus ook al te pessimistisch. In 2000 biedt Dell op zijn computers Linux aan. Microsoft voelt zich ondertussen duidelijk bedreigd door Linux. CEO Steve Ballmer zegt in een interview met de Chicago Sun Times: “Linux is a cancer that attaches itself in an intellectual property sense to everything it touches.” Hij heeft het dan vooral over de GNU GPL, die vereist dat je GPL-code die je wijzigt onder dezelfde licentie vrijgeeft.
De houding van Microsoft tegenover Linux wordt in de jaren erna pragmatischer. In 2006 kondigden Novell (de toenmalige producent van het bedrijfsgerichte SUSE Linux Enterprise) en Microsoft een samenwerking aan voor meer interoperabiliteit tussen hun besturingssystemen. En in 2015 toonde CEO Satya Nadella tijdens een presentatie zelfs een slide “Microsoft loves Linux” en liet het bedrijf weten dat het een eigen Linux-distributie had gebouwd: het netwerkbesturingssysteem Azure Cloud Switch (ACS) voor Microsoft Azure. Recentelijk heeft Microsoft de Linux-shell Bash samen met een Ubuntu-omgeving naar Windows 10 geport en de Windows-shell PowerShell naar Linux.
Ondertussen werken duizenden softwareontwikkelaars uit de hele wereld aan de kernel. De meerderheid van die ontwikkelaars doet dat niet als hobby, maar in opdracht van een werkgever. De vijf belangrijkste bedrijven die aan Linux bijdragen, zijn momenteel Intel, Red Hat, Linaro, Samsung en SUSE. Door samen te werken en hun ontwikkelingen te delen, zijn deze bedrijven in staat om efficiënter oplossingen te ontwikkelen. En daar genieten ook de gebruikers van.
©PXimport
Linux in Google-producten
Google begon in 1996 als een onderzoeksproject van Larry Page en Sergey Brin aan Stanford University. De webcrawler die ze schreven, draaide op Linux. Al die tijd is dat zo gebleven. Momenteel draaien de servers in de datacenters van Google speciaal aangepaste versies van Linux. Zonder Linux zou de zoekmachinegigant niet zo’n succes hebben gehad. Bovendien zou er zonder Linux ook geen Android of Chrome OS bestaan hebben. Android is gebaseerd op de Linux-kernel en ondersteunde daardoor onmiddellijk al heel wat hardware. Maar de softwarelagen boven de kernel verschillen in Android sterk van die in andere Linux-distributies. Ook Chrome OS is een Linux-distributie, meer nog zelfs dan Android. Uiterlijk lijkt Chrome OS misschien niet zo op Linux, omdat zoveel mogelijk in de webbrowser Chrome gebeurt, maar op de achtergrond draait een vrij klassieke Linux-distributie. Google maakt dus voor zijn producten dankbaar gebruik van Linux.
©PXimport
De toekomst van Linux
Iedereen gebruikt dagelijks zonder dat hij het weet Linux. En dat zal in de toekomst alleen maar meer worden, door gebruik van Internet of Things (IoT). Volgens analistenbureau Gartner zijn tegen 2020 maar liefst 50 miljard toestellen verbonden met internet. De meeste daarvan zijn kleine toestelletjes in ons dagelijks leven, zoals slimme sensoren en wearables. Die moeten zo goedkoop mogelijk zijn en zo efficiënt mogelijk van hun beperkte resources gebruikmaken. Linux is daarvoor ideaal, omdat het geen licentiekosten vereist en ontwikkeld is om zowel op kleine apparaten als op supercomputers te werken.
En de belangrijkste innovatie van de Linux-wereld, de pakketbeheerder, zal een grote rol spelen binnen Internet of Things. Canonical introduceerde in de recentste versie van Ubuntu Core (Linux-distributie voor Internet of Things), regelmatige en betrouwbare beveiligingsupdates. Makers van IoT-apparaten hoeven als ze gebruikmaken van Ubuntu Core 16 zelf geen moeite meer te doen om het besturingssysteem van hun apparaten up-to-date te houden. Canonical belooft dat alle Ubuntu Core-apparaten van alle leveranciers regelmatig gratis beveiligingsupdates krijgen.
Dat is iets anders dan we gewend zijn in Android, waar de smartphonefabrikanten zelf verantwoordelijk zijn voor updates en daar doorgaans meesterlijk in falen. En dat is ook iets heel anders dan we in de huidige vroege jaren van IoT-apparaten gewend zijn. Heel wat apparaten zijn al onveilig als ze op de markt komen, omdat leveranciers hun concurrenten voor willen zijn en geen tijd hebben voor updates. Als één besturingssysteem erin zal slagen om een veilig Internet of Things te creëren, dan is het Linux wel.
©PXimport
Linux in de cloud
Ook in de cloud is Linux het populairste besturingssysteem. Dat is niet zo vreemd. Dat er aan Linux geen licentiekosten verbonden zijn, betekent dat je heel goedkoop meerdere Linux-servers in de cloud kunt opstarten. Bovendien zijn Linux-distributies opgebouwd als een soort blokkendozen: ze bestaan uit allerlei losse componenten die je zelf kunt samenstellen en waarvan er heel wat weg te laten of in te wisselen zijn door minder zware varianten. Er zijn dan ook talloze distributies ontwikkeld die slechts de minimale componenten bevatten om als server te draaien. Zo’n uitgeklede Linux-distributie vereist weinig schijfruimte, start snel op en voert de toepassing die je erbovenop draait zo efficiënt mogelijk uit. En een project zoals OpenStack biedt een hele opensource infrastructuur om virtuele machines op te draaien in een eigen cloud. Diverse leveranciers bieden OpenStack-compatibele infrastructuur aan. Kortom, zonder Linux is cloud computing ondenkbaar.
©PXimport