Wat is Linux? Een korte introductie

linus torvalds in 1991
Linus Tovalds (1991)

Als men in zijn algemeen over Linux spreekt dan doelt men meestal op het besturingssysteem en Linux is dan (functioneel) vergelijkbaar met besturingsystemen zoals Windows, Android, iOS of MacOS.

Maar feitelijk ligt het ietsje complexer. Zo bestaat er een besturingssysteem met de naam GNU/Linux en Linux vormt daar de kern van (Engels: kernel).

Die kernel (Linux dus) vormt samen met hulpprogramma's (die grotendeels afkomstig zijn van GNU) een bruikbaar besturingssysteem. Maar meestal wordt dit gehele besturingssysteem kortweg en gemakshalve Linux genoemd.

Wordt Linux veel gebruikt?

Zonder dat je het realiseert wordt Linux al door je gebruikt en werken enorm veel computers op de wereld er mee. Het bekendste voorbeeld is Android, dat is een besturingssysteem voor smartphones waarbij Linux de kern vormt van Android. Maar Linux draait op heel veel andere apparaten, we noemen er een paar.

De modem/router in je meterkast die jouw huis koppelt aan het internet draait zeer waarschijnlijk Linux. Zo ook navigatiesystemen (tom tom en dergelijke) en bijvoorbeeld de computer voor het dashboard in je auto. De meeste smart televisies draaien op Linux. Alle chromebooks (laptops met daarop het ChromeOS besturingssysteem) draaien Linux omdat de kernel van ChromeOS Linux is.

Maar ook in kleine computertjes die verstopt zitten in bijvoorbeeld je wasmachine, droger, video/beveiligingscamera, deurbel met camera, verkeersintensiteit-installatie (nummerbord herkenning) draaien veelal op Linux. Daarnaast draaien haast alle servers op de wereld, dus ook alle websites en cloudservers, ja zelfs die van Microsoft, op Linux. Zo ook draait het merendeel van de supercomputers op de wereld het Linux besturingssysteem.

Je kan gerust stellen dat de meeste thuiscomputers/laptops Windows of MacOS draaien en alle andere computers draaien vrijwel uitsluitend Linux. Het aantal laptops/desktops dat op Linux draait is nog gering, het ligt volgens statcounter op circa 4% en is heel langzaam stijgende.

Linxux op de desktop/laptop

Zoals je hiervoor hebt kunnen lezen is het gebruik van Linux op de pc/laptop nog erg beperkt. Maar het laat wel een langzaam stijgende lijn zien. Maar dat aantal zou wel eens (langzaam) kunnen gaan stijgen. Laten we wel wezen, jij kijkt er nu ook naar.

Overigens, dat op thuiscomputers overwegend Windows wordt gedraaid en niet GNU/Linux heeft geen technische reden of dat Windows beter is dan Linux (of andersom), in principe kan op iedere desktop/laptop Linux draaien. Het zijn meer de gebruikers die "bekend zijn met Windows" en geen reden zien om over te stappen. Dit komt mede omdat de meeste computers bij de aanschaf al voorzien zijn van Windows. Zou dat niet het geval zijn, en zou je apart Windows moeten kopen en dat kost circa 100 euro, dan zou GNU/Linux mogelijk heel populair worden omdat GNU/Linux geheel gratis is.

Linux: de spraakverwarring

Er is nog al wat spraakverwarring rond de term "Linux". We zullen dat proberen uit te leggen. Ooit bestond er een besturingssysteem met de naam UNIX. Vele bedrijven hebben een aangepaste versie van UNIX gemaakt. Zo maakte HP HP-UX, IBM maakte AIX en Microsoft maakte (lang geleden) XENIX (dat product is al lang niet meer leverbaar).

Andrew Tanenbaum, een professor computerwetenschappen aan de Vrije Universiteit in Amsterdan, had in 1987 MINIX (mini-Unix) gemaakt een Unix variant die bedoeld was voor educatieve doeleinden. MINIX werd meegeleverd met een studieboek waarin hij de lezer de werking van een besturingssystemen liet begrijpen.

Een student in Finland die een tijdje met MINIX had gewerkt wilde dit thuis ook op zijn computer draaien, maar MINIX was (destijds) niet gratis en besloot hij om de kern van MINIX (dus feitelijk UNIX) helemaal zelf te programmeren / na te bouwen. Je mag betaalde software niet kopiëren maar je mag software wel funcioneel legaal nabouwen. Die student heette Linus Torvalds. Die software leek sterk op MINIX maar dan geschreven/gemaakt door Linus, en zo ontstond de naam Linux. De eerste versie stelde Linus gratis, als FOSS, beschikbaar in 1991.

