Unix is een van de meest populaire besturingssystemen ter wereld vanwege zijn grote draagvlak en distributie. Het werd oorspronkelijk ontwikkeld als een multitasking systeem voor minicomputers en mainframes in het midden van de jaren zeventig. Sindsdien is het uitgegroeid tot een van de meest gebruikte besturingssystemen ter wereld, ondanks de soms verwarrende interface en het gebrek aan centrale standaardisatie.
De echte reden voor de populariteit van Unix? Veel hackers vinden dat Unix het juiste is – het enige echte besturingssysteem. Vandaar de ontwikkeling van Linux door een groeiende groep Unix hackers die hun handen vuil willen maken met hun eigen systeem.
Versies van Unix bestaan voor vele systemen, variërend van personal computers tot supercomputers zoals de Cray Y-MP. De meeste versies van Unix voor personal computers zijn vrij duur en omslachtig. Op het moment van dit schrijven kost een één-machine-versie vanAT&T’s System V voor de 386 ongeveer $US1500.
Linux is een vrij distribueerbare versie van Unix, oorspronkelijk ontwikkeld door Linus Torvalds, die in 1991 aan Linux begon te werken als student aan de Universiteit van Helsinki in Finland.Linus werkt nu voor Transmeta Corporation, een start-up in Santa Clara, Californië, en onderhoudt nog steeds de Linux-kernel, dat wil zeggen, de kerncomponent van het besturingssysteem op het laagste niveau.
Linus heeft de eerste versie van Linux gratis op het Internet gezet, waarmee hij onbedoeld een van de grootste software-ontwikkelingsfenomenen aller tijden in het leven riep. Vandaag de dag wordt Linux gemaakt en onderhouden door een groep van duizenden (zo niet meer) ontwikkelaars die losjes samenwerken op het internet. Er zijn bedrijven ontstaan die Linux ondersteunen, het verpakken in eenvoudig te installeren distributies en werkstations verkopen die voorgeïnstalleerd zijn met de Linux software. In maart 1999 werd de eerste Linux World Expo beurs gehouden in San Jose, Californië, met naar verluidt meer dan 12.000 aanwezigen. De meeste schattingen schatten het aantal Linux gebruikers wereldwijd ergens rond de 10 miljoen (en we verwachten dat dit aantal klein zal lijken tegen de tijd dat je dit leest).
Geïnspireerd door Andrew Tanenbaum’s Minix besturingssysteem (nog een vrije Unix voor PC’s – zij het een zeer eenvoudige), begon Linux als een klasproject waarin Linus een eenvoudig Unix systeem wilde bouwen dat kon draaien op een 386-gebaseerde PC. De eerste discussies over Linux waren op de Usenet nieuwsgroep comp.os.minix. Deze discussies gingen vooral over de ontwikkeling van een klein, academisch Unix systeem voor Minix gebruikers die meer wilden.
De allereerste ontwikkeling van Linux ging vooral over de taak-switching mogelijkheden van de 80386 protected-mode interface, allemaal geschreven in assemblage code. Linus schrijft:
Daarna was het een fluitje van een cent: nog steeds lastig coderen, maar ik had wat apparaten, en debuggen was makkelijker. Ik begon C te gebruiken in dit stadium, en het versnelt zeker de ontwikkeling. Dit is ook het moment dat ik serieus begon te denken aan mijn megalomane ideeën om “een betere Minix dan Minix” te maken. Ik hoopte dat ik ooit in staat zou zijn om Linux opnieuw te compileren …
Twee maanden voor de basis setup, maar daarna slechts iets langer totdat ik een disk driver had (serieus buggy, maar het werkte toevallig op mijn machine)en een klein bestandssysteem. Dat was ongeveer toen ik 0.01 beschikbaar maakte: het was niet mooi, het had geen floppydriver, en het kon niet veel doen. Ik denk niet dat iemand die versie ooit gecompileerd heeft. Maar tegen die tijd was ik verslaafd, en ik wilde niet stoppen voordat ik Minix eruit kon gooien.
Er is nooit een aankondiging gedaan voor Linux Versie 0.01. De 0.01 broncode was niet eens uitvoerbaar: het bevatte alleen de basis van de kernel en veronderstelde dat je toegang had tot een Minix-machine om ermee te compileren en te spelen.
Op 5 oktober 1991 kondigde Linus de eerste “officiële” versie van Linux aan, versie 0.02. Op dit punt was Linus in staat om bash (de GNU Bourne AgainShell) en gcc (de GNU C-compiler) te draaien, maar niet veel anders werkte. Nogmaals, dit was bedoeld als een hackersysteem. De primaire focus was kernontwikkeling; geen van de kwesties van gebruikersondersteuning, documentatie, distributie, enzovoorts was zelfs maar aan de orde geweest. Vandaag de dag is de situatie heel anders-de echte opwinding in de Linux wereld gaat over grafische gebruikersomgevingen, eenvoudig te installeren distributiepakketten, en high-level applicaties zoals grafische programma’s en productiviteitssuites.
Linus schreef in comp.os.minix:
Heb je heimwee naar de mooie dagen van Minix-1.1, toen mannen nog mannen waren en hun eigen apparaatstuurprogramma’s schreven? Zit je zonder een leuk project en wil je gewoon dolgraag je tanden zetten in een OS dat je aan je eigen behoeften kunt aanpassen? Vind je het frustrerend dat alles werkt op Minix? Geen nachten meer doorhalen om een leuk programma werkend te krijgen? Dan is deze post misschien iets voor jou.
Zoals ik een maand geleden al zei, werk ik aan een gratis versie van een Minix-achtige voor AT-386 computers. Het heeft eindelijk het stadium bereikt dat het zelfs bruikbaar is (hoewel dat misschien niet zo is, afhankelijk van wat je wilt), en ik ben bereid om de broncode uit te geven voor een bredere distributie. Het is nog maar versie 0.02 … maar ik heb met succes bash, gcc, GNU make, GNUsed, compress, etc. eronder gedraaid.
Na versie 0.03 heeft Linus het versienummer opgeschroefd naar 0.10, omdat meer mensen aan het systeem begonnen te werken. Na nog een aantal revisies verhoogde Linus het versienummer naar 0.95, om aan te geven dat hij verwachtte dat het systeem snel klaar zou zijn voor een “officiële” release. (Over het algemeen krijgt software pas het versienummer 1.0 als het theoretisch compleet of bug-vrij is). Dit was in maart 1992. Bijna anderhalf jaar later, eind december 1993, was de Linux kernel nog steeds op versie 0.99.pl14-asymptotisch dichter bij 1.0. Versie 1.0 verscheen in maart 1994. Op het moment van dit schrijven (maart 1999) is de huidige kernelversie 2.2.6, terwijl de 2.3 kernelversies gelijktijdig worden ontwikkeld. (We zullen de Linux versieconventies later in detail uitleggen.)
Linux zou niet hebben kunnen ontstaan zonder deGNU tools, gemaakt door de Free Software Foundation.Hun gcc compiler, die we in Hoofdstuk 13 zullen bespreken, gaf leven aan Linus Torvalds’ code. GNUtools zijn vanaf het begin verweven geweest met de ontwikkeling van Linux. Vanwege de cruciale bijdragen van deze tools, vraagt de Free Software Foundation zelfs dat distributies van Linux met bijbehorende hulpprogramma’s GNU/Linux worden genoemd.
Berkeley Unix (BSD) heeft ook een belangrijke rol gespeeld in Linux – niet zozeer in het ontstaan ervan, maar in het leveren van de tools die het populair maken. De meeste gereedschappen die bij Linux distributies worden geleverd zijn overgezet van BSD. Vooral netwerkdaemons en -utilities zijn belangrijk. De kernel netwerk code voor Linux is van de grond af aan ontwikkeld (twee of drie keer, in feite), maar dedaemons en utilities zijn vintage BSD.
Heden ten dage is Linux een complete Unix kloon, in staat om het X Window System, TCP/IP, Emacs, Web, mail en nieuws software te draaien, noem maar op. Bijna alle grote vrije software pakketten zijn geport naar Linux, en commerciële software komt steeds meer beschikbaar. In feite beginnen veel ontwikkelaars met het schrijven van toepassingen voor Linux, en porten deze later naar andere Unix-systemen. Er wordt meer hardware ondersteund dan in de oorspronkelijke versies van de kernel. Veel mensen hebben benchmarks uitgevoerd op Linux-systemen en ontdekten dat ze sneller waren dan werkstations van Sun Microsystems en Compaq, en Linux presteert beter dan of even goed als Windows 98 en Windows NT op een groot aantal benchmarks. Wie had ooit kunnen vermoeden dat deze “kleine” Unix-kloon zou uitgroeien tot de hele wereld van persoonlijk en server-computing?