Linux, Raspbian, Raspberry Pi...

Zo, je hebt een Raspberry Pi gekocht, je weet dat het een computer is maar je kunt er geen Windows op draaien. Waarom eigenlijk niet? En wat is Linux dan? Wat is het verschil tussen Linux en Raspbian en waarom zijn er zo veel verschillende Linuxen en zien ze er allemaal zo anders uit? Waarom gebruiken Linux mensen zo vaak die Dos-achtige command-line, dat is toch iets wat we met de komst van Windows 95 ontgroeid zijn?

Ik kan me nog herinneren dat ik met Linux begon te spelen, alweer heel wat jaren geleden en als ik terug denk aan die tijd moet ik toegeven dat ik dezelfde vragen had. Tijd voor een uitgebreide introductie.

Linus Torvalds

Het begon allemaal met Linus Torvalds. Een man die compleet gefascineerd door computers een groot deel van zijn jeugd heeft besteed aan het schrijven van een operating system (OS). Hoe dat precies ging is een mooi verhaal wat beschreven staat in het boek “Gewoon voor de fun" (“Just for fun"), een aanrader, als je graag boeken leest over de tijd toen computers nog alleen voor enthousiastelingen waren. Hij schreef de kern van een OS, het deel wat direct met de hardware praat, het deel wat we Kernel noemen. Hij gebruikte voor andere functionaliteiten wel software van anderen, voornamelijk open source software. Open souce software (OSS of FOSS, de F staat voor Free) is software die je vrij en gratis mag gebruiken, kopiëren en verbeteren. Als je het verbeterd ben je overigens met sommige licenties verplicht om deze verbeteringen te delen met de rest van de wereld. Dat is de reden dat veel bedrijven er niet van houden overigens.

Toen Linus klaar was met zijn Kernel deed hij niet wat de meeste mensen zouden doen. Hij verkocht zijn werk niet maar hij stelde het publiekelijk beschikbaar onder een GPL licentie, zo’n licentie die je verplicht je verbeteringen te delen. Linus’ OS, of beter zijn Kernel, werd Linux genoemd en omdat hij veel software er bovenop draaide van het GNU project heette het hele OS: GNU/Linux. (Linus wilde het zelf eerst Freax noemen overigens.)

Bedrijven als Red Hat (van Red Hat Enterprise Linux) zagen de enorme waarde van wat Linus zomaar aan de wereld gaf. Ze namen zijn kernel en bundelde die met een hoop nuttige software. Dit werd 1 van de eerste “distributies". Een distributie is niets anders dan de Linux kernel met een berg software erbovenop, software zoals een Command Line Interface (een shell) en een Desktop Omgeving (zoals LXDE) maar hierover later meer.

Red Hat gaf Linus een bak met opties uit dankbaarheid, toen hij die een jaar later inwisselde (dit zal rond 1995 geweest zijn) was hij in 1 klap miljonair. Zijn kernel was blijkbaar erg populair aan het worden. Ik denk trouwens niet dat hij toen had durven dromen dat zijn Kernel ergens na 2010 de basis zou worden van elke Android telefoon en het overgrote deel van de webservers in de wereld.

Distro’s