Linux is echter maar de "kern" (Engels: kernel) van een besturingssysteem. Zonder bijbehorende software die de kernel assisteert en samen een besturingssysteem ontstaat, heb je er niets veel aan.

Toen Linus een UNIX-like kernel aan het schrijven was, was er een andere groep mensen die ook een eigen UNIX variant wilde maken. Die begonnen echter niet met de kernel, maar juist met alle andere benodigde stukjes software die de kernel moet ondersteunen. Die mensen hadden zich verenigd en noemden dit project GNU. Dat staat voor: GNU is Not Unix (om maar duidelijk te maken dat dit een zelf geschreven en afwijkende versie van UNIX was). Toen ze echter de kernel wilde gaan schrijven merkten ze dat dit niet simpel was en het project stokte op dat punt.

Zowel Linux als GNU was "open source software " die je zonder licenties te betalen gratis mag gebruiken en de sourcecode mag zien en zelfs aanpassen. Het was achteraf gezien logisch dat de voor de benodigde software om Linux te complementeren tot een besturingssysteem gekozen werd voor GNU. Linux samen met GNU levert een bruikbaar besturingssysteem op. Die softwareverzameling zou je dus GNU/Linux moeten noemen, en dat wordt door vele ook gedaan (die bekend zijn met de geschiedenis), maar vele andere noemen het kortweg Linux, waarbij ze het enorm belangrijke werk van de GNU werkgroep te kort doen.

Er is dus Linux als kernel, er bestaat GNU/Linux dat een UNIX-like besturingssysteem is, en die combinatie wordt vaak (feitelijk foutief) Linux genoemd. Realiseer dat Linux niet alleen de kernel is van GNU/Linux maar ook van bijvoorbeeld de besturingssystemen Android en ChromeOS.

Linux distributies

linus torvalds (rond 2014)
Linus Tovalds (rond 2014)

Om het allemaal nog complexer, maar completer te maken, voegen we nog één laatste term toe aan de Linux spraakverwarring. Die term is "Linux distributies" kortweg "distro's" genoemd.

Een distributie is een verzameling software die bestaat uit:

  • het GNU/Linux besturingssysteem;
  • een desktop omgeving;
  • een app-store;
  • een aantal voorgeïnstalleerde applicaties.

desktop omgeving Een desktop omgeving (DE) is de software dat de "user interface" is tussen gebruiker en het besturingssysteem. Weet je nog de verschillen tussen WindowsXP, Windows7 en Window10? Die verschilden, althans vanuit het gebruikersperspectief, alleen maar door een andere desktop omgeving.

Zo zijn er, als voorbeeld, van Linux Mint drie distributies beschikbaar die alleen van elkaar verschillen in de meegeleverde desktop omgeving. Zo levert men Linux Mint MATE, Linux Mint Xfce en Linux Mint Cinnamon. Een andere zeer bekende distributie, Ubuntu genoemd (dus van een hele andere groep ontwikkelaars), heeft primair gekozen voor de GNOME desktop omgeving, hoewel ook Ubuntu distro's zijn met Xfce of andere DE's.

Bij Windows kan je niet kiezen voor een bepaalde dekstop omgeving, er is er maar één en dat is de laatste die Microsoft levert. Om het nog duidelijker te schrijven, Als je Windows11 installeert kan je niet de desktop omgeving van Windwos 7 gebruiken/installeren omdat je die prettig vindt. Bij Windows11 hoort ook de Windows11 desktop omgeving. Keuzevrijheid is er niet. Dat maakt het kiezen wel makkelijk.

In tegenstelling tot Windows, kan je bij Linux dus wel kiezen voor een desktopomgeving naar keuze. Dat zie je overal terug in Linux, haast alles is te combineren (want buiten de desktopomgeving zijn er nog veel meer keuzes die je kan maken). Keuzevrijheid staat bovenaan in Linux. Dat zit ze ook in de weg, want er zijn zoveel verschillende combinaties dat zeker beginnende gebruikers door de bomen het bos niet meer zien.

app-store In een distributie maakt men ook een basis-keuze (je kan er van afwijken) hoe applicaties geïnstalleerd worden (met namen als Snap, Flatpak of AppImage) met een bijbehorende app-store. Het voert nu te ver om detail de verschillen tussen deze drie uit te leggen. Overigens verschilt de inhoud van de app-stores. Niet iedere applicatie die je wilt gebruiken is beschikbaar in iedere app-store. Maar je kan, als je dat wil, van meerdere app-stores gebruik maken.

