# Ubuntu: Linux voor mensen/Processen/Wat is een proces?

Op een UNIX systeem, zoals onze Ubuntu Linux, zijn er twee grote entiteiten. Enerzijds heb je bestanden. Alle soorten objecten op het systeem, zoals gewone bestanden, mappen, links, speciale bestanden om met randapparatuur te communiceren enzovoorts, worden zo veel mogelijk behandeld onder de algemene noemer “bestand”. Bestanden op zichzelf doen niets, ze staan gewoon op de harde schijf of op een ander opslagmedium. We hebben processen nodig om de bestanden te manipuleren, zodat we een werkbare omgeving krijgen.
Processen zijn altijd uitvoerbare bestanden, die in het geheugen geladen worden en daar instructies doorgeven naar de processor. Neem er nog even hoofdstuk drie uit lespakket 1 bij: uitvoerbare bestanden hebben een “x” in minstens een van de groepen “user”, “group” of “other”. Nemen we als voorbeeld het commando ls:
* willy@ubuntu:~$ which ls
* /bin/ls
* willy@ubuntu:~$ ls -l /bin/ls
* rwxr-xr-x 1 root root 71912 2005-09-05 11:14 /bin/ls
Zolang niemand het ls commando gebruikt om een lijst van bestanden op te vragen, is ls gewoon een bestand. Maar omdat het uitvoerbaar is, kan het instructies beginnen te geven aan de processor, wanneer het door de shell opgeroepen wordt. Zolang ls in het geheugen zit en instructies uitdeelt, is het een process.

## De multi-user omgeving

Sommige commando's starten een enkel proces, zoals ls. Andere commando's starten een hele serie processen. Een voorbeeld van zo'n proces is je webbrowser. Bovendien kun je meerdere processen tegelijk opstarten: een terminalvenster, een browser, een E-mail-programma, een tekenprogramma, enzovoort. Dit fenomeen heet multi-tasking, letterlijk: meerdere taken uitvoeren.
Naast deze eigenschap beschikt Linux, net zoals UNIX, waarvan het afgeleid is, over de mogelijkheid om verschillende gebruikers tegelijk te bedienen. Die gebruikers kunnen lokaal werken via het scherm, het toetsenbord en de muis, of ze kunnen zich vanaf het netwerk verbinden met de computer, of ze kunnen afzonderlijke schermen en toetsenborden hebben, terminals genaamd. Dat is de multi-userfunctie van het systeem, letterlijk: veel gebruikers.
* Terminals, is dat niet ouderwets?
* Bijvoorbeeld in de Albert Heijn, waar elke kassier via een terminal op de hoofdcomputer werkt, worden terminals veel gebruikt.
Het is duidelijk dat er een methode moet zijn om alle processen van alle gebruikers in toom te houden: we willen niet dat één gebruiker alle geheugen van de computer gebruikt, of alle ruimte op de harde schijf, of alle kracht van de processor, want dan kunnen de andere gebruikers niet meer werken. Er moet ook functionaliteit voorzien worden zodat gebruikers nu eens het ene programma, dan weer het andere kunnen gebruiken, zonder de programma's telkens te moeten afsluiten. Soms moet er ook voor gezorgd worden dat programma's blijven doordraaien, zelfs als de gebruiker zich afmeldt.
* Wat is een besturingssysteem?
* Start htop in een venster terwijl je de opdrachten in een ander venster doet. Wanneer htop niet geïnstalleerd is moet je dit programma installeren.
* Start het ps commando.
* Lees de handleiding (man pagina's) van ps. Hoe geef je alle processen weer die van you zijn?
* Start het commando find /. Wat voor effect heeft dit commando op de systeembelasting? Stop het commando.
In de volgende paragrafen geven we een overzicht van deze functionaliteit.