Inleiding en Geschiedenis

Figuur 1. De commandoregel van Debian GNU/Linux 10 (Buster)
De commandoregel van Debian GNU/Linux 10 (Buster)

Geschiedenis

Om de plaats van Linux is het huidige computerlandschap beter te begrijpen is het misschien interresant om eens te kijken naar de geschiedenis van die vrije besturingssysteem.

Multics® (1967)

Multics of Multiplexed Information and Computing Service was een invloedrijk besturingssysteem uit de beginjaren, ontwikkeld bij Bell Labs® van AT&T®, het was een poging om een "Time-sharing Operating System" te ontwikkelen. In die tijd waren computers zo groot als een kamer en heel duur, dus men moest kosten besparen door meerdere gebruikers dezelfde computer te laten gebruiken.

Voor het ontwikkelen van de time-sharing systemen moest je wachten tot de computer beschikbaar was on jouw programma te laten draaien.

Omdat de computer het merendeel van de tijd zit te wachten op een instructie die uitgevoed moet worden, en dan toch niks doet verdeelde multics de computertijd over de gebruikers. Op deze manier leek het1 alsof de gebruiker de enige gebruiker van het systeem was.

Unics® (1970)

Een nieuw besturingsysteem ontwikkeld bij Bell Labs, zonder dat er bedrijfsmotieven achter zaten en initieel zonder naam. De naam Unics (Uniplexed Information and Computing Service), was een grap en verwijzing naar Multics. Volgens Brian Kernighan heef hij deze naam bedacht.

Men kan zich echter niet meer herinneren waarom en door wie de naam is veranderd in UNIX, maar mede ontwikkelaars Dennis Ritche en Doug Mcllroy geven Brian Kernighan hiervoor de credits.

Het doel van UNIX was het bieden van een platform wat het enorm gemakkelijk maakte om software te schrijven. UNIX is in princiepe ontwikkeld voor programmeurs.

1973: UNIX versie 5 wordt uitgebracht en Universiteiten kunnen een gratis "sourcecode" of "broncode" licensie krijgen. UNIX wordt dan ook veel gebruikt door heel veel Universiteiten in die tijd.

1975 : UNIX versie 6 wordt aangeboden aan commerciële bedrijven, maar wordt weinig gebruikt vanwege de hoge kostprijs.

Minix (1983)

De U.S. Department of Justice schikt een "anti-trust" rechtzaak tegen AT&T, waardoor Bell Systems wordt gescheiden van AT&T. Dit zorgt ervoor dat het bedrijf UNIX nu commercieel kan uitgeven (en niet enkel een licensie voor de broncode).

AT&T geeft daarop Unix System V (system 5) uit en stopt het het aanbieden van de broncode licensies aan universiteiten.

Omdat men de broncode van Unix niet meer mag gebruiken in de universiteiten schrijft een professor (Andrew S. Tanenbaum) een eigen besturingssysteem voor zijn studenten en noemt dit Minix2 (Mini-Unix).

BSD (1983)

De universiteit van Berkeley gaat zelf door met het ontwikkelen van hun Unix, (Berkeley Unix) als alternatief voor Unix System III en Unix System V. Dit is wat we tegenwoordig kennen als BSD (Berkeley Software Distribution). 3). Na verloop van tijd zat er geen orginele UNIX code van AT&T meer in BSD.

GNU (1983)

Ook in 1983 heeft Richard M. Stallman (afgekort tot RMS) of Saint iGNUcious of the church of EMACS zoals hij zichzelf ook noemt het GNU Project4 opgericht. De betekenis van GNU is GNU is NOT Unix en het doel is om een volledig vrij Unix-achtig besturingsysteem te ontwikkelen. Met vrij bedoeld RMS zowel vrij als "Gratis Beer" (Free Beer) als "Vrije Meningsuiting" (Free Speech).

Met andere woorden, de gebruiker is de baas over zijn computer en moet kunnen weten wat de software op zijn/haar computer doet en moet hiervan kunnen leren en deze software kunnen aanpassen aan zijn/haar noden. Stallman gaat hierin nogal ver en wil dat alle hardware en software op zijn systeem 100 Free is (tegenwoordig gebruikt men ook vaak het woord "Libre" omdat men "Free" vaak verkeert begrijpt). Dit beperkt zijn keuze in hardware omdat bij de meeste computers de BIOS niet open is, en veel laptops (bijvoorbeeld) hebben een WiFi chip die een niet vrije firmware nodig heeft (maar er zijn er ook die wel 100% free zijn).

Het GNU Operating System is tot op heden (2020) nog steeds in ontwikkeling, de software (compiler, emacs text editor, …) was redelijk snel klaar en wordt nu ook toegepast bij Linux, maar de Kernel5 (die ze Hurd noemen) is nog steeds niet klaar, Het Guix project (Spreek uit als Geeks) heeft ondertussen wel aangekondicht dat ze hun Linux Libre kernel bij de volgende release gaan vervangen door de Hurd kernel.