voorgeïnstalleerde applicaties De makers van een distributie hebben gedacht, een besturingssysteem is leuk maar geen doel op zich, het zijn uiteindelijk de applicaties waar je mee werkt. Omdat vrijwel alle applicaties in de Linux wereld gratis zijn, maakt iedere distributie een keuze om naast het besturingssysteem ook een aantal veelgebruikte applicaties mee te leveren. Zo zit in Linux Mint onder andere Firefox als webbrowser en Libre Office als office software reeds voorgeïnstalleerd. Welke software standaard meegeleverd wordt verschilt dus per distributie.

De ene distributie is meer geschikt voor programmeurs, de andere meer voor servers, de andere weer voor desktop pc's, de andere voor hele oude computers met weinig geheugen, etc. Namen van deze distributies zijn, we noemen er maar een paar er bestaan er tientallen: Mint, Ubuntu, Debian, OpenSUSE, Fedora, Arch, CentOS en Puppy.

Wat is een kernel?

De kernel is software die alle hardware direct aanstuurt en de functionaliteiten van de hardware op een gestandaardiseerde manier beschikbaar stelt aan de (applicatie)software. Om het anders te schrijven: de kernel is een softwarelaag die zich bevindt "boven" de hardware en die de complexe aansturing van de hardware maskeert voor de applicatieprogramma's die van die hardware gebruik willen maken. Hierdoor hoeven de applicatieprogramma's geen speciale software te hebben voor de duizenden stukjes hardware zoals printers, muizen, audio devices, videokaarten en noem maar op. De noodzakelijk software om de hardware goed te laten functioneren zit reeds in de kernel.

Wordt een bepaal apparaat of chipje op een moederbord nog niet ondersteund door Linux, dan hoeft alleen de kernel bijgewerkt te worden en vanaf dat moment kan ieder applicatieprogramma, indien gewenst, gebruik maken van die hardware. De kernel doet nog veel meer, denk maar aan het starten van verschillende processen zoals TCP/IP stacks voor de communicatie naar het internet of de aansturing van de schijven en deze beschikbaar stellen met een filesysteem.

We leggen dit uit aan de hand van een voorbeeld. Stel je wilt vanuit een tekstverwerkerprogramma een afdruk maken. Dan moeten vele commando's naar de printer gestuurd worden. Je denkt wellicht, dat is toch niet zo moeilijk? Maar er komt veel meer bij kijken dan je realiseert. We nemen een greep.

Wil je een letter op het papier krijgen, moet je eerst controleren of de printer wel bereikbaar is, zoiets van "hallo laserprinter merk X model Y ben je daar?". Op basis van het antwoord weet je of deze beschikbaar is of niet. Probleem is echter dat de manier hoe je dit vraagt verschilt per printer. En er zijn duizenden printers beschikbaar die een besturingssysteem (de kernel) ondersteund. Hoe die vraag gesteld wordt en wat het te verwachtte antwoord is (wat bij iedere printer ook weer anders is) maskeert de kernel. Want stel dat de kernel die niet zou doen, dan zou ieder applicatieprogramma voor al die duizend printers software moeten hebben en ook constant bijgewerkt moeten worden, er komen immers dagelijks nieuwe printers bij. Nu vraagt de applicatie aan de kernel, "is de printer online?" en het antwoord is simpel "ja" of "nee". Alle applicaties die van de printer gebruik willen maken maken van dezelfde gestandaardiseerde "is de printer online check" manier gebruik.

Zo, we weten nu dat de printer aanstaat, nu moet de eerste letter op papier. Maar voordat die letter naar de printer gestuurd wordt, moet je de printer eerst vertellen waar die letter op het papier moet verschijnen. Op welke positie met een X- en Y-as coördinaat. Dan moet je ook aangeven, de kleur, de intensiteit, het lettertype (font), de grootte, of het recht of schuinschrift moet zijn, hoe de oriëntatie moet zijn (rechtop, of "op zijn kant" in geval van landscape printen) en of het op de voorkant van het papier of juist aan de achterkant moet. Hoe je die opdrachten aan de printer moet doorgeven voor één letter verschilt per printer. Gelukkig zijn er bij printers bepaalde pagina beschrijvende opmaaktalen ontworpen. De bekendste zijn Postscript (Adobe) en PCL (HP).

Al die complexe printer specifieke zaken worden door de kernel voor de applicatiesoftware verborgen gehouden in zogenaamde "drivers", dat gaat overigens ook zo bij Windows.

Komt er een nieuwe printer op de markt, dan hoeft de tekstverwerker niet aangepast worden, maar alleen de kernel.

Verder lezen

Overzicht artikelen over Linux.



aanpassing/controle: 20240508

home­ >linux