Rond 1995 vooral na de komst van Linux 1.0 begonnen bedrijven als Red Hat maar ook gewone particulieren met het bundelen van Linus’ kernel met allerlei software en noemenden het geheel gewoon Linux. Deze bundels, genaamd distributies, zijn vrij te kopiëren. Je mag ze ook verkopen als je wilt overigens, als je de broncode er maar bij bundelt. Vandaag de dag zijn er gigantisch veel Linux distributies (of zoals Linux mensen het noemen “Distro’s"), zo heb je bijvoorbeeld even snel uit mijn hoofd: Red Hat, OpenSuse, Arch Linux, Slackware, Debian (waar Raspbian van afgeleid is), Gentoo en Ubuntu. De lijst is oneindig lang. Veel Distro’s zijn ook weer op andere gebaseerd, zoals Linux Mint welke een afgeleide is van Ubuntu, terwijl Ubuntu zelf weer gebaseerd is op Debian…

Tja, waarom zou men zo verward zijn?
Het valt trouwens op dat de meeste van de Distrosites er niet echt gelikt uit zien, dat komt omdat ze vaak door vrijwilligers worden onderhouden. Deze vrijwilligers vinden het belangrijker een solide Distro neer te zetten dan een gelikte site. En terecht.

Elke distro heeft zijn sterke kanten, zo is het installeren van Ubuntu een kwestie van een USB stick in je computer steken en 20 minuten later heb je mooie grafische omgeving met alles wat je van een modern OS verwacht. Als je voor het eerst Gentoo gaat installeren, neem dan maar een paar dagen vakantie want je bouwt het hele OS zelf op vanuit het (bijna) niets en je compileert alles zelf. Ik kan je uit ervaring vertellen dat je daarna wel een grondig begrip hebt van niet alleen Linux maar ook van de hardware waarmee de Kernel praat.

De distro’s onderscheiden zich in de eerste plaats door de meegeleverde software maar een ander heel belangrijk verschil is de package manager. De package manager is het stukje software wat je gebruikt om andere software te installeren, bijvoorbeeld een mp3 speler. Voorbeelden zijn “apt-get" (dat gebruikt Raspbian), pacman (Arch Linux) en yast (OpenSuse). Software installeren gaat op Linux eigenlijk altijd al via het “app store" principe (waarom Apple claimt dat zij het hebben uitgevonden snap ik niet). Je haalt je software van 1 centrale plek, die plek het een “repository", een Repo zoals Linux mensen het noemen. Elke Distro heeft zijn eigen Repo’s en zijn eigen tools om te zorgen dat je daar je nieuwe software en software updates vandaan kunt halen.

Eindeloos veel Interfaces

Om Linux dingen te laten doen werd in het begin vooral de Command Line Interface (CLI) gebruikt, ook wel de shell genoemd. Zo kun je in de shell met “cd" (change directory) van map wisselen of dingen verplaatsen met “mv" (move). Maar de moderne CLI kan veel meer dan dat. Bijvoorbeeld als je typt “mpg123 Viva-la-vida.mp3" luister je ineens naar muziek (je moet uiteraard mpg123 hebben en de mp3 file ook.) Met Mutt kun je je Gmail mails lezen en er zijn zelfs programma's waarmee je Microsoft Word documenten kunt lezen op de CLI.

In de allereerste Linuxversies had je alleen maar CLI’s, je had er om precies te zijn 6. Maar men wilde meer natuurlijk, als je muziek luistert in de ene en je logt in op een server in de anderen en je gaat zo even door, dan houdt het snel op. De eerste “Window managers" losten dit probleem op. Nu kon je gewoon terminals (interfaces naar de CLI) openen in een venster, zo veel als je wilt. En waarom zou je niet een mooie klok toevoegen of een mooi overzichtje van je nieuw emails… Dat deed men en de eerste “Desktop Environment" werd geboren, een compleet grafische interface waarin je programma's kunt openen via een menutje.

Linux zou Linux echter niet zijn als er niet een gigantische berg window managers en desktop environments (DE’s) zou zijn. Je hebt hele uitgebreide, zware, prachtige omgevingen met alles er op en eraan, van email programma tot videospeler. Dit zijn de top DE’s, GNOME, KDE en Unity. Daaronder komen de lichtere omgevingen die het goed doen op oudere hardware, zoals XFCE en LXDE (wat Raspbian gebruikt.)

Alle Linux disto’s hebben hun eigen filosfie over wat goed en handig is en dus bundelen ze hun favoriete DE’s en programma’s. Sommige Distro’s (zoals Arch Linux) laten de keuzes volledig aan de gebruiker, je begint met alleen een CLI en met een paar commando’s installeer je je eigen favoriete DE.

Wat is Raspbian?

Nu je dit allemaal gelezen hebt kan ik pas uitleggen wat Raspbian is:

Raspbian is een GNU/Linux distributie waarvan de Kernel is gecompileerd om op de ARM processor van de Raspberry Pi te draaien. ARM is de processor architectuur die in mobiele telefoons gbruikt wordt en is fundamenteel anders dan x86, wat onze Laptops en Desktops rekenkracht geeft.

Raspbian gebruikt dezelfde package manager als Debian (waar het van afgeleid is) en Ubuntu namelijk apt-get (typ: "apt-get install firefox" en boem, je hebt Firefox geïnstalleerd). Als desktop omgeving hebben de mensen achter Raspbian gekozen voor LXDE omdat LXDE heel weinig processorkracht en geheugen vraagt. Dat komt voor een deel omdat het op de minimale windowmanager “OpenBox" is gebaseerd. De Raspbian mensen hebben speciaal voor jou ook een aantal handig tools meegeleverd, zoals de Midori browser (die veel minder processorkracht en ram vraagt dan Chrome en Firefox.)

Linux bestaat uit vele lagen wat het enorm complex maakt maar ook extreme flexibel. Ik vind dat we best even mogen stilstaan bij de ontwikkelaars (zoals Linus en de Raspbian mensen) die dit allemaal met ons delen. Als je Linux gebruikt sta je niet alleen op de schouders van reuzen, je mag die schouders ook mee naar huis nemen, kopiëren en aanpassen zoals je zelf wilt.