FSF (1984)

Ongeveer een jaar na de oprichting van het GNU Project heeft Richard Stallman de Free Software Foundation(of FSF) opgericht, met als doel het promoten van Vrije Software.

Linux (1991)

De Finse computer student Linus Bennedict Torvalds wilde een aangepaste versie maken van Minix, deze wes enkel beschikbaar voor de 80286 processor en Torvalds gebruikte een 80386 CPU. Dus heeft hij Andrew Tanenbaum of hij Minix mocht aanpassen. Deze was echter van mening dat zijn studenten nooit een 80386 konden kopen en ging hier niet mee akkoord.

Hij is toen zelf aan een eigen systeem begonnen. Op 25 Augustus 1991 heeft hij dan in de newsgroup comp.os.minix de volgende aankondiging geplaatst:

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).

I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)

Linus (torvalds@kruuna.helsinki.fi)

PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.

— Linus Torvalds

Dit is uitgegroeid tot het GNU/Linux besturingsysteem waarvan momenteel honderden verschillende distributies beschikbaar zijn

Commandoregel anno 2020

Je vraagt je misschien af waarom de meeste Linux gebruikers kennis van de commandoregel zo belangrijk vinden? Tenslotte werken macOS® en Windows® toch zonder een commandoregel en veel distributies (vooral deze gemaakt met als doelgroep mensen die van macOS of Windows komen) verbergen de commandoregel zo veel mogelijk.

Om dit te begrijpen moet je een paar dingen weten over Linux:

To X or not to X

Linux is een commandoregel besturingssysteem net zoals Unix en de andere Unix-achtige besturingssystemen. Dit wil zeggen dat je het kunt gebruiker zonder enige grafische omgeving nodig te hebben. Dit is vooral handig voor Servers omdat je bij de meeste servers enkel resources zoals geheugen verliest als je een grafische omgeving draait, En een server heeft in tegenstelling tot een Desktop computer vaak niet eens een monitor.

Wil je wel een grafische omgeving gebruiken (zoals de meeste mensen) dan kun je een zogenaamde X-Server installeren. Op deze server kun je dan een Desktop Environment of Window Manager draaien.

Linux heeft een aantal DE's en WM's ter beschikking, de ene lijkt al meer op Windows en de andere op macOS. Maar Linux is zo aanpasbaar dat je ook voor een heel andere look & feel kunt gaan.

Everything is a file

Bij alle Unix-achitige systemen is alles een bestand, denk hier even over na. Dit klinkt misschien logisch, maar besef dan ook dat echt alles een bestand is ook:
  • Monitor
  • Toetsenbord en Muis
  • Printer
  • Bestanden en Directories
  • Netwerk
  • ...

Ook is zo goed als alles bij Linux te configureren door het aanpassen van een simpel tekstbestand.

Stel dat je een verkeerde instelling hebt gedaan en de X-Server wil niet meer opstarten. Zonder kennis van de commandoregel zul je het dan moeilijk hebben om de aanpassing ongedaan te maken, maar met kennis van de commandoregel en een editor zoals vi of emacs.

Nog erger is het als je een opstartprobleem hebt en je niet verder komt dan het GRUB opstartmenu. Met voldoende kennis van de commandoregel kun je vaak dergelijke problemen oplossen.

The need for speed

Door de manier waarop de Linux (en Unix) commandoregel geïmplementeerd is kun je bepaalde bewerkingen op bestanden véél sneller uitvoeren dan vanuit een grafische omgeving. Zo is het veel sneller om in een tekst bestand een bepaald woord te vervangen door een ander woord en bijvoorbeeld enkel de eerste keer dat het woord op in regel voorkomt het aan te passen met een hoofdletter (maar enkel de eerste keer en niet iedere keer).

Als je altijd een terminal venster open hebt staan (of als je een drop-down terminal zoals guake gebruikt) kun je een heleboel dingen sneller uitvoeren (soms zelf voor de GUI versie van het programma is opgestart).

Pipelines

Een van de beste dingen die de ontwikkelaars van UNIX hebben bedacht, is het gebruik van pipelines of de pipe (|) zoals wij dat bij Linux kennen. Dit is geboren uit te noodzaak om verschillende kleine programma's aan elkaar te linken (de uitvoere van het ene programma is de invoer van het andere programma, etc, etc.) Dit komt uit de tijd dat computers zeer weinig (64k) geheugen hadden en programma's dus niet groot konden zijn.

De pip | wordt momenteel nog zeer frequent gebruikt.

1 als er niet te veel werk van de computer gevraagd werd
2 Onthoud deze naam.
3 Het macOS besturingssysteem van Apple is gebaseerd op Darwin wat gedeeltelijk ook gebaseerd is op BSD
4 onthoud ook deze naam
5 De kernel is de kern van het besturingssysteem welke voor de communicatie tussen de hadware en software zorgt.