Professional Documents
Culture Documents
24 oktober 2002
2
1 Inleiding 7
1.1 Een korte geschiedenis van Linux . . . . . . . . . . . . . . . . 7
1.2 Copyright - GPL . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Architectuur . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 De shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 X-Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 Distributies . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5 Processen en procesbeheer 45
5.1 Processen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.2 Voorgrond en achtergrond processen . . . . . . . . . . . . . . 46
5.3 Processen in de achtergrond zetten en stoppen . . . . . . . . 46
3
4 INHOUDSOPGAVE
Lijst van figuren
1.1 KDE 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Blackbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3 Gnome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4 IceWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5
6 LIJST VAN FIGUREN
Hoofdstuk 1
Inleiding
UNIX was lange tijd het meest populaire besturingssysteem over de hele
wereld. Het is oorspronkelijk ontwikkeld door AT&T als een multitasking1
systeem voor minicomputers en grote mainframes in 1970.
Er bestaan veel verschillende versies van UNIX, geschikt voor personal com-
puters tot supercomputers zoals de Cray Y-MP. De meeste versies zijn
echter zeer duur: een UNIX System V versie voor een i3862 computer kostte
ongeveer 1600 Euro.
Linus Torvalds studeerde in 1990 aan de Universiteit van Helsinki. Om de
theoretische kennis van besturingssystemen om te zetten in de praktijk on-
twikkelde prof. Tanenbaum de UNIX-variant MINIX. MINIX was echter een
vrij beperkt besturingssysteem en was ontworpen met het doel een duidelijk
gestructureerd systeem voor te leggen aan studenten, niet om echt als uitge-
breid besturingssysteem in het dagelijks leven gebruikt te worden. Daarom
besloot Linus om als hobby zelf een besturingssysteem te schrijven.
Het besturingssysteem moest een vrij beschikbare versie worden van UNIX
(zie ook 1.2). Versie 0.02 werd door Linus op de comp.os.minix nieuwsgroep
gepost, samen met de uitnodiging voor iedereen om aan het besturingssys-
teem mee te werken. Na 3 jaar was dan eindelijk versie 1.0 af. Uit testen
bleek dat Linux op een 486 resultaten behaalde die vergelijkbaar waren met
een gemiddeld werkstation van Sun Microsystems 3 .
1
multitasking laat een gebruiker toe om meer dan 1 taak (bijvoorbeeld een toepass-
ingsprogramma) tegelijkertijd uit te voeren
2
met i386 wordt een IBM-compatibele PC met intel 80386 processor bedoeld
3
deze werkstations waren veel duurder dan een i486 en hadden SunOS als bestur-
ingssysteem, een variant van UNIX System V
7
8 HOOFDSTUK 1. INLEIDING
1.3 Architectuur
Het Linux systeem bestaat uit 3 belangrijke verzamelingen van code:
1.4 De shell
Hoe kan je nu met het besturingssysteem UNIX of Linux werken? Je hebt
een hulpprogramma nodig dat opdrachten netjes aan het besturingssysteem
6
een device driver is een programma dat een bepaald apparaat (device) beheert zoals
een printer, CD-ROM lezer of diskette-station
10 HOOFDSTUK 1. INLEIDING
1.5 X-Window
1.6 Distributies
We hebben reeds gezien dat de Linux kernel alleen niet voldoende is als
besturingssysteem. Daarnaast zijn er een heel aantal commando’s. Maar ook
met de kernel en alle commando’s zijn de meeste gebruikers tegenwoordig
niet tevreden. Ze hebben graag een X-Window omgeving en een aantal
toepassingsprogramma’s hiervoor (web-browser, bestandsbeheer, ...).
Er zijn verschillende bedrijven die op deze vraag inspelen. Zij stellen een
zogenoemde distributie samen die bestaat uit een installatieprogramma, de
kernel, commando’s, een aantal windowmanagers, configuratie-programma’s,
toepassingsprogramma’s, spelletjes enzovoort. Deze distributies kan je dan
1.6. DISTRIBUTIES 11
2.1 Inleiding
Linux heeft verschillende zogenaamde virtuele consoles (de console van een
systeem zijn de monitor en het toetsenbord die erop aangesloten zijn). Via
een virtuele console kan je inloggen, waarna je een shell ter beschikking
krijgt. Je kan de verschillende consoles bereiken door de toetsencombinatie
CTRL+ALT+Fi waarin de i een cijfer is van 1 tot 6 (bij het cijfer 7 schakel je
over naar de window manager).
Onderstaande stappen beschrijven het inloggen op een Linux systeem:
15
16 HOOFDSTUK 2. BASIS-CONCEPTEN VAN LINUX
• Je ziet nu:
login:
met programma’s die alle gebruikers kunnen uitvoeren, ”etc” met belangri-
jke configuratie-bestanden en ”home” waarin alle gebruikers een eigen map
hebben (zie figuur 2.2).
[student@FREGGEL student]# ls
KDesktop LEESMIJ documenten muziek public_html school tmp
[student@FREGGEL student]#
• In iedere map is er een verwijzing naar de map erboven (de map waar-
toe de map waar we op dit moment in zitten behoort). Deze verwijzing
wordt weergegeven door 2 punten (..). Wanneer we dus cd .. typen,
gaan we naar deze map.
[student@FREGGEL informatica]$ cd ..
[student@FREGGEL school]$
met ”/”. Absoluut wil dus zeggen dat je de padnaam bekijkt vanuit de
root directory, de wortel van je mappenboom. Om naar dezelfde map
”nederlands”te gaan, maar dan met een absolute padnaam, gebruik je dus
cd /home/student/school/nederlands.
In de volgende kleine oefening werken we steeds met absolute padnamen:
• Tenslotte kan men zien in welke map men zich bevindt in de balk achter
”Location”. Je kan hier eventueel ook het volledige padnaam invoeren
van de map waarvan je de inhoud wil bekijken. De padnaam begint
hier met ”file:” omdat je Konquerer ook kan gebruiken om webpagina’s
te bekijken.
2. Je gaat één niveau hoger staan dan de map zelf en gebruikt het
commando rm -r. De optie -r vertelt rm dat de map recursief
moet worden verwijderd. Je kan op die manier een grote tak van
de mappen-boom in één keer ”afhakken”, in plaats van twijgje
per twijgje te verwijderen:
• Wanneer je niet meer heel goed weet hoe een commando precies werkt,
of welke opties dat commando heeft, kun je de optie -h of --help ge-
bruiken. Om bijvoorbeeld te weten te komen wat f in de optie ”-rf”
van hierboven doet, typ je rm --help. De uitleg die hierbij wordt
gegeven is meestal vrij summier. Je kan extra uitleg over een com-
mando opvragen met het commando man of info2
Typ bijvoorbeeld eens man rm. Je vindt hier een beetje extra uitleg,
maar ook een verwijzing naar de info-pagina’s. Je kan door de uitleg
scrollen met behulp van de ENTER toets. Stoppen doe je met de
toets q. Typ vervolgens eens info rm. Hier vind je al heel wat meer
informatie. Scrollen door de info-pagina’s kan met de pijltjestoets met
het pijltje naar beneden. Deze info-pagina heeft echter nog geen struc-
tuur. Je kan opnieuw stoppen met de toets q. Als je eens een pagina
wil zien met structuur, typ dan info latex. Wanneer de cursor zich
op de titel van een deel of hoofdstuk bevindt en je drukt op ENTER
zal je zien dat je de informatie over dat deel terugvindt.
• Ga naar je home-directory.
• Maak de map test aan als volgt: klik met de rechtermuisknop in het
rechter-deel van het vensters (klik wel naast of onder een bestaande
map of bestand). Kies uit het pop-up menu ”nieuw” en vervolgens
”map”. Typ de naam ”test” in het invulvakje van het venster dat
zojuist is verschenen. Klik op de knop ”OK”.
Het afsluiten van een Linux systeem heeft meer gevolgen dan je denkt. Ten
eerste mag je nooit de computer uitzetten door op de power- of reset-knop
te drukken. De Linux kernel houdt namelijk gegevens voor de harde schijf
een tijdje bij in het geheugen vooraleer deze gegevens naar de harde schijf
te schrijven. Wanneer je het systeem gewoon uitzet heeft de kernel niet
de kans om deze gegevens naar de harde schijf te schrijven en geraakt het
bestandsysteem in de war.
Ten tweede zijn er een heel aantal processen in uitvoering. Wanneer je het
systeem goed afsluit wordt aan al deze processen gevraagd om te stoppen.
Zoniet worden zij midden in hun uitvoering bruusk gestopt.
Als laatste moet je eraan denken dat Linux een multi-user systeem is. Er
kunnen een aantal gebruikers ingelogd zijn (en aan het werken zijn) op het
systeem. Voor hen is het niet interessant als tijdens het bewerken van een
tekst plots alles wegvalt omdat jij de PC wil afzetten.
Daarom heeft het shutdown commando als tweede argument de tijd waarop
afgesloten moet worden (hh:mm) of na hoeveel minuten er moet afgesloten
worden (+m). Bij het commando shutdown zijn er 2 verschillende opties:
-r om opnieuw op te starten (rebooten) en -h om af te sluiten (halt). Om
de computer over 2 minuten af te sluiten gebruik je dus het commando:
shutdown -h +2. Alle gebruikers die zijn ingelogd krijgen dan de melding
dat het systeem over 2 minuten afgesloten wordt.
28 HOOFDSTUK 2. BASIS-CONCEPTEN VAN LINUX
Hoofdstuk 3
29
30 HOOFDSTUK 3. DE WINDOW MANAGER KDE 3
• We zullen een link maken naar het programma The Gimp1 Verander de
naam ”Koppeling naar applicatie” in het invulvakje naar ”The Gimp”.
Gebruikers, groepen en
toegangsrechten
33
34HOOFDSTUK 4. GEBRUIKERS, GROEPEN EN TOEGANGSRECHTEN
gebruikersnaam:encrypted password:UID:GID:
Volledige naam:Home dir:login shell
Je kan de laatste regels van dit bestand bekijken door het volgende com-
mando: tail /etc/passwd. Omdat Linux tegenwoordig zogenoemde ”shadow
passwords” gebruikt zijn deze in een ander bestand opgeslagen dat enkel de
root-gebruiker kan lezen (ze staan als het ware in de ”schaduw”, waar gewone
gebruikers ze niet kunnen zien).
4.2 Gebruikersbeheer
Zoals reeds vermeld kan een gebruiker behoren tot één of meerdere groepen.
Het belang van groepen wordt vooral duidelijk bij het bekijken van de toe-
gangsrechten, vermits je toegangsrechten ook per groep kan specifiëren. In
wat volgt worden toegangsrechten nader bekeken.
38HOOFDSTUK 4. GEBRUIKERS, GROEPEN EN TOEGANGSRECHTEN
4.4 Toegangsrechten
• Bekijk de inhoud van je home directory, maar geef deze keer de optie
-l mee aan het commando:
[student@FREGGEL student]$ ls -l
totaal 16
drwxrwxr-x 2 student student 4096 okt 15 11:46 documenten/
-rw-rw-r-- 1 student student 25 okt 17 10:57 LEESMIJ
-rw-rw-r-- 1 student student 0 okt 15 12:28 LEESMIJ~
drwxrwxr-x 4 student student 4096 okt 15 11:43 school/
drwx------ 2 student student 4096 okt 15 11:34 tmp/
[student@FREGGEL student]$
Veld Betekenis
1 Het type bestand (bestand, map of link) en de
toegangsrechten (zie verder)
2 Dit cijfer stelt het aantal referenties naar het
bestand voor. Bij bestanden is dit minimum 1
(de bestandsnaam zelf)
Bij mappen is dit minimum 2: de map zelf en
de ”.” in de map (de punt staat voor ”huidige
map”). Voor iedere sub-map die een map bevat
wordt dit cijfer nog eens met 1 verhoogd omdat
iedere map ook een verwijzing heeft naar de map
waartoe hij behoort (”..”). Kan je nu verklaren
waarom de referentieteller van de map school
gelijk is aan 4?
De volgende negen tekens vormen drie groepjes van drie. Het eerste groepje
staat voor de toegangsrechten van de gebruiker die eigenaar is van de map
of het bestand (wie dat is zie je in veld 3), het volgende groepje van 3 tekens
geeft weer welke rechten de groep heeft die eigenaar is van het bestand (veld
4), en het laatste groepje van 3 representeert de toegangsrechten van de
gebruikers die noch eigenaar noch lid van de groep zijn (dit worden ook wel
de toegangsrechten voor ”de wereld” genoemd).
4.4. TOEGANGSRECHTEN 41
Ieder groepje van 3 heeft dezelfde betekenis. Wanneer er een letter staat
(r, w of x), betekent dit dat je dat bepaalde recht hebt, wanneer er een
streepje staat (-), heb je dat recht niet. Bij een bestand staat de r voor
readable (leesbaar), de w voor writable (schrijfbaar of ook wel wijzigbaar)
en de x voor executable (uitvoerbaar). Iemand met enkel toegangsrecht r
kan het bestand wel lezen, maar er niets aan veranderen. Iemand die ook
toegangsrecht w heeft kan het bestand wel wijzigen. Het toegangsrecht x is
enkel van belang voor uitvoerbare bestanden (programma’s of commando’s).
Dit geeft je het recht om het programma ook effectief uit te voeren.
Opnieuw heeft ieder groepje van 3 dezelfde betekenis. De letter r staat voor
het lezen van de inhoud van de map. Indien een gebruiker dit recht niet
heeft kan hij niet zien welke bestanden er in een map staan. De letter w
staat voor de mogelijkheid om gegevens in een map te veranderen. Je kan
dan nieuwe bestanden aanmaken en bestaande bestanden wissen.
Let op: de mogelijkheid om een bestand te wissen hangt dus niet af van
je toegangsrechten tot dat bestand maar van je toegangsrechten tot de map
waarin dat bestand zit!
Tenslotte staat de letter x voor het ”betreden” of ”gebruiken” van een map.
Zonder dit toegangsrecht kan je niet naar de map in kwestie gaan (com-
mando cd) of een bestand uit die map kopiëren.
Oefeningen op toegangsrechten
Omdat het concept van toegangsrechten zeer belangrijk is gaan we hier nog
enkele oefeningen op maken. Om te kunnen controleren hoe alles werkt
hebben we meerdere gebruikers nodig. Maak daarom 2 gebruikers aan: één
met hetzelfde GID als jij (student), één met een ander GID. Geef te twee
gebruikers een naam, bijv. leerling en leraar.
Vervolgens zullen we leren hoe we de toegangsrechten kunnen wijzigen. Hi-
ervoor dient het commando chmod3 . Het eerste argument is van de vorm
[ugoa][+-=][rwx]. Het eerste deel duidt aan voor welke gebruikers de
toegangsrechten van toepassing moeten zijn: user, group, other, all. Het
tweede groepje duidt aan of de toegangsrechten moeten toegevoegd worden
aan de rechten die de gebruiker al heeft (+), moeten worden ingetrokken
(-) of dat dit de toegangsrechten van de gebruiker zullen worden (ongeacht
welke rechten hij nu al heeft). Het laatste groepje geeft weer over welke
toegangsrechten het gaat. Je mag meerdere letters per groepje gebruiken.
Tenslotte is het tweede argument van chmod de naam van het bestand of de
map waarvan de toegangsrechten moeten gewijzigd worden.
We gaan dit eens uitproberen op het ”LEESMIJ” bestand.
• Log in virtuele console 2 in als student, bij 3 als leerling en bij 4 als
leraar.
• Maak als leerling en als leraar ook een bestand ”LEESMIJ” aan. Dit
doen we door als student het ”LEESMIJ” bestand naar de ”/tmp” 4
map te kopiëren en als leerling en leraar dit bestand naar onze home
directory te kopiëren.
[leerling@FREGGEL leerling]$ cd ..
[leerling@FREGGEL home]$ ls -l
ls -l /bin/chmod
ls -l /sbin/netconf
44HOOFDSTUK 4. GEBRUIKERS, GROEPEN EN TOEGANGSRECHTEN
Processen en procesbeheer
5.1 Processen
[student@FREGGEL student]$ ps
PID TTY TIME CMD
3000 pts/1 00:00:00 bash
3173 pts/1 00:00:00 ps
[student@FREGGEL student]$
Het PID dat in de eerste kolom staat is een afkorting voor process ID:
een uniek nummer dat aan elk proces wordt toegekend wanneer het gestart
wordt. De laatste kolom laat zien welk proces in uitvoering is. De tweede
kolom (TTY)1 duidt aan via welke (virtuele) console het proces is opgestart.
De derde kolom geeft tenslotte weer hoeveel CPU tijd in seconden het process
al heeft ingenomen. De weergegeven lijst bevat alleen de processen (zonder
de X-Window processen) die je zelf hebt opgestart. Wil je eens kijken welke
processen het systeem allemaal aan het uitvoeren is dan kan dit via ps aux.
De opties zijn a voor alle gebruikers, u om dan ook de gebruikersnaam weer
te geven en x om ook de X-Window processen te zien.
Meestal is er maar één proces per gebruiker in uitvoering buiten de shell
(bash): het commando dat je het laatst getypt hebt. Waarom kan het nu
nuttig zijn om meerder processen tegelijk te draaien?
1
TTY is een afkorting van TeleTYpe: een terminal lijkt in eerste instantie niet veel
meer dan een geavanceerde typmachine
45
46 HOOFDSTUK 5. PROCESSEN EN PROCESBEHEER
Stel je bent een tekst aan het bewerken en iemand vraagt je om even iets te
kopiëren. Via procesbeheer kan je dan de tekstverwerker even schorsen, het
bestand kopiëren en dan weer terug overschakelen naar de tekstverwerker.
[student@FREGGEL student]$
Je kan een proces beëindigen (”killen”) via het commando kill. Dit pro-
gramma neemt als argument het PID van het proces dat je wenst te beëindigen.
Beëindig nu het yes-proces en controleer of het gelukt is door weer de lijst
van processen in uitvoering te vragen.
Het kill commando zonder opties vraagt vriendelijk aan het proces in
uitvoering of het zou willen stoppen. Wanneer zich een programma heeft
”opgehangen” zal het echter niet op zo een vriendelijke vraag reageren. Je
moet dan een ander signaal naar het proces sturen. Dit doe je via de optie
-s signaal. Het signaal voor halsstarrige programma’s is SIGTERM. Om zo
een programma te beëindigen gebruik je dus het commando
kill -s SIGTERM PID.
Het yes commando dient natuurlijk enkel als voorbeeldje, het is niet meteen
een nuttig commando. Een voorbeeld van een commando dat wel nuttig
werk doet en ook best in de achtergrond kan uitgevoerd worden is updatedb.
Dit programma gaat na welke bestanden er allemaal in het bestandsysteem
zitten en slaat deze op in een gegevensbank. Deze gegevensbank kan achteraf
geraadpleegd worden met het commando locate. Op die manier kan je
in Linux zeer snel een bestand terugvinden. Wanneer je niet meer weet
waar het staat gebruik je locate bestandsnaam. Locate zal dan in de
gegevensbank die updatedb heeft opgebouwd zoeken waar het bestand staat.
Dit gaat veel sneller dan de verschillende harde schijven na te pluizen op zoek
naar het bestand. Probeer bijvoorbeeld eens het commando locate gimp.
Linux draait updatedb iedere nacht zodat je de volgende dag weer een up-
to-date gegevensbank hebt. Je kan echter ook zelf updatedb uitvoeren, bi-
jvoorbeeld nadat je een aantal programma’s hebt geı̈nstalleerd. Kopieer
bijvoorbeeld eens het bestand ”LEESMIJ” naar het bestand ”LEESMI-
JOOK”. Start vervolgens updatedb in de achtergrond (updatedb &). Je
kan nu gewoon verder werken in de shell terwijl updatedb de gegevensbank
bijwerkt (je kan het programma updatedb best als systeembeheerder uitvo-
eren, anders heeft het programma niet voldoende toegangsrechten om het
volledige bestandssysteem te doorzoeken.
Tenslotte nog een korte uitleg over hoe het voorbeeldje in het begin van dit
hoofdstuk werkt:
• Start eerst een editor op, bijvoorbeeld vim (we zullen niet leren hoe
deze editor werkt) met het commando vim test.txt.
cd [-PL] [dir]
ls [OPTION]... [FILE]...
-a, --all do not hide entries starting with .
-d, --directory list directory entries instead of contents
-l use a long listing format
ps [OPTION]...
a all w/ tty, including other users
u user-oriented
x processes w/o controlling ttys
49
50 HOOFDSTUK 6. SYNTAX VAN DE GEBRUIKTE COMMANDO’S
[1] easy computing gids linux, uitgever easy computing nv, 1999, ISBN
90-5167-298-5, aut: michael wielsch
[4] http://www.gnu.org/
[5] http://www.linuxdoc.org/LDP/gs/
51