Curs us Linux ve rs ie 0.1
2
This work is licensed under the Creative Commons Attribution-NoncommercialShare Alike 2.0 Belgium License. To view a copy of this license, visit http:// creativecommons.org/licenses/by-nc-sa/2.0/be/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. Met bijdrages en fragmenten uit de cursussen, handleidingen, documenten van Lieven Debaes, Kris Luyten, Jarkko Huijts, Piet van Oostrum, Frederik De Schrijver, Herman Bruyninckx, http://www.ubuntu-forums.nl,
Inhoudsopgave
1 Linux: eerste ontmoeting . . . . . . . . . . . . . . . . . . . . .
1
1.1
Een kleine demonstratie . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
Wat is Linux? . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.3
Geschiedenis . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.3.1
Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.3.2
Het GNU copyleft . . . . . . . . . . . . . . . . . . . . . . .
3
1.3.3
Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
Gezond verstand: Open Standaarden en Open Source . . . . . .
5
1.4.1
Open Standaarden . . . . . . . . . . . . . . . . . . . . . .
5
1.4.2
Open Source . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.4
1.5
Waar GNU/Linux gebruikt wordt
. . . . . . . . . . . . . . . . . .
7
1.6
Sterke en zwakke punten van GNU/Linux en open source . . . . .
8
1.7
1.6.1
Sterke punten
. . . . . . . . . . . . . . . . . . . . . . . .
8
1.6.2
Zwakke punten . . . . . . . . . . . . . . . . . . . . . . . .
9
Distributies
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
1.7.1
¨ distributies . . . . . . . . . . . . . . . . . . . Commerciele
12
1.7.2
Open of community based distributies . . . . . . . . . . . . .
13
1.7.3
¨ sponsoring . . . . . . . . . . . . . . Open met commerciele
14
1.8
Licenties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
1.9
Het vinden van informatie . . . . . . . . . . . . . . . . . . . . . .
17
Website van de distributie . . . . . . . . . . . . . . . . . . .
17
1.9.1
3
INHOUDSOPGAVE
4
1.9.2
Linux Documentation Project . . . . . . . . . . . . . . . . .
17
1.9.3
HOWTO . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
1.9.4
Manual pages
. . . . . . . . . . . . . . . . . . . . . . . .
18
1.9.5
Info pages . . . . . . . . . . . . . . . . . . . . . . . . . .
18
1.9.6
/usr/share/doc
. . . . . . . . . . . . . . . . . . . . . . . .
18
1.9.7
Nieuwsgroepen en forums
. . . . . . . . . . . . . . . . . .
19
1.9.8
Het web
. . . . . . . . . . . . . . . . . . . . . . . . . . .
19
1.9.9
Boeken . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
. . . . . . . . . . . . . . . . . . . . . . . . .
19
2 Verover je Desktop . . . . . . . . . . . . . . . . . . . . . . . . .
21
1.9.10 Tijdschriften
2.1
2.2
Desktopdiversiteit . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.1.1
Desktopmanagers: GNOME, KDE en Xfce4 . . . . . . . . . .
22
2.1.2
Windowmanagers . . . . . . . . . . . . . . . . . . . . . . .
25
De GNOME-desktop verkennen
. . . . . . . . . . . . . . . . . .
28
. . . . . . . . . . . . . . . . . . . . . . . . . . .
28
2.2.1
Desktop
2.2.2
Pictogrammen
. . . . . . . . . . . . . . . . . . . . . . . .
30
2.2.3
Paneel . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
2.2.4
Menu: Toepassingen, Lokaties en Systeem . . . . . . . . . .
33
2.2.5
Correct uitloggen . . . . . . . . . . . . . . . . . . . . . . .
34
Je werkomgeving inrichten . . . . . . . . . . . . . . . . . . . . .
34
2.3.1
Systeem/voorkeuren . . . . . . . . . . . . . . . . . . . . .
34
2.3.2
Toepassingenmenu aanpassen . . . . . . . . . . . . . . . .
40
2.3.3
Zoals jij het wil . . . . . . . . . . . . . . . . . . . . . . . .
42
3 Werken met bestanden: basis . . . . . . . . . . . . . . . . . .
45
2.3
3.1
GNU/Linux-bestandssysteem . . . . . . . . . . . . . . . . . . . .
45
. . . . . . . . . . . . . . . . . . . . . .
45
Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
3.1.1
3.2
Bestandsstructuur
INHOUDSOPGAVE
5
3.3
The Black Box . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
3.4
Langzame start . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
3.5
Handige toetsen bij het gebruik van de shell . . . . . . . . . . . .
50
3.6
Enkele basiscommando’s . . . . . . . . . . . . . . . . . . . . . .
51
3.6.1
Gouden tip voor MANnen die vaak vergeten . . .
. . . . . . . .
51
3.6.2
ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
3.6.3
cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
3.6.4
cp en rm . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
3.6.5
mv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
3.6.6
mkdir en rmdir
. . . . . . . . . . . . . . . . . . . . . . . .
54
3.7
Bestandseigenaarschap . . . . . . . . . . . . . . . . . . . . . . .
55
3.8
GNU/Linuxbestandspermissies . . . . . . . . . . . . . . . . . . .
55
3.8.1
Inleiding tot bestandspermissies . . . . . . . . . . . . . . . .
55
3.8.2
Attributen . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
4 Systeembeheer: software 4.1
. . . . . . . . . . . . . . . . . . . .
59
Software van Ubuntu in een deb-je . . . . . . . . . . . . . . . . .
59
Software in deb-formaat . . . . . . . . . . . . . . . . . . . .
59
Software installeren en verwijderen . . . . . . . . . . . . . . . . .
60
4.2.1
Software installeren met synaptic . . . . . . . . . . . . . . .
60
4.2.2
Software installeren met de console . . . . . . . . . . . . . .
62
4.2.3
Softwarebronnen en Ubuntu-componenten
. . . . . . . . . .
62
4.2.4
Repository’s toevoegen/verwijderen . . . . . . . . . . . . . .
64
Anders installeren . . . . . . . . . . . . . . . . . . . . . . . . . .
66
4.3.1
Individuele deb-pakketten vanuit je browser installeren met gdebi
66
4.3.2
Andere pakketten: rpm . . . . . . . . . . . . . . . . . . . .
67
4.3.3
Compileren en installeren van broncode . . . . . . . . . . . .
67
4.3.4
Java? . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
4.3.5
Installatiescripts . . . . . . . . . . . . . . . . . . . . . . . .
69
4.1.1
4.2
4.3
INHOUDSOPGAVE
6
4.3.6
4.4
Naar een standaardinstallatieformaat? . . . . . . . . . . . . .
. . . en mijn windowssoftware?
69
. . . . . . . . . . . . . . . . . . .
70
4.4.1
WINE is not (an) emulator . . . . . . . . . . . . . . . . . . .
70
4.4.2
Programma’s die werken onder Wine . . . . . . . . . . . . .
71
5 Publicaties in LATEX . . . . . . . . . . . . . . . . . . . . . . . . .
73
5.1
Wat en waarom?
5.2
Installatie
5.3
5.4
5.5
5.6
5.7
. . . . . . . . . . . . . . . . . . . . . . . . . .
73
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
Aan de slag met LATEX . . . . . . . . . . . . . . . . . . . . . . . .
75
5.3.1
Basisprincipe . . . . . . . . . . . . . . . . . . . . . . . . .
75
5.3.2
LATEX-elementen in het tex-bestand
. . . . . . . . . . . . . .
75
5.3.3
Een wat uitgebreider voorbeeld . . . . . . . . . . . . . . . .
76
Opmaak van tekst . . . . . . . . . . . . . . . . . . . . . . . . . .
78
5.4.1
Speciale tekens . . . . . . . . . . . . . . . . . . . . . . . .
78
5.4.2
Spaties . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
5.4.3
Paragrafen . . . . . . . . . . . . . . . . . . . . . . . . . .
79
5.4.4
Lettertypes . . . . . . . . . . . . . . . . . . . . . . . . . .
79
5.4.5
Lijsten . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
5.4.6
Voetnoten
. . . . . . . . . . . . . . . . . . . . . . . . . .
81
5.4.7
Letterlijke tekst . . . . . . . . . . . . . . . . . . . . . . . .
81
5.4.8
Figuren . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
Van bron naar ... . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
5.5.1
dvi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
5.5.2
pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
5.5.3
html
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
Goede LATEX-editors . . . . . . . . . . . . . . . . . . . . . . . . .
83
. . . . . . . . . . . . . . . . . .
83
. . . . . . . . . . . . . .
85
. . . . . . . . . . . . . . . . . . . . . . .
85
5.6.1
Niet Wysiwig, code-editors
5.6.2
Wysiwig met lyx en Openoffice.org
Presentaties met LATEX
INHOUDSOPGAVE
7
Basis van beamer . . . . . . . . . . . . . . . . . . . . . . .
85
Verdere informatie . . . . . . . . . . . . . . . . . . . . . . . . . .
86
Online informatie . . . . . . . . . . . . . . . . . . . . . . .
86
6 Alle in’s en uit’s . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
5.7.1
5.8
5.8.1
6.1
Enkele handige commando’s om tekstbestanden te bekijken . . .
87
6.2
In en uit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
6.2.1
Redirecting . . . . . . . . . . . . . . . . . . . . . . . . . .
89
6.2.2
Piping: in-out | in-out | in-out . . . . . . . . . . . . . . . . . . .
90
Nog enkele behulpzame commando’s . . . . . . . . . . . . . . .
90
6.3
6.3.1
Sorteren met sort.
. . . . . . . . . . . . . . . . . . . . . .
90
6.3.2
Zoeken met grep . . . . . . . . . . . . . . . . . . . . . . .
91
6.3.3
Vinden met find . . . . . . . . . . . . . . . . . . . . . . . .
91
7 Beheer van gebruikers . . . . . . . . . . . . . . . . . . . . . . .
97
7.1
7.2
7.3
Root en het sudo-systeem . . . . . . . . . . . . . . . . . . . . .
97
7.1.1
Basisprincipe . . . . . . . . . . . . . . . . . . . . . . . . .
97
7.1.2
Meerdere sudo’ers . . . . . . . . . . . . . . . . . . . . . .
98
7.1.3
/etc/sudoers
. . . . . . . . . . . . . . . . . . . . . . . . .
98
7.1.4
Sudo: enkele handigheidjes . . . . . . . . . . . . . . . . . . 100
Werken met gebruikers . . . . . . . . . . . . . . . . . . . . . . . 100 7.2.1
Aanmaken van gebruikers . . . . . . . . . . . . . . . . . . . 101
7.2.2
Achter de coulissen van adduser
7.2.3
Gebruikers verwijderen: tijdelijk, definitief, in een backup . . . . 104
Groepen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Ubuntu-groepen
. . . . . . . . . . . . . . . . . . . . . . . 106
Enkele handige extra’s
. . . . . . . . . . . . . . . . . . . . . . . 106
7.3.1
7.4
. . . . . . . . . . . . . . . 102
7.4.1
Wie ben ik? . . . . . . . . . . . . . . . . . . . . . . . . . . 106
7.4.2
Wie is er op het systeem? . . . . . . . . . . . . . . . . . . . 106
INHOUDSOPGAVE
7.5
8
Grafische omgevingen voor meerdere gebruikers . . . . . . . . . 107 7.5.1
Pessulus . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
7.5.2
Sabayon . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
8 Processen en booten 8.1
8.2
8.3
. . . . . . . . . . . . . . . . . . . . . . . 111
Processen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 8.1.1
Multi-user and multi-tasking . . . . . . . . . . . . . . . . . . 111
8.1.2
Wat is een proces? . . . . . . . . . . . . . . . . . . . . . . 111
Processen beheren . . . . . . . . . . . . . . . . . . . . . . . . . 112 8.2.1
ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
8.2.2
Achter- en voorgrond . . . . . . . . . . . . . . . . . . . . . 114
8.2.3
top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
8.2.4
Aardige processen . . . . . . . . . . . . . . . . . . . . . . 116
8.2.5
Kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
GNU/Linux booten . . . . . . . . . . . . . . . . . . . . . . . . . . 117 8.3.1
GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
8.3.2
Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
8.3.3
init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
8.3.4
Upstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
9 Op het net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 9.1
9.2
Plug jezelf in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 9.1.1
Wat heb je nodig om te kunnen netwerken? . . . . . . . . . . 126
9.1.2
Je netwerk grafisch configureren
9.1.3
Een zorgeloze toekomst? . . . . . . . . . . . . . . . . . . . 127
9.1.4
Netwerken: back to basics
9.1.5
Troubles? . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
9.1.6
Grafische netwerktools . . . . . . . . . . . . . . . . . . . . 132
. . . . . . . . . . . . . . . 126
. . . . . . . . . . . . . . . . . . 127
SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
INHOUDSOPGAVE
9.3
9
9.2.1
Inloggen op een andere pc . . . . . . . . . . . . . . . . . . 133
9.2.2
Grafische programma’s opstarten . . . . . . . . . . . . . . . 133
9.2.3
Grafisch bestandsbeheer op afstand . . . . . . . . . . . . . . 134
Enkele weetjes
. . . . . . . . . . . . . . . . . . . . . . . . . . . 135
10 Beheer van apparaten . . . . . . . . . . . . . . . . . . . . . . . 137 10.1 Devices: concept . . . . . . . . . . . . . . . . . . . . . . . . . . 137 10.2 Daemons en servers . . . . . . . . . . . . . . . . . . . . . . . . 138 10.3 Printers en cups . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 10.4 Beelscherm(en) en Xorg . . . . . . . . . . . . . . . . . . . . . . 140 10.4.1 /etc/X11/xorg.conf
. . . . . . . . . . . . . . . . . . . . . . 142
10.5 Audio en Alsa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 10.6 Scanner en SANE . . . . . . . . . . . . . . . . . . . . . . . . . . 143 10.7 Harde schijven lokaal en over het net . . . . . . . . . . . . . . . . 144 10.7.1 Een filesysteem mounten . . . . . . . . . . . . . . . . . . . 145 10.7.2 Een filesysteem u(n)mounten. . . . . . . . . . . . . . . . . . 146 10.7.3 Filesystemen mounten bij het opstarten. . . . . . . . . . . . . 147 10.7.4 Filesystemen mounten als gewone user. . . . . . . . . . . . . 148
A Creative Commons Licentie . . . . . . . . . . . . . . . . . . .
1
De aarde was woest en leeg; duisternis lag over de diepte, boek Genesis hfst. 1
1 Linux: eerste ontmoeting
In dit eerste hoofdstuk willen we je overstelpen met de mogelijkheden van het GNU/Linux-besturingssysteem en programma’s. Dit om je in een heel kort moment een totaaloverzicht te geven van wat GNU/Linux is, wat je ervan kan verwachten, mee bereiken, enz. Voorlopig is dit terrein voor jou misschien nog niet in kaart gebracht. Een eerste contact zal misschien overweldigend en chaotisch lijken. We gidsen je graag om vanuit de diepte en duisternis een breder inzicht te geven zodat je reeds een eerste overzicht hebt. Hopelijk komen er bij jou vele vragen op die we gedurende deze cursus kunnen plaatsen en beantwoorden. Deze cursus gaat ervan uit dat je reeds gewoon bent om te werken met een desktopomgeving, dat je reeds kan werken met een office-pakket, kan werken met mail en internet, enz. Met andere woorden: je bent geen absoluut beginner. Keuze en vrijheid zijn sleutelwaarden binnen de GNU/linux-omgeving. We demonstreren even
1.1
Een kleine demonstratie — uitgebreid aanbod van gnome/kde/XFCE/fluxbox -omgevingen. Diverse programma’s voor diverse taken. —
1
UNIT 1. LINUX: EERSTE ONTMOETING
1.2
Wat is Linux? Strikt gesproken is Linux de naam van de kernel voor een besturingssysteem 1 . Op zichzelf is de kernel niet zo interessant. Het biedt geen mogelijkheid voor de gebruiker om de computer te bedienen. Er is meer nodig. Wat vaak met “Linux” wordt bedoeld, is een GNU/Linuxdistributie. Dat is een samengesteld geheel van de kernel en andere software. Samen vormt het wel een volledig OS, en meer. Belangrijk zijn de GNU-utility’s. GNU is een recursief acroniem dat staat voor GNU’s Not Unix. Het is een set utility’s die is gemaakt door de FSF (Free Software Foundation) en een alternatief vormt voor de utility’s die bij Unices te vinden zijn. (Meer over de FSF en GNU komt verderop.) Bij deze utility’s hoort o.a. een shell, software die een command line toont zoals bij MS-DOS. De kernel en GNU-utility’s vormen samen een volledig functionerend OS dat dezelfde mogelijkheden biedt als Unix, maar dan op een pc. Omdat de software van het GNU-project net zo belangrijk is als de kernel, is het eigenlijk correcter het systeem GNU/Linux te noemen. Voortaan hanteren wij dan ook deze benaming. De moderne gebruiker wil graag een grafische desktop. Ook dat is beschikbaar bij GNU/Linux-distributies. Ten grondslag aan alle grafische software voor GNU/Linux (en andere Unices) ligt X. Software die een desktopomgeving vormt, maakt gebruik van X. Er zijn twee belangrijke projecten voor desktopsoftware: GNOME en KDE. Je merkt dat een GNU/Linux-distributie is opgebouwd uit een hoop verschillende onderdelen. Naast de hier genoemde onderdelen is er nog veel meer software te vinden bij een distributie. Wat al deze software gemeen heeft, is dat het open source is. Verder wordt het door vele verschillende individuen en groepen gemaakt.
1.3
Geschiedenis 1.3.1
Unix
GNU/Linux is voor alles een Unix en Unix is van oudsher een systeem voor en van universiteiten. En als zodanig is het stevig verankerd in de eeuwenoude wetenschappelijke traditie van open communicatie en uitwisseling. In deze omgeving ¨ niet, of niet alleen, ontwikkeld om er geld mee te verworden systemen en ideeen dienen, maar eerst en vooral om aanzien te verwerven binnen de eigen groep: de peer recognition. Zowel Unix als GNU/Linux zijn voortgekomen uit een zeer sterke en constante drang in de mens: de wens voor vol aangezien te worden door je collega’s. En zolang de aard van het beestje niet verandert is het voortbestaan van GNU/Linuxhierdoor waarschijnlijk beter verzekerd dan dat van andere compu1
Een besturingssysteem (of operating system, OS) is basissoftware voor een computer die de gebruiker de mogelijkheid biedt het systeem te gebruiken. De kernel is het deel dat als eerste wordt geladen en dan aanwezig blijft in het geheugen. Het vervult essenti¨ele taken, zoals geheugenmangament, scheduling om taken te verdelen over de processortijd, en communicatie met de hardware via device drivers.
2
UNIT 1. LINUX: EERSTE ONTMOETING
tersystemen, die afhankelijk zijn van de altijd grillige economische marktwerking. Unix werd aan het einde van de zestiger, begin zeventiger jaren ontwikkeld als een “klein” operating system dat in staat moest zijn op de meest uiteenlopende platforms meerdere gebruikers tegelijkertijd verschillende taken uit te laten voeren. Vanaf het begin werd de source (of broncode) ter beschikking gesteld aan iedereen die er maar aan wilde sleutelen. Dat gebeurde natuurlijk vooral aan de universiteiten en onderzoeksinstituten, en het is geen overdrijving om te zeggen dat het uiteindelijke Unix het resultaat was van honderden computerdeskundigen en hackers2 . Het is kenmerkend voor deze anarchistische omgeving van wetenschappers en studenten dat er al snel een ware cultuur van humor en sterke verhalen om dit operating system ontstond en het kwam dan ook voor velen als een klap dat in het begin van de tachtiger jaren Unix opeens werd gecommercialiseerd. Het was afgelopen met het inspecteren van de source, het experimenteren met alternatieve algoritmes. Computers waren “big business” geworden en de sources van programmatuur werden even jaloers geheimgehouden als het recept van Coca Cola. Het logische gevolg was dat de softwarebedrijven steeds meer een wurggreep kregen op hun klanten: elke wijziging in de code, elke aanpassing aan een programma moest duur worden betaald, zonder dat de klant enig zicht had op wat zich achter de schermen afspeelde. ¨ cultuur. Microsoft en Bill Gates zijn de voortbrengselen van deze commerciele ´ van de vele manieren om geld te maken Programmatuur was alleen nog maar e´ en en alles werd ondergeschikt gemaakt aan de winst. De gebruiker was volledig afhankelijk van de grillen van de producent, want hij had geen keus. Alleen had Bill Gates begrepen wat de eigenaars van Unix nooit hadden ingezien: dat je beter duizend systeempjes van honderd dollar kon verkopen dan vijf van tienduizend dollar. De bezitters van Unix hadden dat niet door en de commercialisering van Unix leidde in korte tijd tot de versplintering van dit operating system in evenveel peperdure varianten als er hardwareplatforms voor bestonden. En ondertussen haalde Microsoft de markt van de huiscomputer naar zich toe.
1.3.2
Het GNU copyleft
Deze commercialisering van wat in zijn ogen vrij zou moeten zijn voor iedere gebruiker stootte een zekere Richard Stallman zozeer tegen de borst dat hij besloot actie te ondernemen. Met de typisch Amerikaanse mengeling van na¨ıviteit en dadendrang richtte hij in 1984 de “Free Software Foundation”, de FSF op. Het ¨ verschil tussen de producten van de FSF en die van de commerciele ¨ essentiele bedrijven was nadrukkelijk niet dat de FSF-software per definitie gratis zou moeten zijn. In tegenstelling tot wat veel mensen denken wordt er over het verkopen van de software niets bepaald in de legale definitie van het “GNU copyleft” (een parodie op copyright). Maar wel is iedereen verplicht om de source van de betreffende software altijd mee te leveren en geen beperkingen te leggen op de verdere 2
Hackers zijn begaafde computergebruikers en -programmeurs. De populaire pers verwart ze ten onrechte met “crackers”, ofwel mensen die inbreken in computersystemen. Maar de populaire pers weet nu eenmaal zelden waar zij het over heeft . . . )
3
UNIT 1. LINUX: EERSTE ONTMOETING
verspreiding ervan. Het woord “free” moet hier dan ook worden gezien zoals in de uitdrukking “free speech”, niet “free beer”. Om Richard Stallman zelf aan te halen: “Een programmeur mag best geld verdienen. Hij en zijn gezin moeten goed kunnen eten als ieder ander, maar hij hoeft dat niet elke dag in een driesterrenrestaurant te doen.” ¨ van Richard Stallman door de rest van de wereld Natuurlijk werden de ideeen weggehoond. Dat verhinderde hem en zijn geestverwanten echter niet om een groot aantal uitstekende softwarepakketten te schrijven die op praktisch elke Unix konden draaien. Vooral op universiteiten gooiden de systeemadministrators zo ¨ versies van hun respectievelijke Unixen overboord snel mogelijk de commerciele om daarvoor in de plaats de GNU-utility’s te kunnen draaien. En dat gebeurde ¨ applicaties waren niet uit het oogpunt van kostenbesparing, want de commerciele immers al betaald, maar omdat de source open was en door honderden programmeurs over de hele wereld kon worden bekeken en verbeterd. Daardoor stak de GNU-software met kop en schouders boven de andere programmatuur uit.
1.3.3
Linux
Niettemin zag het er in het begin van de negentiger jaren slecht uit voor Unix. De massamarkt was door Microsoft veroverd en de hoge prijs van de verschillende Unixen verhinderde dat er serieus aan een Unix voor pc’s werd gewerkt. Alleen ¨ Microsoft had geexperimenteerd met een eigen Unix voor pc’s, Xenix geheten, en die was als SCO Unix een eigen leven gaan leiden. Unix op de pc kon dus wel, alleen kostte een volledige installatie toen nog (omgerekend) zevenduizend euro en dat kon natuurlijk geen enkele thuisgebruiker opbrengen. In 1991 veranderde dat dramatisch. Een Finse student, Linus Torvalds, ergerde zich aan het feit dat zijn favoriete besturingssyteem, Unix, niet thuis op zijn pc kon draaien. Toen hij hoorde van Minix, een OS gemaakt door Andy Tanenbaum op de Vrije Universiteit in Amsterdam, was hij direct ge¨ınteresseerd. Minix was ge¨ınspireerd door Unix. Linus vond Minix aardig, maar miste functionaliteit. Hij wilde het gaan uitbreiden, maar Tanenbaum wilde dat niet. Hij wilde Minix klein houden om het te kunnen gebruiken als onderwijsmateriaal. Toen besloot hij zelf maar een OS te gaan schrijven. Dat was echter niet zijn grootste verdienste. Het geniale van Linus Torvalds was dat hij het op universiteiten toen al lang populaire internet gebruikte om medestanders te vinden die samen met hem aan een Unix voor pc’s wilden werken en dat wilden uitbrengen onder het GNU copyleft. Het befaamde usenetbericht van Linus uit 1991 begon als volgt: “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.” We moeten niet vergeten dat op een typisch GNU/Linuxsysteem met honderden megabytes aan “vrije” programmatuur, slechts een miniem gedeelte van vijf- a` zeshonderd kilobytes (de kernel) echt “GNU/Linux´’ is. De rest bestaat uit software die door anderen in het kader van het GNU copyleft is geschreven en aan de rest van de wereld ter beschikking gesteld. En daarin ligt de grote verdienste van Linus Torvalds: het bij elkaar brengen van al deze bestaande stukjes tot een coherent
4
UNIT 1. LINUX: EERSTE ONTMOETING
besturingssysteem. Hiermee is Unix eindelijk weer terug waar het thuishoort: in de wereld van openheid, onderwijs en experiment, van samenwerking en peer recognition. En het is hoopgevend dat deze onbetaalde aandrang om erkend te worden binnen het wereldje van hackers, programmeurs en internet erin is geslaagd waar miljoenenfirma’s als IBM, Sun, Novell en al die andere hebben gefaald: het vormen van een serieuze bedreiging voor het gigantische Microsoft. ´ ding is zeker. Met GNU/Linux is de geest Ongeacht wat de toekomst brengt, e´ en van vrije software definitief uit de fles en niemand zal hem er ooit weer in terug kunnen stoppen. De GNU-filosofie van open source, die iedereen kan bekijken en die door iedereen kan worden aangepast en verbeterd, bestaat nu al 20 jaar en ¨ bovenbazen graag beweren: zij heeft niet tot versnipanders dan de commerciele pering geleid. In tegendeel: de GNU-software is verreweg de beste software die er bestaat. [?]
1.4
Gezond verstand: Open Standaarden en Open Source Termen die vaak voorkomen in Linuxland zijn Open Standaarden en Open Source. Veel gehoorde termen bij Open Standaarden zijn bescherming tegen vendor lock¨ in, proprietaire bestandsformaten, open formaten, enz. .
1.4.1
Open Standaarden
Wat is nu eigenlijk een ’Open Standaard’? (http://www.openstandaarden.be/ ?q=node/2) We maken een onderscheid tussen de volgende 3 definities:
• Open Specificatie: de specificatie moet gratis, online beschikbaar zijn en moet voldoende zijn om een volledig functionerende implementatie te schrijven.
• Vrije Specificatie: de specificatie moet open zijn (zie hierboven) en moet vrij zijn van juridische beperkingen (patenten, licenties, ...).
• Open Standaard: de specificatie moet vrij zijn (zie hierboven) en moet goedgekeurd zijn door een standaardenorganisatie. Deze wijkt af van bijvoorbeeld de definitie gegeven op -nederlandstalige- wikipedia (waar gesteld wordt dat open niet noodzakelijk gratis betekent). De Engelstalige versie vermeld dat men voor de gratis versie soms de term ‘open formats’ gebruikt. De Europese Commissie op zijn beurt voegt dan weer aan toe dat de standaard door een non-profitorganisatie moet onderhouden en vrijgegeven worden (http://europa.eu.int/idabc/en/document/3761). Bruce Peerens -stuwende kracht in de Open Source- legt dan weer zijn accenten.
5
UNIT 1. LINUX: EERSTE ONTMOETING
Een mooi document om uit de impasse te raken: http://www.davidecerri. org/en/doc/openness.pdf. Zij stipuleren:
• the standard specification document must be publicly available, either free of charge or at a nominal fee;
• the standard must be owned and managed by an official standardization body or by an open group or consortium: it must not be owned or controlled by a single party, and no single party must have special rights on it;
• the standard must be defined and managed according to an open process: every interested party must be able to join the standardization process, which must be based on an open decision making procedure (e.g., consensus);
• the standard must be free to implement for all interested parties, without any royalty fee: possible patented technologies included in the standard must be licensed with royalty free non discriminatory terms;
• it must be possible to extend and reuse the standard in other open standards. Waarom zoveel drukte maken over open standaarden? Als men open standaarden hanteert en consequent gebruikt dan neemt de uitwisselbaarheid tussen de verschillende soorten hardware- en software-onderdelen toe. Omdat iedereen vrij mag zien hoe iets wordt opgebouwd is er ook meer sprake van vrije ‘concurrentie’ en is men als consument minder afhankelijk van een bepaalde hardware- en/of softwareleverancier, dan wel dienstverlener (vrij van vendor-lockin).
1.4.2
Open Source
De Open Source Beweging is ooit begonnen als een ‘praktische’ beweging. Gnu en vrije software is OK maar men moet ook in de praktijk kunnen werken met elkaar. Daarom stelt men meestal dat waar bij vrije software de klemtoon ligt op het morele karakter van software voor iedereen, wil open source vooral gewoon aan de slag gaan zonder daarom altijd naar de morele (of immorele) intenties van een medewerker te kijken. In de praktijk echter komen ze heel goed overeen ;-). Bruce Peerens stelt enkele voorwaarden waar Open Source software moet aan voldoen: ´ te • De licentie mag niemand verbieden de software gratis weg te geven of verkopen.
• De broncode moet met de software meegeleverd worden of vrij beschikbaar zijn.
• Wederverspreiding van afgeleide werken en aangepaste versies van de software moeten toegestaan zijn.
6
UNIT 1. LINUX: EERSTE ONTMOETING
• Licenties mogen vereisen dat aanpassingen alleen als patch verspreid worden.
• De licentie mag niet discrimineren tegen gebruikers(groepen). • De licentie mag niet discrimineren tegen gebruiksomgeving van de software. • De rechten verbonden aan het programma moeten opgaan voor iedereen aan wie het programma gedistributeerd wordt.
• De rechten verbonden aan het programma moeten niet afhangen van softwaredistributies waarvan de software een onderdeel is.
• De licentie mag niet verlangen dat andere software die samen met de software verspreid wordt onder dezelfde licentie valt.
• Geen van de bepalingen van de licentie mag slaan op een bepaalde technologie of interface-stijl. Lees er ook eens http://people.mech.kuleuven.be/~bruyninc/ictvisie.
html op na.
1.5
Waar GNU/Linux gebruikt wordt • Door mensen met technische opleidingen, zoals natuurkunde, wiskunde en (vooral) informatica. Zeker iemand die informatica studeert mist mijns inziens wel erg veel als hij niets over Unices weet. En binnen alle serieuze onderzoeksgebieden is Unix nog altijd de standaard.
• In film- en animatiestudio’s, o.a. Disney, DreamWorks en Pixar. Enkele titels waar GNU/Linux voor is gebruikt, zijn Titanic, Shrek, Harry Potter en Lord of the rings.
• Door Google, de populairste zoekmachine van het moment. • Steeds meer overheden van verschillende landen overwegen om open-source software te gebruiken of doen dit al voor overheidscomputers, omdat het veiliger, beter controleerbaar en goedkoper is.
• In China wordt een eigen distributie van GNU/Linux gebruikt als officieel OS. • Ook op scholen in vele landen wordt GNU/Linux steeds meer gebruikt. Een belangrijke reden is dat GNU/Linux veel kosten bespaart. Om die reden begonnen wat armere landen er als eerste mee, zoals Brazillie¨ en sommige Afrikaanse landen.
• Voor servers, o.a. bij internetproviders. • Voor embedded systemen. • Door een groeiend aantal bedrijven en thuisgebruikers.
7
UNIT 1. LINUX: EERSTE ONTMOETING
• Open-sourcesoftware die erg veel gebruikt wordt: Apache, een webserver (software), wordt gebruikt op meer dan 60% van alle webservers (hardware). BIND (Berkeley Internet Name Daemon), een DNS-server, wordt gebruikt op meer dan 80% van alle DNS-servers. Sendmail, een mailserver, wordt gebruikt op bijna 80% van alle mailservers. MySQL en PHP, een database en een scripttaal; deze combinatie wordt voor vele dynamische websites gebruikt. Deze software is behalve onder GNU/Linux ook onder verschillende andere OS’en te gebruiken. [? ]
1.6
Sterke en zwakke punten van GNU/Linux en open source 1.6.1
Sterke punten
• Een GNU/Linuxdistributie is voor geen of weinig geld (legaal) te verkrij¨ gen. Wat het kost hangt af van de distributie. Er zijn enkele commerciele, die mooie dozen verkopen via winkels. Daar krijg je dan een handleiding en support bij. Er zijn ook volledige distributies te downloaden via internet.
• Linux (de kernel) is stabiel. De meest voorkomende reden van vastlopers is hardwareproblemen. Er zijn veel mensen die het maanden of zelfs jaren achter elkaar draaien zonder een enkele reboot. Alhoewel de kernel heel stabiel is, is het wel mogelijk dat buggy programma’s onder GNU/Linux vastlopen. Daar is niet veel aan te doen. Het vastlopen van een enkel programma zal er in ieder geval niet toe leiden dat het besturingssysteem wordt gevloerd.
• GNU/Linux is leuk om te gebruiken. Het heeft een hoog speelgehalte. De mogelijkheden zijn bijna onbeperkt. Je kunt overal bij en alles aanpassen. Je kunt alles configureren hoe jij het graag wil. En de ontwikkeling van software gaat snel, zodat je vaak nieuwe software of nieuwere versies kunt uitproberen.
• Linux (de kernel) heeft minimaal een 386 met 2 MB geheugen nodig. Met die hardware kun je vervolgens echter niet veel interessants doen. Maar wil je GNU/Linux gebruiken om enkel als webserver of router te draaien, dan volstaat een oude 486 met 8 of 16 MB geheugen. Wil je GNU/Linux gebruiken als desktopmachine, dan wil je een mooie desktop environment als KDE of GNOME kunnen gebruiken. Om daar een beetje fijn mee te kunnen werken, heb je wel modernere hardware nodig. De kernel zelf maakt het dus mogelijk het OS te gebruiken op oudere hardware als dat volstaat voor je doel. Alleen als je het als desktop wilt gebruiken, heb je betere hardware nodig.
• Doordat zo goed als alle voor GNU/Linux beschikbare software open source is, kunnen hulpvaardige programmeurs de makers van een stuk software
8
UNIT 1. LINUX: EERSTE ONTMOETING
helpen met het vinden van bugs of zelfs actief meewerken met de ontwikkeling. Ook niet-programmeurs kunnen meehelpen door het opsturen van bug reports. Door dit alles kunnen beveiligings- en andere soorten fouten in zeer korte tijd gevonden worden. Al met al worden bugs wel sneller afgehandeld ¨ software. dan bij de meeste commerciele
• GNU/Linux is een goed multitasking en multi-user OS. In GNU/Linux kunnen meerdere gebruikers tegelijkertijd van een computer gebruik maken, zonder dat ze last van elkaar hebben. Hun configuratiebestanden en persoonlijke bestanden staan allemaal in een eigen home directory.
• Multi-platform. GNU/Linux werkt op maar liefst 24 verschillende hardwareplatformen. Dus niet enkel op Intel maar ook op Mac, Alpha, Sun Sparc, enz. Zo worden niet enkel desktops en servers ondersteund maar ook heel wat embedded systemen.
• Er bestaan zo goed als geen virussen of wormen voor GNU/Linux . De ¨ enkele die bestaan zijn niet succesvol in de praktijk. Een veel reeler gevaar waar je wel in de praktijk last van kunt hebben met een GNU/Linuxsysteem zijn crackers (mensen die inbreken in computersystemen).
• GNU/Linux is schaalbaar. Het draait evengoed op een oude 486 als op een supercomputer.
• Uitgebreide netwerkmogelijkheden. De kernel heeft vrij geavanceerde firewallmogelijkheden. Met de software die je bij een GNU/Linuxdistributie aantreft, kun je een DNS-, proxy-, POP-, SMTP-, FTP-, nieuws- en webserver opzetten. Om deze reden wordt GNU/Linux ook best veel gebruikt door internetproviders.
• Monopolie-vrij. De dominantie van Microsoft op de software-markt is vele computergebruikers een doorn in het oog. Zij vinden dat ze te vaak verplicht zijn bij Microsoft middelmatige produkten aan te kopen aan een overdreven prijs, enkel en alleen omdat dit bedrijf ook de absolute controle heeft over het besturingssysteem waarop de toepassing draait. Open software is op dit moment reeds zover ontwikkeld dat men zich eigenlijk moet afvragen “Waarom zou ik kiezen voor niet-open software? . . . ” Voorzichtigheid blijft echter geboden: het “open” zijn van software is, op zich, geen garantie voor de kwaliteit. Op de golf van suksesrijke open software projecten, bieden sommigen een miniem deel van hun code aan als open “instap”-programma, terwijl ze eigenlijk enkel ge¨ınteresseerd zijn in het ¨ “professionele” versie! Of de code verkopen van hun gesloten, commerciele is zo onleesbaar dat je handleidingen of ondersteuning bij hen moet kopen. (Dit gevaar loop je gelukkig niet bij de “grote” projekten zoals GNU of KDE.) Open software is dus meer dan software alleen: het is een mentaliteit!
1.6.2
Zwakke punten
´ ultieme OS. Ik zal je maar Sommige GNU/Linuxgebruikers zien GNU/Linux als het gauw uit die droom helpen: GNU/Linux kent ook wel zijn zwakke punten. Zoals
9
UNIT 1. LINUX: EERSTE ONTMOETING
eigenlijk met alles, is er geen OS dat voor iedereen en voor alle doeleinden perfect is.
• Veel mensen weten niet erg veel van computers, maar gebruiken ze alleen als veredelde typemachine en misschien om wat te browsen op internet. Dat wordt door veel GNU/Linux-gebruikers zwaar onderschat. Dat komt vooral doordat zij over het algemeen veel met computers omgaan, er interesse in hebben en al doende veel leren. Voor de doorsneegebruiker zijn zaken als herpartitioneren en configureren van hardware erg lastig. Er komt steeds meer eenvoudig te gebruiken software, maar als een stuk hardware niet direct na de installatie volautomatisch werkt of via een simpel (liefst grafisch natuurlijk, want dat spreekt meer aan) configuratieprogramma aan de praat te krijgen is, dan wordt het al erg vervelend. Om deze redenen is niet iedereen het ermee eens dat GNU/Linux al “gebruiksvriendelijk” genoeg is. Wat zeker zou helpen om meer mensen GNU/Linux te laten gebruiken, is het voorinstalleren op de computer bij aanschaf. Een pc met GNU/Linux erop is op enkele plaatsen te kopen, maar het is nog altijd een nichemarkt.
• Dit punt hangt samen met het bovenstaande. Je zult misschien de woorden “steep learning curve” wel eens gezien hebben. Wat daarmee wordt bedoeld, is dat het wel tijd en inspanning (en daarom geduld) kost om met een besturingssysteem als GNU/Linux overweg te kunnen. Mocht je iets willen doen dat echt handmatig moet gebeuren, dan helpt het enorm om te weten hoe het werkt. In de meeste gevallen is dat een kwestie van “als je het eenmaal weet, is het niet zo moeilijk”, maar je moet het wel eerst leren. Niet iedereen wil dat.
• Softwarefabrikanten die hun producten richten op de thuisgebruikers maken natuurlijk programma’s voor wat de mensen vooral gebruiken. En dat is op de dag van vandaag nog altijd Windows. Erg veel spellen (om maar eens iets te noemen) zijn er daardoor niet voor GNU/Linux.
• Hetzelfde doen hardwarefabrikanten. Ze maken over het algemeen alleen maar drivers voor Windows en de meeste willen geen specificaties vrijgeven. Daardoor zal sommige hardware pas later of misschien zelf nooit werken onder GNU/Linux. Bij Windows kun je ervan uitgaan dat al je hardware ondersteund wordt. Onder GNU/Linux is de kans kleiner. Maar schrik niet: er is behoorlijk veel hardware die onder GNU/Linux werkt. Er komen ook steeds meer hardwarefabrikanten die zelf drivers voor GNU/Linux maken.
• Er is een groot aanbod aan open-sourcesoftware. Voor sommige taken zijn meerdere programma’s beschikbaar. Deze keuze heeft als voordeel dat je iets kunt gebruiken wat aan jouw eisen voldoet, maar het kan ook verwarrend zijn. Welk programma moet je gebruiken? Er zijn ook verschillende distributies waaruit je kunt kiezen. Welke is het beste? De snelle ontwikkeling in de open-sourcewereld heeft ook een keerzijde: informatie en kennis die nu van toepassing is, kan over een jaar al behoorlijk achterhaald zijn.
• De GNU-software volgt de POSIX-standaard, zodat het compatible is met de Unix-equivalenten. Maar er is geen standaard manier waarop grafische software zich moet gedragen of hoe het eruit moet zien. Er is een grote
10
UNIT 1. LINUX: EERSTE ONTMOETING
¨ varieteit in “looks”. Zet GNOME-software, KDE-software en een ouder programma als Ghostview maar eens naast elkaar. Die verschillen nogal van elkaar. Dit is misschien niet het ergste nadeel, maar wel iets dat desktopgebruikers zal opvallen.
1.7
Distributies Een linux-distributie is een verzameling van de linux-kernel met bijhorende GNU-tools, diverse systeemprogramma’s en software. Meer en meer boekhandels verkopen boeken over GNU/Linux, vaak zelfs in combinatie met de software op CD’s. Als je op je eentje aan GNU/Linux wil beginnen kies je best voor zo’n boek met CD, of ga je eens een kijkje nemen bij een Linuxgebruikersclub in je buurt. Heb je zelf internettoegang, dan vind je niet alleen een massa informatie over alles wat met GNU/Linux en open software te maken heeft, maar je kan er ook met al je vragen terecht bij mensen die reeds jaren met GNU/Linux en open software bezig zijn. Er bestaan verschillende GNU/Linux-distributies, d.w.z. enkele CD’s met open software, verzameld en gebundeld door een of andere “distributie-maker.” Het voordeel van zo’n distributie is dat je zelf niet het Internet moet afschuimen om al de software waarin je ge¨ınteresseerd bent op te snorren en af te halen. Er zijn talloze distributie-makers actief, zodat je als neofiet het gevaar loopt het Linux-bos door de distributie-bomen niet meer te zien. Maar geen nood: met de summiere uitleg hieronder ben je al een heel eind op weg om de voor jou meest geschikte distributie te proberen. Een distributie bestaat uit een kernel, een hoop toepassingssoftware, en een installatie- en configuratietools. Het verschil tussen de distributies zit hem vooral in het installatie-tool (van goede kwaliteit voor alle distributies, maar kan altijd nog beter), en in de selectie van meegeleverde programma’s. Alle distributies bevatten dezelfde kernel (namelijk het Linux-besturingssysteem) zodat je alle toepassingsprogramma’s onder alle distributies kan gebruiken. Er is ´ enkele Linux-kernel. Natuurlijk kan het versie-nummer immers nog altijd maar e´ en op recentere CD’s hoger zijn dan op oudere. Een nuttige tip in verband met versies: als het middelste van de drie getallen in het versie-nummer even is (bijv. 2.0.35, 2.2.1, . . . ) dan heb je te maken met een stabiele versie; de oneven nummers (bijv. 2.3.1) zijn ontwikkelversies die je als “gewone” gebruiker misschien best vermijdt. CD-distributies bevatten alleen stabiele versies. Alhoewel de software op distributies open en gratis is, is het niet verboden om geld te verdienen met het aanmaken en verdelen van distributies, het maken van (grafische) “package management tools,” of het verlenen van ondersteuning aan ¨ distributies als “open” of beter gebruikers. Er bestaan dus zowel commerciele community-based distributies. Wij sommen er slechts enkele op. Voor uitleg bij de meer dan honderd distro’s : http://www.distrowatch.com Gebaseerd op http://linux.iguana.be/nl/linux/waar.php
11
UNIT 1. LINUX: EERSTE ONTMOETING
1.7.1
¨ distributies Commerciele
Deze bieden de mogelijkheid om onderhoudscontracten af te sluiten, van een eenvoudige telefonische helpdesk tot en met dag-en-nacht garantie. Zij hebben ook vertegenwoordigers in zowat alle ge¨ındustrialiseerde landen.
A
SUSE LINUX - http://www.novell.com/linux/
SuSE LINUX is (vooral in Europa) een zeer populaire distro van Duitse origine. SuSE is vooral gericht op verkoop via winkels. Er is een personal en professional edition. Sedert 2004 is het overgenomen door Novell die met SuSE LINUX een eigen Linuxafdeling wil opzetten. Het pakket wordt geleverd met heel wat documentatie in de vorm van 3 of 4 handboeken, en met de hoeveelheden software is SuSE LINUX ook meer dan vrijgevig. De installatie gebeurt tegenwoordig met behulp van YAST2 (Yet Another Setup Tool), een toepassing die zeer goed en snel werk verricht in combinatie met YOU (YAST Online Update). Alles opgeteld is dit dus een zeer goede en complete distro!
B
RedHat - http://www.redhat.com
Dit is waarschijnlijk de meest populaire distro, vooral dan in de VS. Wel krijg je minder documentatie en software bij deze distro. Ook valt het ons de laatste tijd op dat er veel mensen klagen over het feit dat RedHat de dingen steeds net iets anders doet. Ken je veel van RedHat, dan ben je niet zeker dat je aan dezelfde kennis nog veel hebt in een andere distro. Het is normaal dat elke distro eigen software gebruikt, maar onuitgesproken regels zoals die over de bestandslocaties worden door RedHat wel eens “gebroken”: in tegenstelling tot bijvoorbeeld Mandrake en vooral SUSE LINUX houdt RedHat zich niet bepaald aan de LSB3 . In 2003 heeft RedHat zich gespecialiseerd op de servermarkt. Haar wereldwijde community werd ondergebracht in een nieuw project: Fedora. (http://fedora.redhat.com
C
Mandriva - http://www.mandriva.com
Mandriva is oorspronkelijk gebaseerd op RedHat, maar veel merk je daar vandaag niet meer van. Deze distro staat heel sterk op het gebied van bijgeleverde software. De documentatie moet spijtig genoeg wel onderdoen voor die van SuSE. Van oorsprong is Mandriva een Franse distro die erg gebruiksvriendelijk is en op alle vlakken (buiten dan misschien de documentatie) zeer volledig is. Voor iemand 3
LSB
LSB of Linux Standard Base. Meer info op http://www.linux-foundation.org/en/
12
UNIT 1. LINUX: EERSTE ONTMOETING
die pas start met Linux is deze distro zeker aan te raden.
1.7.2
Open of community based distributies
Deze worden volledig door vrijwilligers gerund, en zijn dus de “puurste”, in de ¨ van de vrije software filosofie volgen. Al deze zin dat ze het strikst te ideeen distributies zijn gratis van het internet te halen (is 100 procent legaal) en mogen op meerdere PC’s ge¨ınstalleerd worden.
A
Debian - http://www.debian.org
Debian is zowat de oudste van de community-based distributies. Het kent een wereldwijde, actieve gemeenschap van programmeurs die de distributie continu up-to-date en stabiel houdt. Op deze distributie zijn heel wat andere distro’s gebaseerd omwille van de kwaliteit, degelijkheid en zijn strak vasthouden aan de GNU. Hoewel vroeger relatief moeilijk te installeren is dit met de nieuwe installer ‘Sarge’ nu veel vereenvoudigd. Deze distro is volledig gratis en je vindt stapels ondersteuning op het internet!
B
Gentoo - http://www.gentoo.org
Prille Linuxgebruikers worden het systeem misschien beter even ´ van de bovenstaande distro’s, of met een digewend met e´ en stro die rechtstreeks van een cd-rom boot zoals Knoppix. Wil je op een bepaald moment toch een niveau moeilijker gaan en bijleren, installeer dan Gentoo. Gentoo heeft enkele pluspunten die op zijn minst vernoemenswaardig te noemen zijn. Gentoo is volledig gratis. Je kunt van Gentoo dus ook geen boxen kopen zoals dit kan van RedHAT, Mandrake, SuSE en vele anderen. Gentoo compileert en installeert elk programma van de broncode. Dit heeft als gevolg dat de software op maat gemaakt is van je processor. Gentoo is de´ distro om de laatste nieuwe software te installeren.
C
Knoppix - http://www.knopper.net
Knoppix is een Linuxdistributie die gebaseerd is op debian. Deze distributie is een zogenaamde live-cd. De distro staat op cd en je moet niks installeren. Gewoon booten vanaf CD-rom en knoppix-Linux wordt in het RAM geladen. Wanneer je een besturingssysteem draait vanaf een cd-romstation, is het vanzelfsprekend dat toepassingen niet zo snel lopen als bij een besturingssysteem dat op de harde schijf staat. Natuurlijk verloopt alles trager dan gewoonlijk, maar niet in die mate
13
UNIT 1. LINUX: EERSTE ONTMOETING
dat het ging irriteren. Knoppix is ideaal voor de beginnende Linuxgebruiker, voor de windowsgebruiker die eens kennis wil maken met Linux zonder iets aan zijn systeem te veranderen. Het echte voordeel van Knoppix is dat het als een snel reddingsmiddel voor gecrashte computers gebruikt kan worden. Deze distributie bevat een hoop schijf- en reparatietools (ook een virusscanner voor windows) die je toelaten zoveel mogelijk data te redden/herstellen! Vergeet niet dat het met Knoppix slechts een kwestie van minuten is eer je een volledig werkende Linux op je scherm hebt staan! Eens de smaak te pakken, kan je knoppix ook installeren op je harde schijf.
D
Slackware - http://www.slackware.com/
Deze distro is meer bedoeld voor de hardcore Linuxgebruiker. Je vindt niet onmiddellijk iets wat eigen is aan Slackware, maar je krijgt wel een zeer zuivere distro in handen. Je zult wel zelf nog heel wat moeten configureren en dit zonder grafische configuratietools. De installatie verloopt nog voor een groot stuk tekstgebaseerd (via de commandoregel). Begin niet aan Slackware als je niet bereid bent op eigen houtje op zoek te gaan naar informatie en bij te leren. Laat je ook niet teveel afschrikken: Slackware is een heel goede distro; wanneer je wat Linuxervaring hebt, kan het best eens leuk zijn om ermee te experimenteren!
1.7.3 A
¨ sponsoring Open met commerciele
Ubuntu - http://www.ubuntu.com
Ubuntu is een recente distributie die snel is opgekomen in populariteit. Het is gebaseerd op Debian, maar met meer up-to-date pakketten. Ubuntu wordt net als Debian door een groep vrijwilligers gemaakt, maar wordt gesponsord door het Afrikaanse bedrijf Canonical Software, opgericht door ondernemer en multimiljonair Mark Shuttleworth. Ubuntu is een oud Afrikaans woord dat “humaniteit naar anderen” betekent. Deze distributie is niet commercieel. Sterker nog, het motto is dat software vrijelijk en gratis beschikbaar moet zijn voor iedereen. Het kan gedownload worden en er zijn gratis cd’s te verkrijgen. Een cd met Ubuntu kan zelfs naar je toegezonden worden, waar je ook woont en zonder verzendkosten. Er komt elke 6 maanden een nieuwe versie uit. Dat is dezelfde periode als die aangehouden wordt voor GNOME. Deze desktopomgeving is wat standaard ge¨ınstalleerd wordt bij Ubuntu. Je kunt KDE achteraf installeren. Je kunt ook Kubuntu (http://www.kubuntu.org) gebruiken, waarbij KDE juist standaard wordt ge¨ınstalleerd. Ubuntu en Kubuntu hebben dezelfde basis en worden door dezelfde mensen gemaakt.
14
UNIT 1. LINUX: EERSTE ONTMOETING
B
Fedora - http://fedora.redhat.com/
Toen Red Hat in 2003 besloot om zich volledig te richten op de zakelijke markt ontwikkelde ze de desktopversie niet actief verder uit. De ontwikkeling van de variant voor thuisgebruikers werd verplaatst naar de gemeenschap (dat proces is overigens nog steeds bezig). Fedora werd geboren. Fedora heeft buiten zijn directe functie als desktopdistributie ook nog een andere belangrijke functie: met het Fedoraproject hoopt Red Hat een grote gebruikers¨ groep te creeren die actief meeontwikkelt aan Fedora. Red Hat helpt, zeker in het begin, nog hard mee aan de ontwikkeling, maar naarmate de tijd verstrijkt moet de gemeenschap zich steeds meer zelf ontwikkelen. Red Hat neemt hiervan alle goede ontwikkelingen over in haar serversoftware. Ook gepatenteerde software is niet opgenomen in Fedora Core. Daardoor is ondersteuning voor enkele dingen niet opgenomen in Fedora Core. Denk daarbij aan: het afspelen van MP3-bestanden, het afspelen van Flash-filmpjes, ondersteuning voor Java in de webbrowser ontbreekt, geen 3d-acceleratie bij ATI- en NVidia-videokaarten.
C
Welke distributie kiezen?
Veel beginners vragen zich af welke distributie ze moeten gebruiken. Ik kan niet vertellen welke distributie het beste is. Het is deels een kwestie van persoonlijke smaak. Van de genoemde distributies zijn Fedora Core, Mandriva, SuSE en Ubuntu het meest geschikt om mee te beginnen. De installatie is eenvoudig en er wordt voor gezorgd dat alles meteen werkt. Bij andere distributies moet je vaak nog het een en ander zelf doen, wat vooral voor de beginnende gebruiker een struikelblok kan zijn. Waar je niet op moet letten bij het uitkiezen van een distributie is het versienummer. Om nieuwer te lijken, gebruiken sommige makers van distributies een hoger ¨ dat. Waar je versienummer. Zoals je kunt verwachten doen alleen commerciele beter aan kunt zien hoe nieuw een distributie is, zijn de versienummers van de software die erbij zit, zoals de kernel en KDE/GNOME. Dat is ook precies wat DistroWatch doet.
Figuur 1.1: Tux: de mascotte van Linux
15
UNIT 1. LINUX: EERSTE ONTMOETING
¨ mascotte (en het logo) van GNU/Linux is Tux de pinguin, ontworpen door Larry Ewing De officiele in 1996 voor een logocompetitie. Linus vond dat het een pingu¨ın moest worden. De inzending van Larry won. Je komt hem overal tegen, soms enigszins verkleed voor de gelegenheid.
1.8
Licenties Er zijn verschillende licenties die gebruikt kunnen worden voor open-sourcesoftware. De meest gebruikte zijn GPL (General Public License) en LGPL (Lesser General Public License) van GNU en de BSD- en MIT-licenties. De GPL-licentie bepaalt dat iedereen de software mag gebruiken (ook voor com¨ toepassingen) en het zonder restricties verder verspreid mag worden. merciele Het is bij verdere verspreiding wel verplicht de broncode te leveren. Bijzonder aan de GPL-licentie is dat het verplicht stelt dat software waar GPL-software in gebruikt wordt ook onder de GPL-licentie wordt uitgebracht. Als gevolg moet de broncode er ook van worden vrijgegeven. Op die manier komt het ter beschikking ¨ voor de maatschappij. Sommigen, vooral makers van proprietaire software, zien dit echter als het “infecteren” van de nieuwe software en zullen iets wat onder de GPL-licentie valt niet snel gebruiken. Alle GNU-software en GNU/Linux zijn voorbeelden van software die onder de GPL-licentie verspreid worden. LGPL is een iets “lichtere” variant. Het stelt niet verplicht dat software waar LGPLsoftware in gebruikt wordt ook onder de LGPL-licentie wordt uitgebracht. Wel verplicht het wijzigingen in de LGPL-delen vrij te geven. LGPL was oorspronkelijk bedoeld voor library’s, omdat die bij uitstek door veel andere software gebruikt worden. De BSD-licentie is heel eenvoudig. Het vereist dat je de naam van de auteur vermeldt als je de software gebruikt in een ander product. Alle vormen van gebruik en verspreiding zijn zonder meer toegestaan. De besturingssystemen FreeBSD en OpenBSD en de webserver Apache dragen deze licentie. De MIT-licentie is vergelijkbaar. Die vereist enkel dat een verklaring wordt opgenomen waarin alle aansprakelijkheid van de auteur voor schade, in welke vorm dan ook, wordt
16
UNIT 1. LINUX: EERSTE ONTMOETING
afgewezen.
1.9
Het vinden van informatie Dit hoofdstuk geeft een aantal mogelijkheden die je kunt aflopen als je op zoek bent naar informatie over een bepaald GNU/Linuxgerelateerd onderwerp
1.9.1
Website van de distributie
Vaak is op de website van de distributie informatie te vinden. Voor informatie over distributiespecifieke zaken is dit de aangewezen plaats om te kijken. Zo heeft bijvoorbeeld de distributie Gentoo uitstekende online documentatie. De delen die niet specifiek zijn voor Gentoo, kun je ook gebruiken voor een andere distributie. Ubuntu heeft ook een uitstekende hulp: https://help.ubuntu.com/ biedt een online documentatie aan https://help.ubuntu.com/community/ gaat een stapje verder en biedt ook community-supported artikelen aan. Nederlandstalige gebruikers kunnen ook terecht op : http://www.ubuntu-nl.org/ubuntu-nl/ ¨ site van Ubuntu kun je ook heel wat info vinden op : Buiten de officiele
• http://doc.gwos.org/index.php/Main Page • http://ubuntuguide.org • http://www.linuxdocs.nl
1.9.2
Linux Documentation Project
De hoofdpagina van TLDP, The Linux Documentation Project, is http://www. tldp.org. (Er zijn vele mirrors van gemaakt, dus er zijn nog wel meer URL’s voor.) Je kunt er o.a. HOWTO’s, guides en manual pages op vinden. Veel informatie die op het TLDP te vinden is, kan ook op de harde schijf ge¨ınstalleerd worden. Linuxgazette is een aanvulling op deze howto’s http://linuxgazette.net/. Een aanrader voor Nederlandstaligen is http://doc.nl.linux.org/
1.9.3
HOWTO
In een HOWTO staat informatie over een specifiek onderwerp. Zoek je bijv. informatie over fonts, kijk dan eens of je een font HOWTO kunt vinden. Let wel op de datum van de documenten! Sommige zijn jaren oud. De informatie kan dan achterhaald en niet meer van toepassing zijn. Installeer je de HOWTO’s, dan worden ze geplaatst in /usr/share/doc/HOWTO/ of
17
UNIT 1. LINUX: EERSTE ONTMOETING
(bij distributies die zich niet zo goed aan de Filesystem Hierarchy Standard houden) in /usr/doc/HOWTO. Het zijn tekstbestanden, dus ze zijn met elke teksteditor of less te bekijken.
1.9.4
Manual pages
Een manual page bevat volledige informatie over een bepaald programma, bestand, libraryfunctie e.d. De manual pages zijn ingedeeld in acht secties, te weten:
• user commands • system calls • functions and library routines • special files, device drivers and hardware • configuration files and file formats • games and demos • miscellaneous character set, file system types, datatype definitions and so on
• system administration commands and maintenance commands Het is aan te raden de manual pages te installeren op je harde schijf. Deze bestanden bevatten een bepaalde opmaak. Bekijk ze met het programma man. Wil je bijv. weten hoe het configuratiebestand /etc/crontab in elkaar zit, typ dan man 5 crontab. (Als je geen onderdeel opgeeft, dan krijg je de manual page met het laagste onderdeelnummer te zien.) Voor verdere informatie over het gebruik van manual pages typ man man.
1.9.5
Info pages
Deze zijn vergelijkbaar met manual pages, maar de informatie is vaak meer up-todate. Mits ge¨ınstalleerd, zijn de info pages te vinden in /usr/share/info of /usr/info. Gebruik info om ze te bekijken. Hoe je info gebruikt, staat in info info.
1.9.6
/usr/share/doc
Hier vind je de documentatie van ge¨ınstalleerde software. Heb je bijvoorbeeld gaim ge¨ınstalleerd, dan staat de bijbehorende documentatie in /usr/share/doc/gaimversie, met in plaats van versie het versienummer. Bij distributies die zich niet zo goed aan de Filesystem Hierarchy Standard houden, zou dit ook in /usr/doc kunnen staan.
18
UNIT 1. LINUX: EERSTE ONTMOETING
1.9.7
Nieuwsgroepen en forums
Als je de benodigde informatie niet kunt vinden of als je er echt geen hout van begrijpt, kun je ook terecht in nieuwsgroepen over GNU/Linux zoals nl.comp.os.linux.overig of be.comp.os.linux De hele nl.comp.os.linux-boom staat bekend als NCOL en de Vlaamse als BCOL. Je kunt ook tussen oude nieuwsberichten rondzoeken op http://groups.google.com. Wellicht heeft iemand al eens een interessant bericht gepost. Vergelijkbaar met nieuwsgroepen zijn forums. Op de website van Gentoo (een GNU/Linuxdistributie) staat er een die zich heeft ontpopt tot een van de beste van dit moment: http://forums.gentoo.org. Het ubuntuforum is ook aan een opmars bezig: http://ubuntuforums.org/.
1.9.8
Het web
Informatie die niet direct in een van de vorige bronnen te vinden is, kan nog wel op andere lokaties op het web staan. Een goede zoekmachine is http://www. google.com. Op http://www.google.com/linux kun je zoeken op GNU/Linuxgerelateerde sites. De online encyclopedie Wikipedia (http://www.wikipedia. org) bevat ook veel nuttige (achtergrond)informatie. Het meeste is te vinden op de Engelstalige pagina’s.
1.9.9
Boeken
O’Reilly heeft veel goede boeken over het gebruik van GNU/Linux programmeertalen en allerlei GNU-software uitgebracht. Je herkent ze direct door hun witte ´ of ander beest erop. Een veel gelezen boek is “Linux in a Nutsvoorkant met e´ en hell”. Een ander boek waar veel positieve geluiden over te horen zijn, is “Running Linux”.
1.9.10
Tijdschriften
Een tijdschrift is een leuke manier om wat nieuwtjes en tips op te steken. Er zijn er verschillende in boeken- en tijdschriftenwinkels te vinden. Enkele bekende zijn:
• http://www.linuxformat.co.uk - Engels tijdschrift • http://www.ed-diamond.com: Linuxmagazine / France - degelijker dan de Nederlandstalige versie
• http://www.linuxmag.nl - Nederlands tijdschrift • CT is geen linuxtijdschrift ‘pur sang’ maar verwerkt maandelijks 1 of meerdere artikelen met betrekking tot linux. http://www.fnl.nl/ct/.
19
UNIT 1. LINUX: EERSTE ONTMOETING
20
Ook online zijn er gratis tijdschriften te vinden. De bekendste in het Nederlandstalig gebied is http://www.livre.nl. Engelstalig is vooral freesoftwaremagazine bekend: http://www.freesoftwaremagazine.
com/ Ook Ubuntu lanceert een gratis magazine gericht op de desktopgebruiker: http:
//www.fullcirclemagazine.org/.
Choice, the problem is choice Neo - The Matrix Reloaded
2 Verover je Desktop
2.1
Desktopdiversiteit Elk deftig besturingsysteem biedt vandaag een gebruiksvriendelijke interface aan. Met de muis aanwijzen, klikken en slepen, vensters maximaliseren en minimaliseren. Dat vindt iedereen evident. In de beginjaren van Linux werd er voornamelijk op de terminal gewerkt: een “DOS-achtige” omgeving die blijkbaar ook de muis overbodig vond. Met de opkomst van de windowmanagers midden jaren 90 is er veel veranderd. Toch is het goed om te onthouden dat de echte kracht van GNU/Linux vooralsnog vaak verscholen ligt in zijn terminalkant.
Linux grafisch introduceren is moeilijk. Men beschikt immers over meerdere grafische schillen die ook nog eens in ondersteuning, wijze van werken, . . . soms veel van elkaar verschillen. (voor een breder overzicht : http://xwinman.org/) We stellen je voor aan -slechts- twee windowmanagers en drie desktopomgevingen. Een windowmanager regelt de plaatsing van de vensters, de decoraties van de vensters, knopjes, taakbalken, menu’tjes, pictogrammen op je desktop en veel meer. Naast windowmanagers kent Linux ook desktopomgevingen: naast het plaatsen van venstertjes wil een DE een complete, all-round productieve omgeving aanbieden. Zo bieden GNOME en KDE ook een eigen emailprogramma, browser, officepakket, configuratietools, bestandsbeheerder, . . . aan.
21
UNIT 2. VEROVER JE DESKTOP
2.1.1 A
Desktopmanagers: GNOME, KDE en Xfce4
GNOME
GNOME is een acroniem dat staat voor GNU Network Object Model Environment. Ooit opgestart als tegenwicht voor KDE (die eind jaren 90 nog niet onder een vrije ´ van de meest populaire werklicentie te verkrijgen was) is het uitgegroeid tot e´ en omgevingen voor UNIXen. GNOME is een volledig vrije omgeving. Niet enkel vrij te gebruiken maar ook vrij om zelf aan de slag te gaan met de broncode. GNOME omvat zowel een werkomgeving (desktop environment) als een ontwikkelplatform (met GTK als belangrijkste component). Het wordt ondersteund door grote bedrijven als HP, Red Hat, Novell en Sun. Het is dan ook niet te verwonderen dat zij GNOME als hun standaardwerkomgeving promoten. Ook in ubuntu is dit de standaard. GNOME is een desktopomgeving en kent dus een eigen ‘arsenaal’ aan programma’s. Een kleine greep uit de belangrijkste programma’s:
• Ekiga: een videoconferentietoepassing ook geschikt voor voIP. • Epiphany: browser (in Ubuntu vervangen door Mozilla-Firefox) • Evince: bekijken van PDF, PostScript, DVI en andere • Evolution: email, agenda, taken, adressen • Pidgin: instant messaging • gedit: editor voor tekst met diverse handige plugins • GIMP: bijna professioneel grafisch pakket • Openoffice: Office-pakket • Inkscape: vectortekenprogramma • Nautilus: bestandsbeheer • Rhythmbox: muziekbeheerder • Totem: mediaspeler voor diverse audio- en videoformaten Op gnomefiles (http://www.gnomefiles.org/) vind je heel veel GTK-gebaseerde software terug. GNOME is gebaseerd op GTK. GTK (afkorting van de GIMP Toolkit) ontstond toen de ontwikkelaars van de Gimp niets zagen in bestaande GUI-toolkits en er zelf eentje begonnen te schrijven. De aldus ontstane toolkit bleek ook voor andere programma’s geschikt en werd als basis voor GNOME gekozen. Programma’s geschreven met de GTK kunnen daardoor zonder 1 regel programmacode te wijzigen geschikt gemaakt worden voor zowel Linux als Windows.
22
UNIT 2. VEROVER JE DESKTOP
website: http://www.gnome.org
Figuur 2.1: De gnome-desktop op ubuntu na installatie
B
KDE
KDE is een krachtige grafische gebruikersomgeving voor Unix-werkstations, uitgegeven onder een Open Source-licentie. Het combineert gebruiksgemak, moderne functionaliteit en een uitstekend grafisch design met de technologische superioriteit van het Unix-besturingssysteem. Net zoals bij GNOME kent ook KDE een ontwikkelplatform: QT. De Qt-bibliotheek (ontwikkeld door een commercieel bedrijf: Trolltechh) is de basis waarop KDE bouwt. Andersom wordt de ontwikkeling van Qt ook door KDE be¨ınvloed (mede doordat de oprichter van KDE, Matthias Ettrich, nu leider is van de ontwikkelafdeling van Trolltech). Een aantal KDE-programma’s: ´ • Konqueror: bestandsbeheerder en uitstekende webbrowser in e´ en
• Kontact: een volledige PIM-suite bestaande uit e-mail, adresboek, agenda, notities, etc.
• KOffice: een razendsnel officepakket, dat enkele handige extra’s kent ten opzichte van OpenOffice.org en vanaf versie 1.5 ook volledig de ODF-standaard gebruikt als documentsindeling.
23
UNIT 2. VEROVER JE DESKTOP
24
• Kopete: instant messaging • Digikam: foto’s beheren • Een aantal indrukwekkende educatieve programma’s, zoals KStars en Kig. Het aantal breidt continu uit.
• K3b: een volledig cd-dvd brandprogramma • Een groot aantal krachtige gereedschappen voor het werken met tekst, multimedia en afbeeldingen. Met versie 4 van de QT-bibliotheken zullen KDE-applicaties heel wat makkelijker om te zetten zijn voor andere besturingssystemen. One QT to rule them all. website: http://www.kde.org
Figuur 2.2: De KDE-desktop op kubuntu
C
Xfce4
website: http://www.xfce.org/ Xfce is een lichtgewicht desktopomgeving: ideaal voor de oudere of langzamere machines of machines met beperkte hoeveelheid geheugen. De configuratie wordt volledig met de muis bestuurd en de configuratiebestanden worden verborgen voor de gewone gebruiker. Xfce is ontworpen voor productiviteit. Het laadt programma’s snel en voert ze ook snel uit maar is toch conservatief in het gebruik van systeembronnen.
UNIT 2. VEROVER JE DESKTOP
25
Xfce levert ook een ontwikkelingsplatform voor applicaties. Behalve Xfce zelf gebruiken er ook andere applicaties bibliotheek-functies van Xfce zoals Mousepad (tekst editor), xfmedia muziekspeler en een Terminal emulator. XFCE is (sedert versie 4) gebaseerd op de GTK+ 2.x toolkit. Het gebruikt Xfwm ¨ CDE maar bij elke nieuwe als window manager. Xfce lijkt wat op het commerciele versie gaat deze vergelijking minder op. Xfce is twee keer totaal herschreven tussen versies 2-3 en 3-4. Een aantal Xfce-programma’s:
• Thunar: bestandsbeheer • Orage: kalender • Xfburn: Xfburn is een frontend voor diverse brandprogramma’s als cdrecord, cdrdao, mkisofs, enz.
• Xfmedia: een gebruiksvriendelijke mediaspeler gebaseerd op de xine-engine (audio en video). website: http://www.xfce.org
Figuur 2.3: De XFCE4-desktop op xubuntu
2.1.2
Windowmanagers
˙ zijn er werkelijk tientallen: Aan windowmanagers geen gebrek onder GNU/LinuxEr Twm, windowmaker, fvwm, EvilWM, LarsWM, . . . . Sommige gebruikt men op de
UNIT 2. VEROVER JE DESKTOP
desktop/server, andere op embedded systemen.
A
Enlightenment
website: http://www.enlightenment.org Enlightenment is echt een schitterende windowmanager, maar niet zo functioneel. Een leuk speeltje dus. Het doet nogal futuristisch aan, en er zijn veel mogelijkheden om het mooier te laten lijken, of een totaal andere look te geven. In Enlightenment krijg je verschillende menu’tjes door met de verschillende muisknoppen (links, rechts, midden=scrollwheel) ergens op de achtergrond te klikken. Linksonder zie je miniatuurafbeeldingen van de verschillende bureaubladen. Bij Enlightenment kunnen bureaubladen zich ook nog uitspreiden over verschillende schermen: je kan dan van het ene naar het andere scherm gaan door met de muis tegen de zijkant van je scherm te stoten. In het hokje rechtsonder komen de vensters die hebt geminimaliseerd, die kan je dan meenemen van bureaublad naar bureaublad. Als je een goeie videokaart hebt kan je een heleboel mooie effecten aanzetten: bijvoorbeeld watergolfjes aan de onderkant van het scherm. De vensters reflecteren ook in de golfjes, een erg leuk effect. Je kan ook zorgen dat nieuwe schermpjes met een mooi effect te voorschijn komen, of wegschuiven als je van het ene deel naar het andere deel van een bureaublad gaat. Samengevat is Enlightenment dus een schitterend speeltje voor de liefhebber, maar voor het gemiddelde kantoorgebruik minder geschikt.
26
UNIT 2. VEROVER JE DESKTOP
Figuur 2.4: Enlightenment-desktop (versie E17) met enkele typische programma’s
B
Fluxbox
website: http://fluxbox.sourceforge.net Fluxbox is gewoon een heel klein programma’tje en reageert ontzettend snel. Het geeft een vergelijkbaar effect als windows 98 op een moderne computer. Het is wel jammer dat fluxbox er niet zo supermooi uitziet. Fluxbox is niet zo windowsachtig als gnome, en vooral geliefd bij computerfreaks. Op het eerste gezicht is fluxbox een beetje leeg. Als je fluxbox opstart krijg je ook niets meer te zien dan een achtergrond en een klein taakbalkje. Op die taakbalk zit een klokje, een desktopswitcher en vensterlijst. Je krijgt in fluxbox een menu’tje door met de rechtermuisknop te klikken op de achtergrond. Erg leuk aan fluxbox is dat je programma’s van bureaublad naar bureaublad kan verplaatsen door ze naar de zijkant van het scherm te slepen (desktop warping). Een ander leuk snufje zijn tabs: aan ieder venstertje zit een soort uitsteekseltje, waarmee je vensters bij elkaar kan groeperen. Best handig.
27
UNIT 2. VEROVER JE DESKTOP
Figuur 2.5: De ‘kale’ desktop van fluxbox. Toverwoord is rechtermuisknop.
2.2
De GNOME-desktop verkennen . Ubuntu maakt standaard gebruik van de GNOME-desktopomgeving. Deze zullen we als basis gebruiken om een GUI voor GNU/Linux te demonstreren. Uiteraard pikken we in op andere omgeving/toepassingen als deze meer kwaliteit aan boord hebben dan de standaard GNOME-tools.
2.2.1
Desktop
Na het inloggen komt de gebruiker standaard in de GNOME-omgeving terecht. Dit is een grafische interface die zowel de beginnende als de ervaren gebruiker heel wat mogelijkheden biedt. De gelijkenissen met het bureaublad van MS-Windows zijn op het eerste gezicht treffend. Toch zijn er een aantal fundamentele verschillen. Op deze eigenaardigheden/mogelijkheden gaan we nu dieper in. Voor we van start gaan: hou er rekening mee dat de visuele vormgeving van GNOME volledig aangepast kan worden. Het uiterlijk van het paneel, vensterbalken, icoontjes, klikgedrag, virtuele werkbladen, . . . tot de onderliggende windowmanager toe.
28
UNIT 2. VEROVER JE DESKTOP
Figuur 2.6: De standaard-desktop van GNOME in Ubuntu.
A A.1
Wat is er anders dan bij de doorsnee desktop? Geen iconen?
Netjes staat mooi. Daarom zijn alle applicaties terug te vinden in het bovensten paneel bij het menu ‘Toepassingen’. Icoontjes voor USB-toestellen (draagbare MP3-spelers, digitale camera’s, enz.) verschijnen automatisch als deze ingeplugd worden. Dit is standaard voor de Ubuntu-GNOMEdesktop. Andere distributies houden er andere gewoontes op na. Uiteraard kan je manueel een computer-, thuis- of/en prullenbakicoon op het bureaublad plaatsen. A.2
Virtuele Desktops
Een GNU/Linux-desktop omvat meerdere virtuele desktops. Standaard zijn er twee ingeschakeld. Dit aantal kan altijd groter/kleiner gemaakt worden (van 1 tot 36). Elk bureaublad is een exacte ‘kopie’ van uw werkelijke bureaublad, dus inclusief startknop, taakbalk en snelkoppelingen. Op elk virtueel bureaublad kunt u programma’s openen die dan op de andere virtuele bureaubladen niet open staan. Daarmee worden deze virtuele bureaubladen het ideale hulpmiddel om uw werkomgeving netjes opgeruimd en overzichtelijk te houden. Via de pager rechts naast de taakbalk kan je makkelijk via je muis tussen de desktops wisselen. De toetsencombinatie Ctrl + Alt + pijl links/rechts doet hetzelfde. Via menu Systeem/Voorkeuren/Screen actions kan je de virtuele schermranden inschakelen. Dan kan je door het bewegen van de muis naar de rechter-/linkerkant van het scherm doorstoten naar het volgende virtuele werkblad.
29
UNIT 2. VEROVER JE DESKTOP
Figuur 2.7: Een venster wordt van werkblad 3 naar werkblad 4 versleept. De muis is niet zichtbaar.
A.3
Vensters
Dubbelklikken op de menubalk van een venster maximaliseert deze. Je kan dit gedrag via Systeem/Voorkeuren/Vensters aanpassen. Zo kan een dubbelklik ook geconfigureerd worden als oprollen. Vensters kan je ook naar andere virtuele desktops plaatsen door op het toepassingsicoontje of de titelbalk te klikken en dan ‘naar een ander werkblad verplaatsen’ selecteren. Het gaat echter sneller als je via de mini-pager aan de rechterkant van de taakbalk de voorstellingen van de vensters van het ene naar het andere werkblad versleept.
Figuur 2.8: Snel een toepassing naar een andere desktop verplaatsen
Andere handigheidjes voor het manipuleren van de vensters zijn te ontdekken door met de rechtermuisknop op de titelbalk te klikken. Sneltoetsen :
• ALT + F4 : afsluiten • ALT + F5 : herstellen naar oorspronkelijke grootte • ALT + F9 : minimaliseren • ALT + F10 : maximaliseren
2.2.2
Pictogrammen
De icoontjes op je desktop zijn normaal niet zichtbaar. Wens je toch enkele van je favoriete toepassingen op je bureaublad? Sleep deze vanuit het menu Toepassingen naar het bureaublad.
30
UNIT 2. VEROVER JE DESKTOP
Mappen maak je snel aan door via de rechtermuisklik ‘map aanmaken’ te selecteren. Hoe je een icoon voor prullenbak, home en netwerk aanmaakt: zie hoofdstuk ?? op pag. ??.
Figuur 2.9: Een wel erg grote map op de desktop. Te bereiken door de map te selecteren met de rechtermuisknop en te kiezen voor ‘Pictogram uitrekken’. Sleep vervolgens aan de handgreepjes tot de gewenste afmetingen (tot maximum 128x128 pixels)
2.2.3
Paneel
Het paneel komt standaard met in de linkerkant de menus voor Toepassingen, Locaties en Systeem. Direct gevolgd door een icoontje voor Mozilla-Firefox en Evolution. Aan de rechterkant is er een mededelingengebied, afsluitknop, datum en tijd. Icoontjes kun je aan het paneel toevoegen door a) Icoontjes vanuit het menu Toepassingen op het paneel te slepen. b) Via de rechtermuisknop ‘Toevoegen aan paneel’ te selecteren en dan ‘Toepassingsstarter’ te selecteren. Een compleet dialoogvenster met alle toepassingen verschijnt.
31
UNIT 2. VEROVER JE DESKTOP
32
Figuur 2.10:
Andere handige ‘hebbedingetjes’ kun je toevoegen. Sta met je muis op een ‘blanco’ stukje van het paneel en selecteer via de rechtermuisknop ‘Toevoegen aan paneel’. Een dertigtal handige applets staan standaard ter beschikking.
UNIT 2. VEROVER JE DESKTOP
33
Figuur 2.11:
Je kan de applets configureren door -na plaatsing op het paneel- deze via de rechtermuisknop te seleceteren en respectievelijk op ‘voorkeuren’ of ‘eigenschappen’ te klikken. Het volledige paneel aanpassen kan je door via rechtermuisknop ‘eigenschappen’ te selecteren. Daar kan je de plaats, grootte, gedrag, achtergrondskleur, enz. ´ aanpassen. Ook via de rechtermuisknop kun je het paneel verwijderen of er e´ entje extra toevoegen.
Figuur 2.12:
2.2.4
Menu: Toepassingen, Lokaties en Systeem
• In het menu ‘Toepassingen’ staan uiteraard alle programma’s opgesomd die je ter beschikking staan. Tot voor kort waren dit enkele GNOME/GTKtoepassingen maar met de standaardisatie door freedesktop.org zijn daar ook bijv. KDE-programma’s in terug te vinden.
• ‘Locaties’ toont je niet enkel je thuismap maar ook de laatst bezochte mappen. Het herbergt ook de handige computermap. Je ziet ook de aangekoppelde devices hierin verschijnen (cd, dvd, USB-stick, diverse aangekoppelde partities, . . . ). Netwerklocaties zijn er ook te vinden en door de handige avahi-backend verloopt de verkenning van het netwerk heel vlot.
• Het systeemmenu bespreken we direct ;-)..
UNIT 2. VEROVER JE DESKTOP
2.2.5
Correct uitloggen
Correct uitloggen is een must in GNU/Linux. Dit kan je via het menu Systeem/afsluiten. Sleep de afsluitknop in het menu Systeem naar je paneel. Zo heb je ’m kant en klaar op je Desktop.
2.3
Je werkomgeving inrichten 2.3.1
Systeem/voorkeuren
In het menu Systeem/voorkeuren zijn er heel wat basisinstellingsmogelijkheden van je desktop: van een nieuwe achtergrond op je bureaublad tot het wijzigen van het standaardprogramma bij het invoegen van een dvd. Opzet is dat je zelf eens op zoek gaat in de diverse menu’s en ‘experimenteert’. De meest handige opties of verborgen geheimen sommen we op.
A
Het oog wil ook wat
Je GNOME-werkomgeving kun je heel vlot inrichten naar je eigen wensen en verlangens. Een paneeltje meer of minder ;-) op het bureaublad inrichten is snel gebeurd. A.1
Werkbladachtergrond wijzigen
Gewoon met de rechtermuis klikken op het bureaublad en dan ‘Werkbladachtergrond wijzigen’ selecteren. Vervolgens je prentje aanduiden uit diegene die reeds aanwezig zijn of een eigen afbeelding door ‘Afbeelding toevoegen’ te selecteren, zoomfactor kiezen en klaar is kees. Uiteraard kun je dit ook terugvinden in menu Systeem/Voorkeuren.
34
UNIT 2. VEROVER JE DESKTOP
Figuur 2.13: Snel een foto toevoegen, schalen of niet, enz.
: op zoek naar een gnome-achtergrond? Probeer http://art.
gnome.org A.2
Thema
Uit het menu Systeem/Voorkeuren/Thema selecteren. Je kan extra thema’s installeren uit de ubuntu-reposotories (zie hfst. ‘Distributie-vreemde’ thema’s, pictogrammen, vensterkaders, elementen kun je binnenhalen als tar.gz. Via “Thema installeren” zijn ze in een handomdraai ge¨ınstalleerd.
Figuur 2.14: Een thema kun je algemeen instellen maar ook nog eens de diverse vensters, pictogrammen, enz. apart
A.3
Oogsnoep
Wil je meer ‘oogsnoep’ en beschik je over een (ondersteunde) 3D- grafische kaart? Dan kan je Beryl en Emeraldthema’s installeren: een roterende desktopkubus, wiebelende vensters, transparante vensters, leuke effecten, ...
35
UNIT 2. VEROVER JE DESKTOP
Figuur 2.15: Met gnome-compiz-manager kun je heel snel aanpassingen aan je 3D-desktop doorvoeren
A.4
Muis
Muis-cursor beu? Via menu /systeem/Voorkeuren/Cursor Selection kun je snel een ander nemen. Installatie van diverse muisthema’s: zie hoofdstuk software installeren.
Figuur 2.16: Zeg niet zomaar ‘muis’ tegen het belangrijkste aanwijsinstrument van je PC.
A.5
Geluidjes
GNOME-geluiden zijn snel aan te passen via menu /Systeem/Voorkeuren/Geluid. Naast het veranderen van de standaardgeluiden kan je ook zorgen voor een visuele terugkoppeling.
36
UNIT 2. VEROVER JE DESKTOP
37
Figuur 2.17: Geluiden instellen.
A.6
Schermbeveiliging
Sommige benijden GNU/Linux omwille van zijn mooie screensavers. Standaard zijn er niet zo veel ge¨ınstalleerd. Je kan mooie 3D schermbeveiligingen aanvullen via de online softwarebronnen (zie hfst software). Schermvergrendeling behoort ook tot de opties.
Figuur 2.18: Mooie 3D screensavers.
A.7
Lettertype
Ben je het standaard bureaubladlettertype beu? Voor visueel gehandicapten kan het beter zijn om een vetter en groter lettertype te selecteren.
UNIT 2. VEROVER JE DESKTOP
Figuur 2.19: Ook heel handig voor visueel handicaps.
B B.1
Basisconfiguratie van je Desktop Assisterende technologie
Is heel handig voor mensen met visuele en andere handicaps. Je kan een (engelstalige) screenreader installeren alsook inzoomen op het beeld, een schermtoetsenbord, vertraagde toetsinslag, enz.
Figuur 2.20: Assisterende technologie is heel goed ontwikkeld onder GNOME
B.2
Toetsenbordinstellingen
Naast knipperfrequentie van de muis en herhalingstoetsen vind je hier ook de keuze van je toetsenbordmodel (handig voor de extra multimediatoetsen), taalkeuze (azerty, qwerty, cyrillisch, enz.), extra opties en RSI-pauze. Verder extra toegankelijkheidsopties als herhaal-, kaats- en tragetoetsen.
38
UNIT 2. VEROVER JE DESKTOP
39
Figuur 2.21: Toetsenbordinstellingen
B.3
Schermresolutie Beeldschermgrootte en -frequentie. Dit is afhankelijk van de instellingen van xorg.conf (zie later).
Figuur 2.22: Minimale configuratie van je beeldscherm. De echte kracht zit ’m -voorlopig- nog in xorg.conf.
B.4
Verwisselbare stations en media Welk programma wens je te zien verschijnen als je een scanner, fototoestel, camera, . . . aansluit.
Figuur 2.23: Minimale configuratie van je beeldscherm. De echte kracht zit ’m -voorlopig- nog in xorg.conf.
UNIT 2. VEROVER JE DESKTOP
2.3.2
40
Toepassingenmenu aanpassen
Je kan programma’s toevoegen/verwijderen aan het menu door met de rechtermuisknop op menu Toepassingen te klikken en ‘Menu’s bewerken’ selecteren. De menu-editor ‘alacarte’ wordt opgestart. Je kan ook via het menu Systeem/voorkeuren/menuindeling het programma alacarte opstarten. Je krijgt nu een simpele interface om programma’s aan- of uit te vinken.
Figuur 2.24:
A
Toepassingenmenu: theorie en praktijk
Het gnome-menu voldoet aan de XDG-standaard (volgens de standaarden van freedesktop.org). Dit houdt in dat het gebruik maakt van :
• een menu-lijst • een directory-lijst • map(pen) vol met desktop-bestanden Alle drie zijn xml-bestanden die volgens de XDG-standaard 1 worden opgesteld in ingelezen door het menu-programma. 1
http://www.freedesktop.org/wiki/Standards/menu-spec
UNIT 2. VEROVER JE DESKTOP
A.1
Menu-lijst
Ubuntu maakt standaard o.a. gebruik van de menulijsten in /etc/xdg/menus/. Menulijsten zijn xml-bestanden die beschrijven welke desktop-entries en directorylijsten moeten worden opgenomen in het menu. Ook de persoonlijke menu-aanpassingen per gebruiker worden ge¨ıntegreerd. Deze zijn niet standaard opgenomen maar verschillen per gebruiker. De persoonlijke menus kun je terugvinden in /.config/menus. A.2
Directory.list
Is een xml-bestand dat de diverse mappen in een menu benoemd. Deze is voor het systeem terug te vinden in /usr/share/desktop-directories . A.3
Desktop-bestand
Is op zijn beurt ook een xml-bestand dat voorziet in de naam, commando, icoon, mime-gegevens, plaats in het menu . . . van een item in het menu. De systeemdesktopbestanden zijn terug te vinden in /usr/share/applications/. Elke gebruiker kan ook zijn persoonlijke desktop-bestanden aanmaken. Deze komen dan terecht in $HOME/.local/share/applications/. Voorbeeld van een desktop-bestand. [ Desktop E n t r y ] Encoding=UTF−8 Name=Text E d i t o r Name [ n l ] = Tekst − e d i t o r Comment= E d i t t e x t f i l e s Comment [ n l ] = Tekstbestanden bewerken Exec= g e d i t %U Terminal= f a l s e Type= A p p l i c a t i o n StartupNotify=true MimeType= t e x t / p l a i n ; I c o n = t e x t −e d i t o r C a t e g o r i e s =GNOME;GTK; A p p l i c a t i o n ; U t i l i t y ; T e x t E d i t o r ;
A.4
Mime
Standaardtoepassingen die automatisch opstarten bij een bepaalde extensie (zoals .odt, .rtf, .mp3, . . . ) worden bepaald vanuit
• “MimeType” in desktop-bestanden in /usr/share/applications (systeem) en $HOME/.local/share/applications/
• Lijst van mime in /etc/gnome/defaults.list (systeem) en $HOME/.local/share/mime/ (gebruiker)
41
UNIT 2. VEROVER JE DESKTOP
2.3.3
Zoals jij het wil
GNOME geeft de indruk op een heel eenvoudige en rudimentaire wijze configureerbaar te zijn. Schijn bedriegt. GNOME kan heel wat diepgaander aangepast worden. De meeste van deze mogelijkheden worden echter voor de doorsneegebruiker verborgen gehouden. Wat moet je weten? GNOME maakt gebruik van de map .gconf in je /home om je persoonlijke instellingen in op te slaan. In de mappen zelf staan opnieuw mappen met daarin xml-bestanden. Het is zeker wat zoeken om de juiste instelling van hieruit te kunnen aanpassen. Anders uitgedrukt: je kan manueel met een teksteditor de instellingen aanpassen. Gelukkig bestaat er een GUI ;-). Bij het opstarten van gnome wordt de daemon gconfd-2 mee opgestart. Deze zorgt voor de onmiddellijke aanpassingen van de desktop bij het wijzigen van de xml-bestanden.
A
Met gconf-editor het diepe in.
Een handige tool om diepgaand je bureaublad aan te passen is gconf-editor. Het is niet standaard ge¨ınstalleerd maar kan via
sudo apt −g e t i n s t a l l gconf − e d i t o r
snel ge¨ınstalleerd worden.
42
UNIT 2. VEROVER JE DESKTOP
43
Figuur 2.25: Gconf-editor
Onder //desktop/gnome vind je heel wat instellingsmogelijkheden terug. De meest interessante zijn :
• /apps/metacity/general/num workspaces: kun je het aantal workspaces direct veranderen.
• /apps/nautilus/desktop: kun je icoontjes voor je /home, prullenbak, netwerk, ... zichtbaar op de desktop maken.
• /apps/nautilus/icon view: icoontjes dichter bij elkaar zetten, sorteervolgorden, enz.
• /apps/nautilus/preferences: zitten enkele leuke bij. • always use browser: de bestandsbeheerder met een zijpaneel om de mappen te zien of de default ’spatial’ weergave.
• always use location entry : Nautilus met een knoppennavigatie of met een invoerveld.
• click policy: enkel- of dubbelklikken? Een nieuwe tool vanaf GNOME 2.16 is het programma: hide and seek. Te downloaden van http://getdeb.net
UNIT 2. VEROVER JE DESKTOP
Figuur 2.26: Hide and Seek: makkelijk om de ‘verborgen’ opties te manipuleren.
44
3 Werken met bestanden: basis
Vooraleer we je de basis van bestanden bijbrengen: een eerste kijk op ‘de zwarte doos’: de console. Voor window-gebruikers doet het denken aan DOS maar dan eentje op stero¨ıden. Verder in dit hoofdstuk een diepere uitwerking van het linuxbestandssysteem.
3.1
GNU/Linux-bestandssysteem 3.1.1 Bestandsstructuur ¨ GNU/Linux heeft een hierarchische bestandsstructuur. Root is het startpunt (voorgesteld door “/”). Hieronder bevinden zich de mappen. Handig om te weten:
• Een verschil met DOS/Windows is dat Windows gebruik maakt van de ”\” (backslash) terwijl het bij GNU/Linux een ”/” (slash) voorstelt.
• Onder GNU/Linux kun je tot 255 karaktertekens (ext2) invoeren voor een bestandsnaam en dit met meerdere punten.
• GNU/Linux is hoofdlettergevoelig. Hoofdletters en kleine letters worden in bestandsnamen als verschillende tekens gezien. Daarom zijn bestand.txt en BESTAND.txt twee verschillende bestanden. ls is een commando, LS is een fout.
• Het is heel lastig werken met spaties in console (niet aan te bevelen maar wel mogelijk). Een bestandsnaam met spaties moet je tussen dubbele aanhalingstekens plaatsen. Bijvoorbeeld: mkdir “Mijn Documenten”. Bovendien 45
UNIT 3. WERKEN MET BESTANDEN: BASIS
is het beter een aantal tekens niet te gebruiken: een aantal daarvan zijn !* $ & #.
• Extensies zijn niet verplicht maar wel handig. Via console firefox opstarten is dus gewoon “firefox” en niet “firefox.exe”. Uitvoerbare bestanden worden aan het einde van de bestandsnaam door een asterisk ‘*’ gemarkeerd wanneer je het commando ls -F geeft. Backupbestanden eindigen op een tilde ‘∼’. Een bestand waarvan de naam begint met een punt wordt als verborgen aangemerkt. Als je distributie de LSB-standaard volgt dan beschik je zeker over volgende mappen waarvan de inhoud reeds bepaald is.
• “/bin”: commando’s die je kunt intypen in de shell. • “/dev”: bestanden die de hardware in het systeem representeren. • “/etc”: configuratiebestanden van het systeem. • “/home”: de mappen van de gebruikers in het systeem. • “/lib”: additionele bibliotheken. • “/opt”: optionele grote programma’s die voor iedereen toegankelijk zijn (meestal in een eigen map).
• “/sbin”: commando’s die alleen de root kan intypen in de shell. • “/etc/init.d”: scripts voor het opstarten. • “/tmp”: tijdelijke bestanden. • “/usr/bin”: algemeen toegankelijke programma’s. • “/usr/doc”: documentatie. • “/usr/man”: alle manual pagina’s. • “/usr/src”: brondcode van applicaties. • “/var”: log-, spool- en tijdelijke bestanden. Wat opvalt is dat de mapnamen heel kort zijn vergeleken bij Windows. Linux ondersteunt wel lange bestandsnamen, maar korte directories zijn veel makkelijker. Vooral omdat er nog steeds veel in de console wordt gewerkt en snel naar mappen gaan is dan wel handig: ‘cd /opt/kde/bin’ is toch makkelijker dan eerst op zoek te gaan naar de juiste schijf en dan pas op zoek naar de juiste map. Bovendien kent de console onder linux automatische bestandsaanvulling (via de TAB-toets) wat het allemaal nog makkelijker maakt. Linux kent geen harde schijven als een D: of E:. De harde schijven zijn ‘vastgeschroefd’ (mounten) aan het systeem en vinden hun plaats in de mappenstructuur.
46
UNIT 3. WERKEN MET BESTANDEN: BASIS
A
Speciale mappen
Binnen GNU/Linux bestaan er twee speciale mappen: /dev en /proc. De /dev map dient om rechtstreeks randapparatuur aan te spreken. ´ van je fyDe /proc map is een “pseudo-filesystem”, het bestaat niet echt op e´ en sieke devices. /proc kan worden gebruikt om configuratiegegevens uit te halen (hoeveelheidvrij geheugen, hardwareinfo, status van het systeem,. . . ), maar ook om “at runtime” systeemparameters te wijzigen (routing aan/uitzetten, gebruik van de hardware aanpassen,. . . ). Het proc bestandssysteem bevat informatie over het systeem en draaiende processen. Een aantal “bestanden” in /proc zijn voor mensen redelijk te begrijpen (probeer cat /proc/meminfo of cat /proc/cpuinfo) terwijl een aantal anderen uit een vreemde verzameling cijfers bestaat. Vaak maken systeemutility’s hier gebruik van om informatie bijeen te vergaren en het je op een wat begrijpelijker manier te presenteren.
3.2
Devices De Linux kernel heeft tot taak met alle apparaten (devices) te praten, zoals harde schijven, floppy drives, cdrom drives, de printer, de muis, de geluidskaart en noem maar op. Om op een eenvoudige manier te kunnen aangeven over welk device het gaat, hebben alle devices een apart nummer gekregen. Of eigenlijk twee nummers, een soort-nummer (major device number) en een volgnummer (minor device number). Maar mensen hebben veel liever namen dan nummers, dus er is een hele rij bestanden voorhanden met een ‘normale’ naam, die ‘doorverwijzen’ naar het juiste device number. Die bestanden heten de device files en ze staan allemaal bij elkaar in de /dev map. Een paar voorbeelden: ´ van de manieren om naar de geluidskaart te refereren. • /dev/audio: e´ en
• /dev/lp0 t/m lp3: de parallelle printerpoorten (line printers); • /dev/fd0 en fd1: de floppy drives; • /dev/hda1 t/m hdh20: de IDE harddisks, de echte harde schijven worden aangeduid met de letters a t/m h, de partities op die schijven met de getallen 1 t/m 20. Er kan dus verwezen worden naar de derde partitie op de tweede harde schijf met /dev/hdb3;
• /dev/sda1 t/m sdh16: de SCSI disks, aanduidingen hetzelfde als de IDE harddisks; /dev/scd0 t/m scd7: de SCSI CDROM drives. Voor IDE schijven geldt de volgende ‘nummering’:
• /dev/hda - eerste schijf (master) op de eerste (primaire) controller; • /dev/hdb - tweede schijf (slave) op de eerste (primaire) controller;
47
UNIT 3. WERKEN MET BESTANDEN: BASIS
• /dev/hdc - eerste schijf (master) op de tweede (secundaire) controller; • /dev/hdd - tweede schijf (slave) op de tweede (secundaire) controller, enz. ´ of meer hiervan kunnen eventueel IDE/ATAPI CDROM drives voorstellen. Een Een vaak voorkomende situatie is een harde schijf /dev/hda en een CDROM /dev/hdc. (In het ‘dagelijks spraakgebruik’ wordt /dev vaak weggelaten en heeft men het over “hda”). Elk fysiek apparaat dat aan een Linux systeem hangt (disks, terminals en printers) wordt als een map in het bestandssysteem weergegeven. Meestal staan ze in de map /dev. Neemt u daar maar eens een kijkje. De inhoud van de verschillende apparaten worden gewoonlijk onder de map /mnt getoond.
gebruiker@naam−pc : ˜ $ mount / dev / cdrom / mnt / cdrom
Met dit commando koppelt u een cdrom aan uw Linux systeem, waarna u de inhoud van de cdrom kunt lezen in de map /mnt/cdrom. Dit is trouwens een nogal belangrijk verschil in werking vergeleken bij een operating system als bijvoorbeeld DOS. Onder DOS worden de randapparaten bij het opstarten automatisch aan het systeem gekoppeld. Waarom moet je de devices aan het systeem koppelen? Omdat je er restricties voor gebruikers op kan plaatsen, omdat je in realtime een fysieke apparaat fysiek kan verwijderen van het systeem en weer aankoppelen.
3.3
The Black Box De shell is de primaire interactievorm tussen gebruiker en hardware. Via de shell worden de commando’s en input -meestal via het toetsenbord- doorgegeven aan het systeem. De meest populaire shell is bash (wat staat voor “Bourne Again Shell”). Het is een vrije versie van de Bourne Shell (unix). Het voldoet grotendeels aan de POSIXstandaard 1 voor Unix-shells. Naast bash bestaan er ook nog diverse andere shells die meer of minder features hebben. Je komt in contact met de shell via een console of terminal-apparaat. Die kun je opstarten via Toepassingen/hulpmiddelen of ook door in te loggen op de virtuele consoles (vanuit een grafische omgeving is dit Ctrl + Alt + Functietoets F1 tot F6). Open je binnen GNOME (of een andere windowmanager) een console dan kun je ook via de commandolijn programma’s opstarten. Ben je nog niet ingelogd (virtuele console) dan zie je volgende output op het scherm verschijnen
ubuntu 7.04 naam−van−mijn −pc t t y X
1
http://en.wikipedia.org/wiki/POSIX
48
UNIT 3. WERKEN MET BESTANDEN: BASIS
naam−van−mijn −pc l o g i n :
Geef je login op, druk op enter, voer je paswoord in. Nu ben je ingelogd en zie je volgende boodschap verschijnen:
gebruiker@naam−pc : ˜ $
Zoals je ziet is je gebruikersnaam vermeld die zich aan (@) naam-PC bevindt. Waarom vermelden? Als je veel wisselt tussen gebruikers is het altijd interessant om te weten welke user je nu bent en op welke server/pc je aan het werken bent (je kan bijv. ook remote inloggen op een pc). Je wordt ingelogd in je persoonlijke /home-map (zie later). Dit kan je merken aan het tilde-teken (˜). Wil je het nog even checken? Voer dan het commando “pwd” uit. Dit toont je de huidige map. Het dollarteken duidt erop dat je als gewone gebruiker bent ingelogd (root is een # -teken). Kwestie van overeenkomst: bij het vermelden van de opdrachtprompt zullen we melding maken van de volledige lijn die verschijnt (dus gebruiker@naam-pc:˜$ )
3.4
Langzame start Open een console binnen in GNOME en typ:
gebruiker@naam−pc : ˜ $ f i r e f o x
Daarna gewoon enteren. De webbrowser firefox opent zich. Uiteraard kan dit enkel als je ingelogd bent in een grafische omgeving als GNOME (anders krijg je een foutmelding dat het display niet geopend kan worden).
gebruiker@naam−pc : ˜ $ f i r e f o x h t t p : / / www. g o d s d i e n s t i g . be
De webbrowser firefox opent zich en toont de website van www.godsdienstig.be De console is een heel snelle manier om een programma op te starten. Zo kun je ook andere programma’s opstarten via console: gimp, gedit, evolution, oowriter, ... Maar het kan leuker worden ;-) De Bash-shell kan wat werk uit handen voor je nemen. Typ bijvoorbeeld eens de letter oo in en druk dan op tab.
49
UNIT 3. WERKEN MET BESTANDEN: BASIS
gebruiker@naam−pc : ˜ $ oo oobase ooffice oocalc oofromtemplate oodraw ooimpress
50
oomath ooo−wrapper ooweb
oowriter
Via de tab-toets kan je bash automatisch laten raden wat er moet worden aangevuld. Hij vult niet enkel aan met uitvoerbare programma’s maar ook met mappen die aan de criteria zouden voldoen (te herkennen aan de / op het einde van de naam). Een leuke eigenschap is dat je kan scrollen doorheen je reeds ingevoerde commando’s. Zo kun je met de op- en neerpijltjes de vorige en volgende commando’s oproepen. Bash houdt ook je geschiedenis bij. Zo kun je via de toetsencombinatie Ctrl-R gaan zoeken in je commando-geschiedenis. Nogmaals drukken op Ctrl-R levert de volgende hit op. Merk op dat men begint te zoeken van jongste naar oudste input. expert: bash houdt een logbestand bij van al je input in het bestand .bash history in je ˜map. Via Ctrl-R doorzoekt het dit bestand.
3.5
Handige toetsen bij het gebruik van de shell Andere nuttige toestenscombinaties die te gebruiken zijn in je Bash-shell. ctrl-c
breek huidig proces af
ctrl-d
voer EOF-karakter (end of file) in, sluit een shell af
ctrl-l
refresh het scherm
ctrl-a
naar begin van de regel
ctrl-b
karakter naar links (zelfde als pijltje naar links)
ctrl-d
delete het karakter onder de cursor (zelfde als delete)
ctrl-e
naar einde van de regel
ctrl-f
karakter naar rechts (zelfde als pijltje naar rechts)
ctrl-h
delete het karakter voor de cursor (zelfde als backspace)
ctrl-k
delete alles van de cursor tot het einde van de regel
ctrl-t
verwissel het karakter onder de cursor met die ervoor
ctrl-u
delete alles van de cursor tot het begin van de regel
ctrl-w
delete het vorige woord
ctrl-s
bevries de output
UNIT 3. WERKEN MET BESTANDEN: BASIS
ctrl-q
laat de output weer doorgaan
ctrl-v
karakter dat je hierna invoert wordt ingevoerd als escape code
ctrl-y
voeg in wat je het laatste verwijderd hebt
Als je per ongeluk op ctrl-s druk, lijkt het alsof alles vast zit in de terminal. Je kunt dan simpelweg op ctrl-q drukken om alles weer door te laten gaan.
3.6
Enkele basiscommando’s Hierna volgen wat basiscommando’s m.b.t. bestandsnavigatie en -beheer.
3.6.1
Gouden tip voor MANnen die vaak vergeten . . .
Standaard komt een GNU/Linux-distro met heel wat informatie. Alle info over de commando’s is terug te vinden in manuals. Deze kan je vanuit de console oproepen met
gebruiker@naam−pc : ˜ $ man naam−van−het −commando
Je verlaat man door op de toets “q” (quit) te drukken.
3.6.2 ls “ls” toont je de ‘lijst’ van aanwezige bestanden in de huidige map. Sommige terminals kennen een extra ’kleurtje’ om aan te tonen dat het gaat over mappen, tekstbestanden, muziekbestanden, enz. “ls” op zich toont niet zoveel informatie. Met enkele opties kan je het zich al heel wat uitbreiden. Om te zien welke opties je ter beschikking hebt, kun je - -help achter het commando zetten (dit geldt trouwens voor de meeste commando’s). Wil je heel wat meer info over dit commando? Hoogstwaarschijnlijk is het opgenomen in de manualpages. Het commando “man ls” toont je de manual. De - -help toont je naast het gebruik ook een tabel met de verschillende opties en ´ met een liggend streepje ervoor, de rechter uitleg. Daarin twee types opties: e´ en kolom bevat woorden met twee liggende streepjes ervoor. Beide opties doen ´ liggend streepje voldoen aan de POSIX-standaard. hetzelfde. De opties met e´ en De lange versie zijn de toevoegingen van de GNU. Veel gebruikte opties voor ls zijn:
51
UNIT 3. WERKEN MET BESTANDEN: BASIS
• -a : voor het bekijken van verborgen bestanden en mappen. • -l : voor meer informatie Je krijgt achtereenvolgens de permissies, het aantal harde links, de gebruiker, de groep, bestandsgrootte in bytes, aanmaakdatum en bestandsnaam te zien.
• -al : uiteraard kun je beide combineren • -h : in combinatie met -l : toont je de bestandsgrootte in ‘human-readable’ bewoording.
• -R : krijg je een compleet overzicht van alle bestanden in de huidige en alle submappen.
A
Wildcards?
´ map “dieper” getoond. Het Met ls * worden alle bestanden in de huidige en e´ en *-teken geeft een reeks tekens met willekeurige lengte aan. Naast * bestaat er ´ enkel karakter. De tekens * en ? worden wildcards ook ?, wat staat voor e´ en genoemd. Met ls a* worden alle bestanden getoond waarvan de naam begint met een a. Met haakjes kun je ook een combinatie opnemen:
gebruiker@naam−pc : ˜ $ l s −a [ ab ] ∗
Dit toont je alle bestanden en mappen die beginnen met de letters a of b en ab. Je kan ook een bereik ingeven: zij het in letters of in nummers:
gebruiker@naam−pc : ˜ $ l s −a [ a−p ] ∗
Dit toont je alle bestanden en mappen die beginnen met de letters a, b, c, . . . tot en met p. Linux is, net als alle andere Unices, hoofdlettergevoelig. Hierdoor is file een ander bestand dan File, terwijl dat onder Windows hetzelfde bestand zou zijn.
3.6.3 cd “ cd” of change directory zorgt voor het veranderen van map cd /home/gebruiker/Desktop brengt je naar de Desktop van de gebruiker. Ben je echter reeds in /home/gebruiker dan kan een simpele “cd Desktop” ook de truc doen.
52
UNIT 3. WERKEN MET BESTANDEN: BASIS
Andere handige weetjes
• cd .. (en dus niet cd..) brengt je naar de bovenliggende map terug. (.. staat ´ enkele punt is de huidige map) voor de bovenliggende map, e´ en
• cd / ga naar de / van het systeem • cd /etc ga naar de map /etc • cd ∼. brengt je snel naar je home-map. Ben je je weg eventjes kwijt en weet je niet meer in welke map je bent? “pwd” geeft je het antwoord.
3.6.4
cp en rm
¨ “cp” is het commando om te kopieren cp [opties] BRON BESTEMMING
gebruiker@naam−pc : ˜ $ cp t e k s t . t x t / home / g e b r u i k e r / Desktop
Kopieert het bestand tekst.txt naar home/gebruiker/Desktop. Je kan ook meerdere bronnen opgeven:
gebruiker@naam−pc : ˜ $ cp t e k s t . t x t t e k s t 2 . t x t t e k s t 3 . t x t / home / g e b r u i k e r / Desktop
Of waarom niet een volledige map met inhoud (inclusief submappen). Hiervoor schakel je de optie -R in.
gebruiker@naam−pc : ˜ $ cp map−met−bestanden −R home / g e b r u i k e r / Desktop
Merk op: het commando cp overschrijft zonder waarschuwing gelijknamige bestanden Zijn ‘broertje’ is rm. Remove of verwijderen.
gebruiker@naam−pc : ˜ $ rm t e k s t . t x t
Met de -r optie verwijder je volledige mappen met al hun inhoud.
53
UNIT 3. WERKEN MET BESTANDEN: BASIS
3.6.5
mv
Met mv (move) kun je hele mappen verplaatsen naar waar je maar wil. gebruiker@naam−pc : ˜ $ mv t e k s t . t x t / home / g e b r u i k e r /
Verplaatst het bestand tekst.txt naar de home-map van gebruiker. mv wordt ook gebruikt om bestanden te herbenoemen. gebruiker@naam−pc : ˜ $ mv t e k s t . t x t inhoud . t x t
Verandert de naam van het bestand tekst.txt naar inhoud.txt. In combinatie gebruiker@naam−pc : ˜ $ mv t e k s t . t x t ˜ / inhoud . t x t
Wordt het bestand tekst.txt verplaatst naar de home-map van gebruiker en wordt het hernoemd tot inhoud.txt. Met de optie -i wordt er eerst om toestemming gevraagd indien het bestand reeds bestaat.
3.6.6 mkdir en rmdir “mkdir” gebruik je om een nieuwe map aan te maken. gebruiker@naam−pc : ˜ $ mkdir t e k s t
Maak in de huidig map een nieuwe map aan genaamd tekst. Je kan het ook combineren en in 1 keer meerdere mappen aanmaken. gebruiker@naam−pc : ˜ $ mkdir t e k s t 1 / home / g e b r u i k e r / Desktop / tekst2
mkdir heeft een foutmelding als er een bestaande map zou worden nieuw aangemaakt. rmdir is het verwijderen van mappen indien ze leeg zijn. Zijn ze niet leeg dan wordt de map niet verwijderd. Voor een volledige verwijdering van map met inhoud kan “rm -r” zonder vragen de klus snel klaren.
54
UNIT 3. WERKEN MET BESTANDEN: BASIS
3.7
Bestandseigenaarschap Ieder bestand heeft twee eigenaren — een gebruiker en een groep. Het voorbeeld hiervoor is wat verwarrend, aangezien er zowel een groep met de naam root als ook een gebruiker root is. Groepen zijn gewoon verzamelingen gebruikers aan wie collectief permissie is verleend om een gedeelte van het systeem te benaderen. Een goed voorbeeld is een groep spellen. Je zou bijvoorbeeld je systeem zo kunnen hebben ingesteld dat alleen de mensen in een groep games permissie hebben om spellen te kunnen spelen. Daarvoor moeten de uitvoerbare bestanden van de spelletjes uiteraard ook in de groep ‘games’ zitten.
3.8
GNU/Linuxbestandspermissies 3.8.1
Inleiding tot bestandspermissies
Linux is een multi-user besturingssysteem waarbij gebruikers kunnen opgeven wie er toegang (permissie) heeft tot een bestand. Elke gebruiker heeft een uniek ´ of gebruikersnummer dat hem identificeert. Gebruikers horen bovendien tot e´ en meer gebruikersgroepen. Hiermee is het mogelijk om bestanden voor een groep gebruikers toegankelijk te maken. Deze eigenschap van Unix-varianten zoals Linux, maakt het delen van bestanden binnen een groep eenvoudig. Om te zien welk gebruikersnummer u heeft en tot welke groep(en) u behoort, typt u het commando ’id’: gebruiker@naam−pc : ˜ $ i d u u i d =1000( koen ) g i d =1000( koen ) groepen =4(adm) , 2 0 ( d i a l o u t ) , 2 1 ( f a x ) , 2 4 ( cdrom ) , 2 5 ( f l o p p y ) , 2 6 ( tape ) , 2 9 ( audio ) , 3 0 ( d i p ) , 4 4 ( v i d e o ) , 4 6 ( plugdev ) , 1 0 0 ( users ) , 1 0 6 ( lpadmin ) , 1 1 0 ( scanner ) , 1 1 3 ( nvram ) , 1 1 4 ( admin ) ,1000( koen ) ,1001( b u r n i n g ) ,1003( l i n u x )
Permissies voor lezen (r van read), schrijven (w van write) en uitvoeren (x van execute) kunnen per bestand gezet worden voor de eigenaar, groep en anderen. U kunt het commando ‘ls -l’ gebruiken om de permissie-indicatoren te zien.
gebruiker@naam−pc : ˜ $ l s − l bestand . t x t −rw−r −−r −− 1 koen koen 0 2007−02−27 15:27 bestand . t x t
De eigenaar van bestand.txt is de gebruiker koen en het bestand is onder beheer van de groep koen. De permissie-indicatoren -rw-r–r– laten de bestandspermissies zien. Dit bestand is leesbaar (r), schrijfbaar (w) en maar niet uitvoerbaar (x) voor de eigenaar. Voor de gebruikersgroep en alle andere gebruikers is het bestand leesbaar (r).
55
UNIT 3. WERKEN MET BESTANDEN: BASIS
56
• Read betekent dat je het bestand kan inkijken • Write betekent dan je het kan aanpassen en/of deleten • Execute dat je het programma kan uitvoeren Permissies betekenen iets anders voor mappen:
• Read betekent dat je de inhoud van de map kan bekijken • Write betekent dat je bestanden kan toevoegen of verwijderen • Execute betekent dat je informatie kan opvragen over de bestanden in de map
Het eerste karakter geeft het type van bestand aan:
• - : Gewoon bestand • d : Directory • c : Character device file • b : Block device file • s : Unix domain socet • p : Named pipe • l : Symbolic link Van deze lijst zullen de types “-”, “d” en “l” het meest voorkomen in het dagelijks gebruik op uw systeem. Na het type bestand komen 3 blokken van 3 karakters die de permissies op het betreffende bestand of map aangeven: user, group, other. De permissies zijn opgeslagen in een bitvector met drie bits voor de eigenaar, groep en anderen. De r-bit komt overeen met het decimale cijfer 4 (100); het w-bit met 2(010) en het x-bit met 1 (001). Je kan ze ook optellen zo kom je voor een bestand dat mag gelezen worden veranderd aan 4 + 2 = 6 (of 110).
user
group
other
read
write
execute
read
write
execute
read
write
execute
400
200
100
40
20
10
4
2
1
Met het commando ‘chmod’ kunnen de bestandspermissies veranderd worden. Uit veiligheidsoverwegingen kunnen alleen de root-gebruiker en de eigenaar van het bestand de permissies wijzigen. Het commando kan zowel met een decimale als met een symbolische weergave werken om de gewenste permissie te krijgen. De symbolische weergave is [ugoa][+-][rwx]. Een argument bestaat dus uit een
UNIT 3. WERKEN MET BESTANDEN: BASIS
57
van de letters u (van user, eigenaar), g (groep), o (van others, anderen) of a (alle, zowel u als g en o) gevolgd door een + (toevoegen) of - (verwijderen) en daarna de symbolische weergave voor de permissie r (lezen), w (schrijven) of x (uitvoeren). Om het bestand ”bestand.txt” schrijfbaar te maken voor alle gebruikers typt u:
gebruiker@naam−pc : ˜ $ chmod a+w
bestand . t x t
gebruiker@naam−pc : ˜ $ chmod 666
bestand . t x t
of
Het commando ‘chmod 644 bestand.txt’ zou de permissie weer herstellen tot de “normale” situatie: lees- en schrijfbaar voor de eigenaar en alleen leesbaar voor alle andere gebruikers. Het gaan naar een andere map (met het commando ‘cd’) is hetzelfde als het uitvoeren van de map. De “normale” permissie voor een map is dan ook 755 en niet 644. Het commando ‘chown’ kan enkel door root gebruikt worden.
3.8.2
Attributen
Naast de standaard rechten, is er nog 1 bit die gebruikt kan worden om bijkomende aanpassingen te doen: setuid & setgid De setuid en setgid worden voorgesteld door 4000 en 2000 respectievelijk. Deze bits laten programma’s toe om bestanden te openen en processen te benaderen die anders niet toegankelijk zouden zijn. Ze krijgen standaard de gid of uid die ingesteld is voor dat bestand.(bvb root rechten voor het passwd commando) Wanneer de gid voor een map is ingesteld, krijgen alle nieuw aangemaakte bestanden of directories de groep van de bovenliggende map. De guid bit weergegeven met een ”s” (of een S indien het bestand niet executable is) of de plek van de groeps execute bit. De suid bit weergegeven door een ”s” (of een ”S” indien het bestand niet executable is door de eigenaar) op de plek van de executable bit van de eigenaar.
A
Sticky Bit
Deze bit wordt octaal voorgesteld door 1000. Deze bit zorgt ervoor dat enkel de eigenaar van een bestand, dat betreffende bestand kan verwijderen. De sticky bit wordt getoond door een “t” (of “T” als het bestand niet executable is) op de plek van de others execute bit.
UNIT 3. WERKEN MET BESTANDEN: BASIS
58
4 Systeembeheer: software
Er zijn -ruw genomen- drie manieren om software te installeren op GNU/Linux. 1. gebruik maken van de software die geleverd wordt door je distributie 2. het compileren van broncode tot volledig werkende programma’s 3. gebruik maken van de software die geleverd wordt door een andere distributie of bedrijf. De nummering vertegenwoordigt ook een appreciatie van te verkiezen bron. Het is sterk aan te raden om de software te gebruiken die je distributie levert en dit binnen de ge¨ınstalleerde versie. De meeste software is namelijk ook gebonden aan gedeelde bibliotheken die per nieuwe release mee geupdate worden. ¨
4.1
Software van Ubuntu in een deb-je 4.1.1 Software in deb-formaat Ubuntu (en GNU/Linux in het algemeen) kent een eigen manier om software te installeren. Vergeet vooral hoe je software moet installeren op andere besturingssystemen. Ubuntu kent letterlijk duizenden softwareprogramma’s en -bibliotheken. Alle software wordt aangeleverd in een specifiek bestandsformaat: het deb-formaat. Meestal kom je er niet mee in aanraking als je gebruik maakt van de standaard installatieprogramma’s. 1 1
Ubuntu heeft het software-installatiemechanisme overge¨erfd van Debian. Deze komt 59
UNIT 4. SYSTEEMBEHEER: SOFTWARE
Deb-pakketten kun je vanop verschillende plaatsen verkrijgen en van hieruit installeren:
• ben je aangesloten op het internet dan kun je ze automatisch binnenhalen van speciale http- en ftp-servers. Dit is standaard reeds ingesteld en je hoeft verder enkel maar de installatiesoftware te gebruiken om er gebruik van te kunnen maken.
• via cd-rom en dvd • als lokaal bestand Het is sterk aan te raden om de software te gebruiken die je distributie levert en dit binnen de ge¨ınstalleerde versie.
4.2
Software installeren en verwijderen 4.2.1
Software installeren met synaptic
Synaptic is een grafisch programma voor het installeren van ubuntu-pakketten. Je kan het opstarten via menu /systeem/beheer/synaptic. Je zal het root-paswoord moeten opgeven. (of van een gebruiker die lid is van sudoers) met een uiterst krachtige software-installatie tool: het apt-systeem. (Advanced Packaging Tool). Het .deb formaat dat hierbij gehanteerd wordt, is specifiek voor Debian (en Ubuntu). Een deb-pakket is een tar-gezipt bestand. Neem je een kijkje in een deb-pakket dan zie je twee tar-gezipte bestanden: control.tar.gz met alle instructies, beschrijvingen, aanvullende scripts, enz. om te installeren. Het pakket data.tar.gz bevat diverse mappen met binaire bestanden, configuratie-bestanden, desktop-icoontjes, enz. Het installatieprogramma pakt dit deb-pakket uit, leest de instructies, voert ze uit, pakt de gecomprimeerde data-mappen uit en ‘gooit’ ze op je harde schijf. Er bestaat geen programma ‘apt’ maar wel diverse hulpprogramma’s om het installatieproc´ed´e te be¨ınvloeden. Ze bevatten meestal allemaal de letter APT. Zo heb je apt-get, apt-cache, enz. Deze zijn op hun beurt weer de onderliggende programma’s voor grafische applicaties als synaptic (Gnome/GTK) en adept (KDE).
60
UNIT 4. SYSTEEMBEHEER: SOFTWARE
Figuur 4.1: De grafische interface van synaptic
A
Zoeken, aanvinken, toepassen
Software installeren is heel gemakkelijk. 1. Via de zoekknop kun je termen/titels opgeven om te zoeken. De meesten zullen genoeg hebben aan zoeken op naam of naam en beschrijving. 2. Dubbelklik op het gewenste pakket. 3. Klik op de ‘uitvoeren’-knop De afhankelijkheden van het pakket worden nagegaan en automatisch mee ge¨ınstalleerd. Is het een grafisch pakket dan vind je het terug in het toepassingenmenu.
B
Synaptic configureren
In vogelvlucht:
• Via synaptic kan je ook makkelijk je lijsten updaten via de herladen-knop. • Het systeem bijwerken is ook zo gebeurd met de systeem-bijwerken-knop. • Een cd-rom/dvd als bron toevoegen, kies in het menu Bewerken voor cdrom toevoegen.
• Andere fine-tuning gebeurt via het menu Instellingen/voorkeuren.
61
UNIT 4. SYSTEEMBEHEER: SOFTWARE
4.2.2
Software installeren met de console
Synaptic is een grafische schil die een beroep doet op niet-grafische programma’s. Zo kun je alle functies ook via CLI oproepen.
• sudo apt-cache show naam-pakket : pakket zoeken • sudo apt-get install naam-pakket : installeren • sudo apt-get remove naam-pakket : verwijderen • sudo apt-get update : update van de lijsten • sudo apt-get upgrade : doorvoeren van de updates en de pakketten opwaarderen
• sudo apt-get dist-upgrade : volledige update • sudo apt-get clean : verwijder gedownloade pakketten van je harde schijf De apt-programma’s zijn gebaseerd op dpkg. Dit is de standaard Debian Packager. Leuke opties:
• sudo dpkg -l naam : geeft een lijst van mogelijk installeerbare pakketten • sudo dpkg -i naam-pakket.deb : installatie van pakketten • sudo dpkg -r naam-pakket : verwijderen van pakketten uitgezonderd de configuratiebestanden
• sudo dpkg –purge naam-pakket : volledig verwijderen van pakket inclusief configuratiebestanden
• sudo dpkg -s naam-pakket : krijg je naast de status van een pakket ook heel wat extra info (afhankelijkheden, maintainer, enz. )
• sudo dpkg -L naam-pakket : geeft een volledige lijst weer van alle bestanden die vanuit het pakket ge¨ınstalleerd zijn op je harde schijf Kijk eens in de manual van dpkg om een volledige lijst met mogelijk opties te zien.
4.2.3
Softwarebronnen en Ubuntu-componenten
De Ubuntu software repositories bevatten duizenden software pakketten onderverdeeld in 4 “componenten”, op basis van de support die Ubuntu levert en of ze voldoen aan onze “Free Software Philosophy”. De componenten heten “main”, “restricted”, “universe” en “multiverse”. Je kan ze aanvinken vanuit synaptic. Kies in het menu instellingen/softwarebronnen. In het tabblad Ubuntu Software kun je je keuze aanvinken.
62
UNIT 4. SYSTEEMBEHEER: SOFTWARE
Figuur 4.2: Snel je softwarebronnen aanpassen kan vanuit synaptic
A
Main
De main distributie componenten bevatten vrije software, deze kunnen vrij geredistributeerd worden, ze krijgen 100% support van het Ubuntu team. Hierbij zit de meest populaire en betrouwbare open source programma’s die je kan vinden, Veel van deze software wordt ge¨ınstalleerd wanneer je Ubuntu installeert. Van deze software krijg je veiligheids updates en technische support.
B
Restricted
De restricted component is gereserveerd voor software die vrij vaak gebruikt wordt, en die ondersteund wordt door het Ubuntu team ook als is het niet te vinden onder een compleet vrije licentie. Weet dat niet de volledige support kan verzekerd worden door ubuntu. Ubuntu kan enkel de problemen melden aan de eigenlijke auteurs.
C
Universe
In universe vind je zowat alle open source software, en software beschikbaar on¨ der een varieteit van vrije tot minder open licenties. Deze laat zich vlot installeren, werkt goed samen met de software uit main maar zonder de garantie op veiligheidsupdates en support. Universe bevat duizenden softwarepaketten waardoor gebruikers de diversiteit en flexibiliteit geleverd door de open source wereld krijgen op een stabiele Ubuntu kern.
D
Multiverse
De “multiverse” component bevat software die niet vrij is, dit wil zeggen dat de licentie voorwaarden niet overeenkomen met de Ubuntu “main” Component Licentie Politiek. Het is aan de gebruiker om na te kijken of je het recht hebt op deze software in de licentie voorwaarden van de copyright-houder. Deze software wordt niet gesteund en kan ook niet hersteld of geupdate worden. Gebruik enkel ¨
63
UNIT 4. SYSTEEMBEHEER: SOFTWARE
op eigen risico.
E
Backports
Daarbuiten bestaan er nog Backports: software van deze repositorie is nog niet zo uitgebreid getest als de software die in main zit maar het bevat nieuwere versies van sommige programma’s die nuttige mogelijkheden zouden kunnen bevatten.
F
Broncode in Ubuntu
Standaard zijn de Universe, Multiverse en Backports broncode niet ingeschakeld.
4.2.4
Repository’s toevoegen/verwijderen
Waar moet ubuntu-linux zijn pakketten ophalen? Dit staat beschreven in het bestand /etc/apt/sources.list.
A
Anatomie van een pakketbronlijn
In /etc/apt/sources.list vind je diverse lijnen met volgende syntax: deb h t t p : / / a r c h i v e . ubuntu . com / ubuntu / f e i s t y main u n i v e r s e
De regel is als volgt opgebouwd
• De regel begint altijd met deb of met deb-src (wat staat voor bronpakketten om te compileren)
• Het tweede gedeelte van de regel bestand uit een URL, in dit geval http: //archive.ubuntu.com/ubuntu/ . Merk op: de slash op het einde. Deze lokatiebepaling kan uiteraard ook verwijzen naar de harde schijf (via file), een beveiligde verbinding (ssh) of een cdrom of dvd (cdrom). Gebruik in het laatste geval apt-cdrom om deze toe te voegen aan de sources.list. Op de lokatie staat een indexbestand (genaamd Packages.gz). Via de versie (zie volgende) wordt men doorverwezen naar de correcte Packages.gz
• Daarna volgt de versie van Ubuntu, in dit geval feisty (niet altijd aanwezig). Weet ook dat er ‘speciale’ varianten bestaan van je versie. Zo zijn de versieupdates en versie-security aangeraden om toe te voegen.
• Als laatste staat er welke delen van de repository worden gebruikt, in dit geval main en universe. Er kunnen nog meerdere componenten vermeld staan.
64
UNIT 4. SYSTEEMBEHEER: SOFTWARE
Je kan hier dus zelf pakketbronnen aan toevoegen. Wil je er tijdelijk eentje buiten werking stellen dan kan je de regel uit‘hekken’ (een hekje vooraan toevoegen). Via de ‘source-o-matic’ van de nederlandse ubuntuvereniging (http://www.ubuntunl.org/source-o-matic/) kun je makkelijk je keuze aanvinken. Vul alle pulldown menu’s in, en klik vervolgens op ‘Send’. Activeer de bronnen die jij zelf wilt door de gewenste bronnen aan te vinken. Interessante bronnen zijn:
• Ubuntu Backports (Nieuwere software pakketten dus ook meer updates) • Medibuntu multimedia packages (multimedia en codec) • Canonical Commercial packages (Opera, panda beveiliging en realplayer) Klik op de knop create sources.list en je krijgt een nieuwe pagina met daarin een hoop tekst, dit is de bronnenlijst die je kan overnemen in je sources.list. Een voorbeeld van een sources.list aangemaakt voor feisty en een i386:
# Ubuntu supported packages : GPG key : 437D05B5 deb h t t p : / / be . a r c h i v e . ubuntu . com / ubuntu f e i s t y main r e s t r i c t e d deb h t t p : / / be . a r c h i v e . ubuntu . com / ubuntu f e i s t y −updates main restricted deb h t t p : / / s e c u r i t y . ubuntu . com / ubuntu f e i s t y −s e c u r i t y main restricted # Ubuntu community supported packages GPG key : 437D05B5 deb h t t p : / / be . a r c h i v e . ubuntu . com / ubuntu f e i s t y u n i v e r s e multiverse deb h t t p : / / be . a r c h i v e . ubuntu . com / ubuntu f e i s t y −updates universe multiverse deb h t t p : / / s e c u r i t y . ubuntu . com / ubuntu f e i s t y −s e c u r i t y u n i v e r s e multiverse # Ubuntu b a c k p o r t s p r o j e c t : GPG key : 437D05B5 deb h t t p : / / be . a r c h i v e . ubuntu . com / ubuntu f e i s t y −b a c k p o r t s main r e s t r i c t e d universe multiverse # Medibuntu m u l t i m e d i a packages : GPG key : 0C5A2783 deb h t t p : / / medibuntu . sos−s t s . com / repo / f e i s t y f r e e non−f r e e
B
Vergeet niet te updaten
Deze pakketbronnen zijn niet statisch. Zeker de versie updates en security worden regelmatig aangepast met nieuwere en meer veilige pakketten. Men moet dus regelmatig de pakketlijsten verversen zodat de nieuwste lijsten met software worden opgehaald. Dat kan je via het commando:
65
UNIT 4. SYSTEEMBEHEER: SOFTWARE
sudo apt −g e t update
De lijsten worden ververst (merk op: de lijsten worden niet in hun geheel opgehaald. Enkel de bestanden die staan opgesomd in Packages.diff. Zo kan er bespaard worden op bandbreedte). Expert: In /var/lib/apt/lists staan alle lijsten opgesomd die je hebt binnengetrokken. Wil je een verse start? Verwijder de lijsten (niet de map partial) en doe opnieuw een apt-get update.
4.3
Anders installeren 4.3.1 Individuele deb-pakketten vanuit je browser installeren met gdebi gdebi is een leuke add-on voor je browser. Zo kun je via het internet direct een front-end voor dpkg oproepen om pakketten te installeren. Installeer gdebi
sudo apt −g e t i n s t a l l gdebi
Op bijvoorbeeld http://www.getdeb.net vind je heel wat extra handige pakketten voor ubuntu. Waarschuwing: installeer enkel vanuit sites die betrouwbaar zijn!!
66
UNIT 4. SYSTEEMBEHEER: SOFTWARE
Figuur 4.3: www.getdeb.net herbergt heel wat desktop-software voor ubuntu met heel recente pakketten.
4.3.2
Andere pakketten: rpm
Debian en ubuntu kunnen via het programma ‘alien’ distributievreemde pakketten installeren. Zo kan je pakketten van distributies die gebaseerd zijn op het rpmformaat converteren en installeren. Installeer eerst alien sudo apt −g e t i n s t a l l a l i e n
daarna converteer je het rpm-pakket naar een deb-pakket
sudo a l i e n naam−pakket . rpm
Een deb-pakket met dezelfde naam (behalve dat het nu eindigt op .deb en niet .rpm) is aangemaakt. Je kan het vlot installeren via :
sudo dpkg − i naam−pakket . deb
4.3.3 Compileren en installeren van broncode A
Uitpakken van de gecomprimeerde broncode
Vind je op het www of op http://www.sourceforge.net interessante software maar niet in deb- of rpm-formaat? Beschik je enkel over de broncode? Dan kan je overgaan tot het zelf compileren en installeren van de software. De broncode wordt meestal als een tar.gz of tar.bz aangeboden. Dit is een gecomprimeerd bestand. Uitpakken doe je snel met het commando :
t a r − x z v f naam−pakket . t a r . gz
Uiteraard kan je via file-roller op een grafische manier je tar-bestanden uitpakken.
67
UNIT 4. SYSTEEMBEHEER: SOFTWARE
B
Voorbereiding
Lees de README en/of INSTALL ingesloten in het gecomprimeerde bestand of de online documentatie op de site van het project. Dit kan je snel op de hoogte brengen van vereisten compilatiesoftware en library’s. Om te kunnen installeren heb je nood aan diverse compilers
apt −g e t i n s t a l l b u i l d −e s s e n t i a l
Build-essential is een meta-package dat de meest gangbare compilers met hun afhankelijkheden installeert. Heb je echter nood aan een specifieke compiler : zie de readme ingesloten in het gecomprimeerde bestand (veel gebruikt: java, glade, python, ruby, mono, enz. ).
C
Compileren en installeren: de ruwe manier
Ga naar de map van de uitgepakte broncode. In de hoofdmap voor je achtereenvolgens uit:
• ./configure • make • sudo make install Het programma kun je nu via de console uitvoeren (tenzij het zich ergens installeert in een map die niet in PATH is opgenomen). Is het een grafisch programma: maak een bureaubladicoon en/of een menu-ingang (zie supra). Dit is de ‘ruwe’ manier om broncode te compileren en vooral te installeren. Dit zorgt er wel voor dat de diverse binaire bestanden en de eventuele bibliotheken, afbeeldingen, enz. die mee worden aangemaakt en op diverse plaatsen op je harde schijf terechtkomen, moeilijker gelokaliseerd en verwijderd kunnen worden. Ook weet je niet of het pakket bepaalde bestanden zomaar overschrijft. Daarom ¨ dat de debian-programmeurs graag een tussenstap maken: het creeren van een deb-pakket om mooi te kunnen installeren en probleemloos te kunnen verwijderen.
D
De debian manier van compileren en installeren.
Men voert alternatieve stap uit: men maakt een deb-pakket aan. Dit is het makkelijkst met het programma checkinstall .
68
UNIT 4. SYSTEEMBEHEER: SOFTWARE
sudo apt −g e t i n s t a l l c h e c k i n s t a l l
• ./configure • make • sudo checkinstall’ • een .deb-pakket wordt aangemaakt en vervolgens automatisch ge¨ınstalleerd’. Voordelen van deze methode: je kan het pakket mooi verwijderen als je het niet meer nodig hebt. Bovendien kun je het deb-pakketje bewaren voor als je het bijv. wil herinstalleren.
4.3.4 Java? Java-software is makkelijk te gebruiken: download de java-jre. Om een java-jar te voeren, typ je in console
j a v a − j a r naam . j a r
4.3.5 Installatiescripts Sommige aanbieders van software komen met een installatiescript (in de vorm van een naam.sh). Dit is een shell-script dat uitvoerbare rechten nodig heeft. Om te installeren kun je ‘sudo installatiebestand.sh’ uitvoeren. Zo installeer je het voor iedereen op het systeem.
chmod 744 naam . sh sudo . / naam . sh
Uiteraard is de betrouwbaarheid van dergelijke software afhankelijk van de aanbieders. Verwijderen van de software kan soms veel tijd in beslag nemen.
4.3.6 Naar een standaardinstallatieformaat? De laatste jaren proberen sommigen een standaard door te drukken voor installatie van software. Leidend moto is hierbij vaak: het moet even makkelijk worden
69
UNIT 4. SYSTEEMBEHEER: SOFTWARE
70
om software te installeren als bij windows en mac. Tot op heden is er geen enkel project echt doorgebroken (en is het maar de vraag of dit mogelijk/wenselijk is?). Wie heeft het geprobeerd?
• Autopackage (http://autopackage.org/) leek een heel beloftevol project. Een eigen grafisch installatiesysteem met een duidelijke visuele feedback dat beloofde heel makkelijk te zijn. Wie maakt hiervan gebruik? inkscape, the gimp en gaim.
• Conory (http://www.rpath.com/rbuilder/) is een volledig crm-systeem om vanuit zowel rpm als deb een eenheidssysteem te bouwen
• CNR-1click install was voorbehouden aan de gebruikers van linspire-linux (http://www.linspire.com. Door een recente samenwerking kan het 1clicksysteem (webgebaseerd) ook wel eens voor ubuntu-gebruikers toegankelijk worden.
4.4
. . . en mijn windowssoftware? 4.4.1
WINE is not (an) emulator
Wine is een open-source project (http://www.wine-hq.com) om een windows¨ partner (http://www.codeweavers.com emulatielaag te bouwen voor linux. Samen met een commerciele wordt de wine-bibliotheek uitgebouwd. Zo kan windows-software bijna native op *nix functioneren. sudo apt −g e t i n s t a l l wine
UNIT 4. SYSTEEMBEHEER: SOFTWARE
Figuur 4.4: Wine kun je configureren via ‘winecfg’ waar je stations kan aanduiden, scherm, audio, enz. kan instellen
Een programma installeren doe je aan de hand van:
wine setup . exe
De installatie-procedure wordt opgestart en verloopt zoals gewoonlijk. Merk wel dat niet alle windows-software kan ge¨ınstalleerd worden (zeker als er aanvullende DLL’s nodig zijn). Merk ook op dat de legale beperkingen van windowssoftware ook onder wine geldig blijven. Om via wine ge¨ınstalleerde sofware te verwijderen voer je (in console) ‘uninstaller’ uit. Nu opent zich een nieuw scherm dat heel hard lijkt op het Software-scherm uit Windows. Je kan hier een overzicht zien van alle met Wine ge¨ınstalleerde programma’s en je kan aanklikken wat je wil verwijderen en op ‘Remove’ klikken.
4.4.2
Programma’s die werken onder Wine
Een hele goede site met programma’s die onder Wine werken is Franks Corner (http://frankscorner.org/). Hij geeft er vaak ook nog uitleg bij hoe je diverse software correct kan installeren.
71
UNIT 4. SYSTEEMBEHEER: SOFTWARE
72
5 Publicaties in LATEX
5.1
Wat en waarom? Veel mensen gebruiken grafische teksverwerkings- en DTP-programma’s om hun teksten, cursussen, brieven, enz. te maken. Elk pakket heeft zo zijn eigen vooren nadelen. Het bekendste pakket om onder GNU/Linux bijv. teksten op te stellen is Openoffice.org. De ‘mindere’ goden zoals Abiword en Kword presteren ook goed 1 maar zijn -jammer genoeg- minder bekend bij het grote publiek. Groot voordeel van alle pakketten is het gebruik van de ODT-standaard: een open ISOgecertifieerde standaard die bestandsuitwisseling makkelijk maakt. LATEX wijkt sterk af van de voorgaande. Het is om te beginnen geen tekstverwerker maar eerder een typezettingssysteem. Het is geen grafisch programma maar een processor die tekstbestanden met LATEX-opmaakelementen verwerkt en aflevert als DVI, PostScript, PDF of html. Waarom LATEX? Met een WYSIWIG-programma bepaalt de gebruiker de opmaak. Met LATEX zorgt de gebruiker voor de inhoud en de indeling daarvan. LATEX bepaalt daaruit de lay-out. De opmaakt wordt dus gescheiden van de inhoud en de ‘auteur’ kan zich extra richten op de eigenlijke tekstinhoud (in plaats van zich druk te hoeven te maken over lay-out). LATEX-bestanden kunnen door om het even welke tekst-editor bewerkt worden. Zelfs met een simpele variant kun je dit doen. Je bent dus niet gebonden aan een specifieke softwareproducent. Andere voordelen zijn :
• Je document krijgt een professionele layout zonder dat je daar zelf veel 1
Zo is Kword heel wat beter om PDF’s rechtstreeks te importeren en te bewerken en is Abiword een heel performante, no-nonsense en vinnige tekstverwerker. 73
UNIT 5. PUBLICATIES IN LATEX
kennis dient over te hebben. Je hoeft je nauwelijks druk te maken over de technische details.
• Het zetten van mathematische formules en ingewikkelde tabellen wordt bijzonder goed ondersteund.
• Complexe strukturen zoals voetnoten, literatuuropgaven, inhoudsopgaven, tabellen enz. en zelfs eenvoudige tekeningen, kunnen zonder al te veel moeilijkheden gemaakt worden.
• Het is beschikbaar voor bijna alle computersystemen, en meestal gratis of goedkoop.
• Niet enkel teksten kunnen doeltreffend gemaakt worden. Ook presentaties (met Beamer, zie later) of een html-variant van je tekst is snel aangemaakt. Nadelen van LATEX:
• Binnen de door LATEX ondersteunde layouts kunnen weliswaar enige parameters gevarieerd worden, maar ingrijpende afwijkingen van de gebruikte layout kunnen slechts met veel moeite tot stand gebracht worden (Ontwerp van een nieuwe ‘documentclass’).
• Het intypen van LATEX-commando’s is ingewikkelder dan het aanbrengen van layout met moderne tekstverwerkers, zeker als die voorzien zijn van een menu-besturing. Ook al omdat het resultaat van de commando’s niet direct zichtbaar is.
• Het is gemakkelijker fouten te maken met LATEX dan met een tekstverwerker en de foutmeldingen van LATEX zijn niet altijd even duidelijk. Uit Handleiding LATEX door Piet van Oostrum
5.2
Installatie Voor GNU/Linux bestaan er twee ’distributies’ van LATEX : TeTeX en Texlive. Omdat de maintainer van TeTeX in 2006 de spreekwoordelijke handdoek in de ring heeft geworpen is elke toekomstgebaseerde oplossing TexLive. Gelukkig is deze opgenomen in de repository’s en is een installatie heel gemakkelijk:
gebruiker@naam−pc : ˜ $ apt −g e t i n s t a l l t e x l i v e − f u l l
Je kan uiteraard ook Texlive van cd-rom/dvd installeren. Meer info is te vinden op
http://www.tug.org/texlive/
74
UNIT 5. PUBLICATIES IN LATEX
5.3
75
Aan de slag met LATEX 5.3.1
Basisprincipe
LATEX is een niet-grafische processor die tekstbestanden met LATEX-opmaakelementen verwerkt en aflevert als DVI, PostScript, PDF of html. Schema
Processing door LaTex
LaTeX−bestand
OUTPUT : − dvi − ps − pdf − html
Figuur 5.1: LATEX-input naar outputproces
Vorbeeld: om het LATEX-tekstbestand om te zetten naar de standaardoutput (DVI) voer je gewoon volgend commando uit:
gebruiker@naam−pc : ˜ $ l a t e x t e k s t b e s t a n d . t e x
Je kan het resultaat bekijken met een DVI-viewer als evince, xdvi of kdvi.
5.3.2 LATEX-elementen in het tex-bestand A
Minimaal tex-bestand
\ documentclass { r e p o r t } %p l a a t s voor h e t invoegen van meerdere packages en s e t t i n g s . Ook preambule genoemd . \ begin { document } H e l l o w o r l d i s h e t bekende z i n n e t j e . \ end { document }
\documentclass : is de bepaling van de aard van je document. Is het een article, report, book,
• article voor artikelen in wetenschappelijk tijdschriften, voordrachten, handleidingen, seminars, korte berichten, programmabeschrijvingen, uitnodigingen, etc.
UNIT 5. PUBLICATIES IN LATEX
76
• artikel1,artikel2,artikel3 Als boven, maar dan met een Nederlandse layout. De Nederlandse layout is erg verschillend van de Amerikaanse.
• report voor langere stukken, die uit meer hoofdstukken bestaan, dissertaties, scripties, etc.
• rapport1,rapport3 een Nederlandse rapport stijl. • book voor boeken. • boek een Nederlandse boekstijl. • letter voor brieven. • brief voor Nederlandse brieven (volgens de NEN-normen). Uit zichzelf beschikt LATEX over een beperkt aantal mogelijkheden. Er is echter een ganse waaier aan ‘plugins’ of beter ‘packages’ die je in preambule kan aankoppelen. CTAN is een online verzameling van al deze packages2 . Er bestaan er letterlijk honderden. Afhankelijk van de ‘versheidsdatum’ van je LATEX-installatie zijn de allerlaatste al dan niet ge¨ınstalleerd.
\begin{document}
\end{document} : hier wordt het eigenlijk document ge-
schreven.
5.3.3 Een wat uitgebreider voorbeeld
\ documentclass [ a4paper , 1 1 p t ] { book } \ usepackage { u t f 8 }{ i n p u t e n c } \ begin { document } \ c h a p t e r { P u b l i c a t i e s i n \ LaTeX } \ s e c t i o n { Wat en waarom? } Veel mensen g e b r u i k e n g r a f i s c h e t e k s v e r w e r k i n g s − en DTP− programma ’ s om hun t e k s t e n , cursussen , b r i e v e n , enz . t e maken . E l k pakket h e e f t zo z i j n eigen voor− en nadelen . Het bekendste pakket om onder l i n u x b i j v . t e k s t e n op t e s t e l l e n i s O p e n o f f i c e . org . De ‘ mindere ’ goden z o a l s Abiword en Kword p r e s t e r e n ook goed \ f o o t n o t e { Zo i s Kword h e e l wat b e t e r om PDF ’ s r e c h t s t r e e k s t e i m p o r t e r e n en t e bewerken en i s Abiword een h e e l performante , no−nonsense en v i n n i g e t e k s t v e r w e r k e r } maar z i j n −jammer genoeg− minder bekend b i j h e t g r o t e p u b l i e k . \ end { document }
Er wordt gebruikt gemaakt van extra [opties] bij de \documentclass : zo wordt aan LATEX vermeld dat het uitvoerformaat A4 is en de grootte van het lettertype 11 punt. 2
http://www.ctan.org/
UNIT 5. PUBLICATIES IN LATEX
77
Een eerste package wordt gebruikt: inputenc die als optie utf8 meekrijgt. Hiermee kun je niet utf8-encodings meegeven (zorg ervoor dat je editor UTF8 is) Andere nuttige packages zijn :
• \usepackage{a4wide} (iets meer tekst op een bladzijde) • \usepackage[dutch]{babel} (voor Nederlandstalige woordafbreking) • \usepackage{amsmath} (uitgebreide wiskundige mogelijkheden) • \usepackage{url} (om url’s te verwerken) • \usepackage{graphicx} (om figuren te verwerken) In de preambule komen ook opties voor algemene opmaak. Voor een thesis kan men bijvoorbeeld gebruiken
• \setlength\{parindent\}{0cm} (geen inspringen eerste lijn paragraaf) • \renewcommand{\baselinestretch}{1.2} (om de interlinie afstand wat te vergroten) Er worden \chapter en \section toegevoegd om de tekst in te delen naar hoofdstuk en sectie. Niet alle indelingen komen voor. Enkel de documentclass van book herkent ze allemaal.
•
\part
•
\chapter
•
\section
•
\subsection
•
\subsubsection
•
\paragraph
•
\subparagraph
Een aantal voorbeelden voor de syntax:
• \section{Titel in inhoudsopgave en in document} • \section[Titel voor de inhoudsopgave]{Titel voor in het document} • \section*{Titel komt niet in de inhoudsopgave (door de *)}
Er wordt gebruikgemaakt van een voetnoot via het commando \footnote{hier komt de voetnoot}
UNIT 5. PUBLICATIES IN LATEX
5.4
Opmaak van tekst Voor dit onderdeel werd uitvoerig gebruik gemaakt van ‘Inleiding tot LATEX’ van Frederik De Schrijver, 13 december 2004 dat terug te vinden is op http://latex.ugent.be
5.4.1
Speciale tekens
De tekens die onderdeel vormen van LATEX-commando’s kunnen niet zomaar getypt worden.
% $ & # _ { } ~ ^ \ | < > worden bekomen via respectievelijk
\% \$ \& \# \_ \{ \} \~{} \^{} \verb?\? $|$ $<$ $>$ Voor het euro-symbool moeten we nog een pakket toevoegen: \usepackage{marvosym}. We krijgen dan ¤, c, den e via \EUR, \EURhv, \EURcr, \EURtm. Ellipsis (. . . ) kan verkregen worden via \ldots. Verder zijn er ook nog drie soorten streepjes: -,– en —. Deze kunnen verkregen worden door een, twee of drie streepjes na elkaar te typen. Daarnaast zijn normaal ook speciale commando’s vereist om accenten te typen. Gemakkelijker is gewoon het package inputenc te laden. ˚ \AA, Tenslotte nog enkele speciale tekens: œ=\oe, Œ=\OE, ø=\o, Ø=\O, A= ß=\ss, ¡=!‘ en ¿=?‘.
5.4.2
Spaties
Voor spaties gelden volgende regels: ´ • meerdere spaties worden vervangen door e´ en
• spaties in het begin van een paragraaf worden genegeerd • expliciet een spatie invoegen gaat met "\ " (backslash gevolgd door spatie) • spaties na een commando worden ingeslikt, voeg hier een expliciet spatie in
• woordgroepen, of woorden, die altijd op dezelfde lijn moeten blijven verkrijgt men via: \mbox{dezelfde lijn}
78
UNIT 5. PUBLICATIES IN LATEX
5.4.3
79
Paragrafen
Een harde enter wordt door LATEX aanzien als een spatie, een lege regel als een ´ gereduceerd. nieuwe paragraaf. Meerdere lege regels worden tot e´ en Inspringen en regelafstand hangen af van de documentclass. Deze kunnen gewijzigd worden door bijvoorbeeld het volgende toe te voegen aan de preamble:
\setlength{\parindent}{0 pt} % geen inspringen \setlength{\parskip}{1ex plus 0.5ex minus 0.2ex} %ruimte tussen paragrafen LATEX zoekt zelf de beste uitvulling van de tekst. Om zelf toch een nieuwe lijn te starten kan die met \\ of \newline. Expliciet een nieuwe pagina starten kan met \newpage.
5.4.4 A
Lettertypes
Lettergrootte
Er zijn tien lettergroottes. Deze kunnen op twee manieren gebruikt worden. Ofwel door \lettergrootte te typen, en in die lettergrootte verder te gaan tot dit opnieuw wordt veranderd, of een nieuwe onderdeel wordt gestart. Ofwel door de tekst tussen {} te plaatsen. Dit laatste kan echter te documentopmaak in de war sturen.
• \Huge Referentietekst • \huge Referentietekst • \LARGE Referentietekst • \large Referentietekst • \normalsize Referentietekst • \small Referentietekst • \footnotesize Referentietekst • \scriptsize Referentietekst • \tiny Refernentietekst
UNIT 5. PUBLICATIES IN LATEX
Omgeving
80
Commando
\rmfamily \textrm{xxx}
Roman letters, standaard
\ttfamily \texttt{xxx}
Typewriter letters
\sffamily \textsf{xxx}
Sans serif letters
\upshape
\textup{xxx}
Upright tekst, standaard
\itshape
\textit{xxx}
Italic tekst
\slshape
\textsc{xxx}
Small Caps
\mdseries \textmd{xxx}
Medium weight letters, standaard
\bfseries \textbf{xxx}
Bold face
\textnormal{xxx} De Standaard \emph{xxx}
B
Benadrukken
Letterstijlen
Ook voor de selectie van letterstijlen zijn er dezelfde twee opties. Alleen kan hier het commando om van omgeving te veranderen verschillen van het commando met {}’s.
\emph{xxx} is een speciaal commando. Als binnen een benadrukte tekst nogmaals iets benadrukt wordt, wordt het terug gewoon gezet:
\emph{Benadruk \emph{Benadruk meer} Benadruk}
5.4.5
Lijsten
Voor lijsten zijn er drie omgevingen: itemize, enumerate en description. We geven drie voorbeelden:
\begin{itemize} \item Een onderdeel \item Nog een onderdeel \end{itemize} geeft
• Een onderdeel • Nog een onderdeel \begin{enumerate} \item ´ e´ en
UNIT 5. PUBLICATIES IN LATEX
\item \begin{enumerate} \item twee a \item twee b \end{enumerate} \end{enumerate} geeft ´ 1. e´ en 2.
(a) twee a (b) twee b
\begin{description} \item[Term] Uitleg \item[Nog een term] Nog een uitleg \item Geen optioneel argument, een beetje ingesprongen \end{description} geeft
Term Uitleg Nog een term Nog een uitleg Geen optioneel argument, een beetje ingesprongen
5.4.6 Voetnoten Voetnoten worden gegeneerd door het commando \footnote{tekst}. In deze voetnoot3 vindt u de url van de cursus.
5.4.7 Letterlijke tekst Om letterlijke tekst in te typen zijn er twee mogelijkheden. Ofwel via volgende constructie:
\verb?letterlijke tekst met rare symbolen { } %? Hierbij moet men oppassen dat het teken waarmee de tekst wordt omlijst niet in de tekst voorkomt. Hier is dit een ?, maar andere tekens, bv. ! kunnen ook. Een 3
Url wvs: http://www.sf.net/projects/cursuslinux
81
UNIT 5. PUBLICATIES IN LATEX
andere probleem is dat de tekst die in \verb zit niet op verschillende lijnen kan komen, en dus voor overfull hbox’s kan zorgen. Hiernaast bestaat ook de omgeving verbatim. Een ideale omgeving om een broncode bestand in weer te geven.
\begin{verbatim} %een stuk LaTeX-code \usepackage{a4wide} \begin{document} In de omgeving verbatim worden alle \LaTeX-commando’s genegeerd. Speciale tekens {} % \ kunnen zonder meer gebruikt worden. \end{document} \end {verbatim}
5.4.8
Figuren
Als je met pdflatex werkt kan je verschillende soorten figuren importeren: pdf, png, jpg, . . . . Met LATEX kan je alleen met eps werken. Om met figuren te werken moeten we het pakket graphicx importeren.
\usepackage{graphicx} Figuren invoeren gebeurt door \includegraphics[opties]{bestandsnaam} in te geven. bestandsnaam is de naam van het bestand, zonder de extensie. opties is optioneel en kan een of meerdere van volgende ”key=value” mogelijkheden bezitten: width Lengte van de figuur height Breedte van de figuur. Indien alleen width of height wordt opgegeven blijft de lengte/breedte verhouding behouden angle Een hoek waaronder de figuur wordt gedraaid totalheight Bij draaien neemt de totale hoogte van de figuur toe, deze wordt met totalheight ingesteld
5.5
Van bron naar ... LATEX-bestanden zijn ordinaire tekstbestanden. Van deze bestanden moet nog een mooie, opgemaakte en voor publicatie vatbare versie gemaakt worden. LATEXbestanden bezitten in het algemeen een naam in de vorm: bestand.tex. Het omzetten naar een printbaar document is een compileerproces. De uitkomst van dit proces kan verschillende soorten bestanden leveren: dvi, pdf en html.
82
UNIT 5. PUBLICATIES IN LATEX
5.5.1
dvi
Oorspronkelijk werden LATEX-bestanden gecompileerd tot dvi (DeVice Independent) bestanden. Men bekomt een dvi-bestand via het commando: latex bestandsnaam.tex.
5.5.2
pdf
Het pdf-formaat (Portable Document Format) wordt het meest gebruikt. Voornamelijk omdat het heel gemakkelijk opent op zo goed als alle architecturen. Men bekomt een pdf-bestand via het commando: pdflatex bestandsnaam.tex. Werk je echter met LATEX en zie je het niet zitten om je afbeeldingen om te zetten naar jpg’s of png’s dan kan je altijd via een omweg een pdf bekomen. Voorwaarde is dat dvitops en pstopdf ge¨ınstalleerd zijn.
gebruiker@naam−pc : ˜ $ l a t e x mijnbestand . tex dvips mijnbestand . dv i ps2pdf m i j n b e s t a n d . ps
5.5.3 html Het kan ook leuk zijn onmiddellijk je werk op het internet te plaatsen. Dit is mogelijk door er een htmlversie van te maken. Men bekomt een html-versie via het commando: “latex2html bestandsnaam.tex”. Gebruik je veel extra packages dan verloopt de conversie niet vlot. Een manuele aanpassing van de html-code kan dan aan te raden zijn.
5.6
Goede LATEX-editors 5.6.1 Niet Wysiwig, code-editors Liefhebbers van emacs zullen uiteraard hun favoriet aanprijzen. Vergeet niet het pakket auctex te installeren. Andere software is meer gespecialiseerd. Absolute top voor GNU/Linuxis het KDE-programma Kile 4 . Bij Kile moet je nog altijd de codes kennen maar het komt met heel wat assistenten, voorgedefinieerde sjablonen, auto-completion van een gans scala aan commando’s, integratie met diverse hulpprogramma’s en viewers, Nederlandse interface, enz. 4
http://kile.sf.net
83
UNIT 5. PUBLICATIES IN LATEX
84
In opmars: texmaker 5 . Het is een gtk-applicatie en verkeerd 11 augustus 2007 nog in ontwikkelfase. Het ‘eigenaardige’ aan Kile en Texmaker is dat de programmeur van Texmaker (Pascal Brachet) ook de eerste ontwikkelaar is geweest van Kile. Hij is met Kile gestopt aan versie 1.5 waarna Jeroen Wijnhout het heeft overgenomen. Hopelijk komt er wat inspirerende concurrentie ;-)
Figuur 5.2: Kile 1.9 in actie.
Figuur 5.3: Texmaker 1.5 5
http://www.xm1math.net/texmaker/
UNIT 5. PUBLICATIES IN LATEX
5.6.2
85
Wysiwig met lyx en Openoffice.org
Toch liever grafisch? Lyx6 is een buitenbeentje. Het brengt een grafisch aandoende interface maar functioneert op de TEX-motor. Importeren van Plain-tex kan, vele tweaks aan je LATEX gaan verloren. Groot nadeel is dat het geen LATEXbestanden kan importeren en dat de standaard-output Lyx is.
Figuur 5.4: Lyx in actie
Openoffice.org, abiword, kword : alledrie kunnen ze exporteren naar LATEX. Het is heel handig in gebruik bij het aanmaken van grote tabellen. Importeren lukt niet ...
5.7
Presentaties met LATEX Het is ook mogelijk om via LATEX presentaties te maken. Er zijn een aantal packages voorhanden als prosper, slides, enz. De meest krachtige en het meest configureerbaar is beamer.
5.7.1
Basis van beamer
Het gebruik van beamer is relatief simpel.
\ documentclass { beamer } \ begin { document } \section{ Introductie } 6
urlhttp://www.lyx.org
UNIT 5. PUBLICATIES IN LATEX
\ begin { frame } Dit i s mijn eerste s l i d e
\ end { frame } \ begin { frame } D i t i s m i j n tweede s l i d e
\ end { frame } \ end { document }
Verwerken gebeurt via PDFlatex. Maar uiteraard wil een mens meer ;-) Zo kun je vlot een andere stijl en thema kiezen : Kijk het eens na op : http://mike.polycat.net/gallery/beamerthemes kun je de resultaten van de diverse thema’s eens bekijken. Aanvullende info staat vermeld in de userguide: ftp://tug.ctan.org/pub/
tex-archive/macros/latex/contrib/beamer/doc/beameruserguide.pdf
5.8
Verdere informatie 5.8.1
Online informatie
• de LATEX-site van de RUG: http://latex.ugent.be • de LATEX-site van de KUL: http://ludit.kuleuven.be/software/latex/ • Nederlandse Tex Genootschap: http://www.ntg.nl • Latex-forum van vtk-gent : heel goed. http://www.vtk.ugent.be/forums/ viewforum.php?f=239&sid=aa5352bcf45992165dd921b6cf637973 • Piet van Oostrum, Handleiding LaTeX. Versie 5, 20 maart 1998. http: //www.ntg.nl/doc/oostrum/latexhnd.pdf • Gaspars Lequeux, Gaspard (2006). Een introductie tot het zetsysteem LaTeX. Versie 0.5.2, 9 augustus 2006 - algemene inleiding op LaTeX, met de nadruk op de zaken die belangrijk zijn voor een thesis, zoals de bibliografie.
http://www.zeus.ugent.be/~gaspard/latex/ • Wilfried Van Hirtum. LaTeX voor beginners. In drie delen. In A4-formaat en als A5-boekje. 2006.
– LATEX voor Beginners, deel 1 (pdf) http://users.fulladsl.be/spb10695/ latbeg1a4.pdf – LATEX LaTeX voor Beginners, deel 2 (pdf) http://users.fulladsl. be/spb10695/latbeg2a4.pdf – LATEX voor Beginners, deel 3 (pdf) http://users.fulladsl.be/spb10695/ latbeg3a4.pdf
86
6 Alle in’s en uit’s
6.1
Enkele handige commando’s om tekstbestanden te bekijken Waarom deze commando’s? Als je weet dat de configuratiebestanden van GNU/Linux voor een groot gedeelte tekstbestanden zijn dan is het heel praktisch om snel deze bestanden te kunnen inkijken. In dit gedeelte gaan we enkel de teksten bekijken. Voor bewerken moet je bij het hoofdstuk over de editors zijn. cat Kleine tekstbestanden kunnen makkelijk ingekeken worden met het cat commando gebruiker@naam−pc : ˜ $ c a t / e t c / passwd
Dit toont je de inhoud van het paswoordenbestand in /etc. more Teveel inhoud. Met more kan je meer
gebruiker@naam−pc : ˜ $ more / e t c / passwd
• Spatie brengt je naar het volgende ‘blad’ 87
UNIT 6. ALLE IN’S EN UIT’S
• de toets b brengt je 1 pagina terug. Werkt alleen met bestanden, niet met pipes
• de toets q sluit het programma af less Nog niet tevreden? Less helpt je. Less gebruikt dezelfde commando’s als more maar je kan via de pijltjestoetsen ook makkelijker naar beneden en boven scrollen. tail en head Tail is heel praktisch om enkel maar het einde van een bestand te zien. Tail toont je standaard de 10 laatste regels van een bestand. gebruiker@naam−pc : ˜ $ t a i l −n 50 bestand . t x t
toont je de laatste 50. En uiteraard kun je ook de eerste 10 regels inkijken af waarom niet de eerste 34 regels ;-) head −n 34 bestand . t x t
Waarvoor dit belangrijk is vraag je je af? Soms kan dit heel bruikbaar zijn om bijv. log-bestanden snel in te kijken (soms enkele tientallen MB groot). Bijv. gebruiker@naam−pc : ˜ $ t a i l −n 20 / v a r / l o g / dpkg . l o g
Geeft je de laatste uitvoer van je dpkg: de pakketbeheerder gebruiker@naam−pc : ˜ $ t a i l −n 20 / v a r / l o g / s y s l o g
Geeft de laatste 20 systeemmeldingen wc Het commando ‘wc’ staat uiteraard voor wordcount. De -w optie geeft je het aantal woorden in een tekstbestand.
6.2
In en uit Een systeem zonder grafische omgeving (enkel de shell dus) kent een standaardinput en een standaard-output. Standaard-input (stdin) is de invoer van het toetsenbord. Standaardoutput (stdout) is het scherm. Gelukkig dat we kunnen redirecten via commando’s en de input en output kunnen ‘omleiden’ naar bestanden
88
UNIT 6. ALLE IN’S EN UIT’S
of waarom niet om als input te dienen voor andere commando’s. Niet te vergeten : de standaarderror(stderr). Die een foutmelding op het scherm weergeeft als er iets verkeerd verloopt.
6.2.1
Redirecting
Voorbeeld. Het commando ls spuwt zodanig veel info op je scherm dat je niet alles te zien krijgt. Het zou bijvoorbeeld handig zijn dat je dit als tekstbestand kan zien. Met een redirecting naar bestand is dit zo gebeurd. “>” is de redirectie operator en zegt dat de uitvoer niet naar de standaard-uitvoer (dit is meestal het scherm) gaat, maar naar het vermelde bestand. Het programma zelf merkt daar niets van, het doet gewoon zijn werk, net als anders. Het is de shell die de invoer omleidt en niet het programma!
gebruiker@naam−pc : ˜ $ l s > bestand . t x t
Let op: iedere keer als je dit doet, wordt bestand.txt overschreven. Als je dit niet wenst dan kan je de input op het einde van het bestand laten toevoegen.
gebruiker@naam−pc : ˜ $ l s >> bestand . t x t
Detail: met deze methode kun je geen foutmeldingen in een bestand krijgen. Wil je foutmeldingen opslaan in een bestand? Gebruik hiervoor
gebruiker@naam−pc : ˜ $ l s 2> bestand . t x t .
Op welke manier werkt de shell om een opdracht te verwerken? 1. Eerst wordt in de opdrachtregel gezocht naar speciale tekens; hier ‘>’. Dit betekent dat er een omleiding van het uitvoerkanaal naar een bestand moet gemaakt worden; als het bestand bestaat, wordt het overschreven. 2. Dan probeert de shell de opdracht uit te voeren die voor het omleidingsteken staat. Leuk is ook dat je twee bestanden kan samenvoegen tot 1 bestand.
gebruiker@naam−pc : ˜ $ c a t bestand1 bestand2 >> bestand3
89
UNIT 6. ALLE IN’S EN UIT’S
6.2.2
Piping: in-out | in-out | in-out . . .
Het wordt nog leuker ;-) Er zijn veel GNU/Linux-opdrachten die gebruikt kunnen worden om een hoeveel´ of andere manier te bewerken. Deze opdrachten worden ook heid tekst op de e´ en filters genoemd. Een filter krijgt tekst aangeboden op het invoerkanaal, doet zijn bewerking en stuurt het resultaat naar het uitvoerkanaal. Beide kanalen kan je ook omleiden maar je kan ze ook aan elkaar schakelen. Zo wordt een opdracht verwerkt, maakt output aan en kan deze output opgepikt worden door een nieuw commando die het gebruikt als input voor verwerking. Een voorbeeld : Je wenst dat de input van het commando ‘ls -al’ niet zomaar voorbijvliegt maar dat je het eens deftig kan bekijken.
gebruiker@naam−pc : ˜ $ l s − a l | more
De uitvoer van het commando ‘ls -al’ dient als invoer voor het programma more die het dan op zijn beurt toont op het scherm. Zo kun je heel ver gaan in het schakelen van programma’s
6.3
Nog enkele behulpzame commando’s Met dank aan Yanu (aka Lieven Debaes).
6.3.1 Sorteren met sort. De opdracht sort leest regels van het invoerkanaal en sorteert ze. Het programma kan nog veel meer dan dat (zie man sort), zoals:
• sorteren op volgorde van een bepaald veld (kolombereik). • bestanden samenvoegen. • de sorteervolgorde controleren zonder deze te veranderen. Dit hangt allemaal af van de opties die je meegeeft. Maar zonder opties sorteert het filter gewoon alfabetisch. Zie ‘man sort’.
90
UNIT 6. ALLE IN’S EN UIT’S
6.3.2
91
Zoeken met grep
Om in een tekst te zoeken naar een bepaald tekstfragment hoef je niet speciaal een teksteditor te gebruiken. Het filter grep haalt uit een tekst de regels die voldoen aan een door jou aangegeven “regular expression”. De overige regels worden niet doorgegeven naar het uitvoerkanaal.
gebruiker@naam−pc : ˜ $ grep − i f o o f i l e . t x t
Met het eerste commando wordt naar de string foo gezocht in het bestand file.txt. De optie -i zorgt ervoor dat er niet op hoofd- en kleine letters gelet wordt (ignore case). Met het tweede commando wordt in de output van ps gezocht naar het woord mozilla. In grep kun je de volgende reguliere expressies gebruiken. Er wordt telkens aangegeven waar een expressie mee zal matchen.
^
begin van de regel
$
eind van de regel
$\<
begin van een woord
\>
eind van een woord
.
elk enkel karakter
[str]
elk karakter in de string str
[^str]
elk karakter dat niet in de string str voorkomt
[a-b]
elk karakter tussen a en b
verb? ?
heft speciale betekenis van het teken erna op
∗
0 of meer herhalingen van het vorige item
6.3.3 Vinden met find De opdracht find is een krachtig en nuttig commando waarmee je het filesysteem van Linux mee kan doorzoeken. Van de gevonden bestanden en koppelingen (links), ook in onderliggende andere mappen, kan je de namen laten weergeven. De gevonden resultaten kan je ook als parameters aan een andere opdracht doorgeven (pipen). Zo kan je bv. bestanden die overal verspreid liggen in het filesysteem, wissen, verplaatsen of er de toegangsrechten van veranderen. find doorzoekt automatisch ook de onderliggende mappen. Daarom is het vaak een onmisbaar hulpmiddel voor de gebruiker, en vooral voor de systeembeheerder.
UNIT 6. ALLE IN’S EN UIT’S
A
Of toch liever locate?
Als de mappenstructuur erg groot is, kan het uitvoeren van de opdracht find erg lang duren. In zo‘n gevallen kan je beter de opdracht locate gebruiken.
gebruiker@naam−pc : ˜ $ l o c a t e tezoekenbestand
locate doorzoekt niet echt de mappenstructuur, maar gebruikt een database. Hierdoor werkt het veel sneller, maar de database kan te oud zijn, zodat het bestand er niet in voorkomt. In sommige Linux distributies wordt de locate-database elke nacht bijgewerkt (via een cronjob), maar je kan dit ook handmatig doen met de opdracht “updatedb”. Als overal toegang wilt hebben, moet je wel root zijn om dit uit te voeren.
B
Algemene werkwijze.
De opdracht doorzoekt een map recursief, d.w.z. dat ook alle onderliggende mappen onderzocht worden om bestanden te vinden. Daarvoor moet je drie gegevens meegeven. 1. de bovenste map waarin je wilt zoeken. 2. het selectiecriterium. 3. actie; wat moet er gebeuren met de gevonden bestanden? De syntaxis is:
f i n d [ o p t i e s ] [ zoekpad ] [ s e l e c t i e c r i t e r i u m ] [ o p d r a c h t o p t i e ]
Je kunt ook meerdere mappen opgeven om te doorzoeken. Als je geen “ zoekpad” meegeeft, zoekt find enkel in de huidige map. Deze ligt vastgelegd in de omgevingsvariabele PWD. Na het geven van de opdracht ‘find’ worden in de uitvoer, de relatieve paden van de gevonden bestanden weergegeven. Het ligt eraan op welke manier je de bovenste map (de map waarin je zoekt) meegeeft, hoe find het pad weergeeft. Tijdens het zoeken in mappen moet de opdracht find zich houden aan de geldende toegangsrechten. Een map kan alleen worden doorzocht als je lees- en uitvoeringstoegang hebt tot die map. Voor de mappen waar find niet bij kan, krijg je foutmeldingen via het standaard foutmeldingskanaal stderr.
92
UNIT 6. ALLE IN’S EN UIT’S
C
93
Soorten selectiecriteria.
Zonder selectiecriterium vindt find alle bestanden en mappen, als de toegangsrechten dit toelaten. Met een selectiecriterium erbij, kan je kiezen uit verschillende soorten items waarop je wilt selecteren. Hier zijn de belangrijkste criteria (zie ook ‘man find’).
D
Selectiecriterium
Selecteren op basis van
-name
naam volgens een shell-zoekpatroon
-iname
zie -name, maar hoofd- of kleine letters spelen geen rol.
-type
bestandstype
-user
gebruikersnaam van de eigenaar van de bestanden
-group
groepsnaam van de bestanden
-size
grootte van de bestanden
-atime
moment van laatste toegang (access time)
-ctime
moment dat het bestand gemaakt werd (creation time)
-mtime
moment van laatste wijziging (modification time)
-perm
toegangsrechten (permissions)
-links
het aantal namen (directe koppelingen) dat de bestanden hebben
Selectie op naam -name
Met de selectieoptie ‘-name’ zoek je bestanden met een bepaalde naam. De parameter na de ‘-name’ moet een naam zijn of een zoekpatroon volgens de regels van de shell (wildcards). Het zoekpatroon moet tussen enkele (‘) of dubbele (”) aanhalingstekens om te voorkomen dat de shell er iets anders van maakt. gebruiker@naam−pc : ˜ $ f i n d −name t e k s t . t x t
Gaat find op zoek naar het bestand dat letterlijk noemt tekst.txt. Als er een bestand bestaat met de naam tekst2.txt dan wordt dit niet weergegeven. gebruiker@naam−pc : ˜ $ f i n d −name ’ ∗ t e k s t ∗ ’
UNIT 6. ALLE IN’S EN UIT’S
94
Find gaat op zoek naar alle bestanden die het woord tekst in de bestandsnaam dragen. Zonder aanhalingstekens krijg je een foutmelding. Voor een overzicht van de wildcards: zie het hoofdstuk over de shell.
E
Selectie op bestandsgrootte -size
Als je op zoek bent naar lege bestanden om ze op te ruimen, of om naar zeer grote bestanden te zoeken, dan gebruik je find met de selectieoptie -size. Na de optie geef je aan naar welke grootte je wilt zoeken, uitgedrukt in blokken. Een blok is daarbij een halve kilobyte oftewel 512 bytes. Deze opdracht zoekt bijvoorbeeld naar bestanden die exact 4 kilobytes groot zijn.
gebruiker@naam−pc : ˜ $ f i n d . / − s i z e 8
Wil je geen blokken aangeven maar het precieze aantal Bytes, zet dan de letter c onmiddellijk achter het getal. Zo zoek je bijvoorbeeld naar een bestand met een grootte van 198 bytes.(c = bytes)
gebruiker@naam−pc : ˜ $ f i n d . / − s i z e 198c
Wil je het getal opgeven in kBytes, dan zet je de letter k erachter.
1
gebruiker@naam−pc : ˜ $ f i n d . / − s i z e 10k
Het zoeken op grootte is echter pas echt zinvol als je niet een exacte grootte aangeeft maar een onder- of bovengrens. Bovengrens: dit geef je aan met een minteken (-) . bv. -size -100k . Of je kan ook met < (kleiner dan) Ondergrens: dit geef je aan met een plusteken (+) . bv. -size +100k of > (groter dan)
F Selectie op tijd -time Het bestandssysteem houdt voor elk bestand tot op de seconde nauwkeurig bij wanneer:
• het gemaakt werd. (create : ctime) 1
m bestaat niet voor mega
UNIT 6. ALLE IN’S EN UIT’S
• het voor het laatst gewijzigd werd. (modification : mtime) • het voor het laatst geopend werd (toegang). (acces : atime) Met find kan je op deze drie criteria bestanden zoeken met respectievelijk de selectieopties -ctime, -atime en -mtime (per dag) of per minuut : -cmin, -amin, -mmin. Met + en - geef je aan dat het jonger (minteken) dan, of ouder (plusteken) dan is Zoek je naar bestanden die aangemaakt werden in een bepaalde periode (= met onder- en bovengrens) in 24h-perioden of in minuten, dan geef je dit aan met een getal:
gebruiker@naam−pc : ˜ $ f i n d . / −c t i m e 3
Hier worden bestanden gezocht die minimum 3 keer 24h-perioden (3dagen) en maximaal 4 dagen oud zijn. 1. 0 = vandaag (pas op, vanaf het huidige tijdsstip tot 24h terug controleren) 2. 1 = gisteren 3. 2 = eergisteren Zoek je bestanden die jonger zijn dan een aantal 24h-perioden of minuten, dan geef je het getal op met een minteken:
gebruiker@naam−pc : ˜ $ f i n d . / −c t i m e −3
Deze opdracht selecteert alle bestanden die jonger zijn dan 3 dagen (3x24h). Zoek je bestanden die ouder zijn dan een aantal 24h-perioden of minuten, dan geef je het aantal op met een plusteken:
gebruiker@naam−pc : ˜ $ f i n d . / −c t i m e +1
Deze opdracht selecteert alle bestanden die ouder zijn dan 1 dag (24h).
G
Opdrachtoptie
Tot nu toe hebben we in de voorbeelden nog geen opdrachtoptie gebruikt. find laat dan alleen de paden naar de gevonden bestanden zien. Dit is eigenlijk de defaultwaarde. Met de opdrachtoptie -print krijg je hetzelfde resultaat.
95
UNIT 6. ALLE IN’S EN UIT’S
Een andere heel belangrijke opdrachtoptie is -exec (execute), waarmee je elke willekeurige linux-opdracht kunt uitvoeren. Dit gebeurt voor elk bestand automatisch, zonder dialoog met de gebruiker. Als je echter de opdrachtoptie -ok gebruikt i.p.v. -exec, dan vraagt find elke keer om bevestiging. De opdracht wordt dan alleen uitgevoerd als je de letter y of Y typt. Na de opdrachtoptie typ je de opdracht inclusief opties en parameters op dezelfde manier als dat je hem aan de shell-prompt zou invoeren. Daarbij kan je het door find gevonden pad gebruiken door middel van een accoladepaar zonder iets ertussen: . De opdracht moet worden afgesloten met een puntkomma. Omdat dit een speciaal teken is voor de shell moet je het afschermen met een escape-teken. De opdrachtregel eindigt dus met ;. Na de opdracht mogen geen andere find-opties meer komen. Stel dat je met find het bestand ‘tekst.txt’ met ‘tek*’ wilt zoeken, dan vervangt find de accolades door het pad naar dit bestand. De opdracht voert dus effectief alle gevonden items uit. Maar pas op! find vindt ook mappen. Vaak wordt find gebruikt om bestanden, die verspreid over verschillende mappen zijn opgeslagen, te verwijderen volgens een gemeenschappelijk criterium. Stel, je bent systeembeheerder, en je wilt alle bestanden in de home-mappen van de gebruikers bekijken die twee weken of langer niet meer gebruikt zijn, dit om ze eventueel te wissen. gebruiker@naam−pc : ˜ $ f i n d / home −t y p e − f −atime +14 −exec l s
{} \ ;
En je wilt ze allemaal wissen:
gebruiker@naam−pc : ˜ $ f i n d / home −t y p e − f −atime +14 −exec rm {} \ ;
96
7 Beheer van gebruikers
Vanaf nu enkele taken die je enkel als systeembeheerder of root kan uitvoeren. We zijn root al diverse keren tegengekomen bij bijvoorbeeld het installeren van software. Root is nodig voor het systeemonderhoud.
7.1
Root en het sudo-systeem 7.1.1
Basisprincipe
Root (of de meester van het universum, beperkt tot de GNU/Linux-machine waarop je werkt) kiest zijn vriendjes ;-) zelf. De ubuntu-filosofie gaat ervan uit dat het inloggen als root niet aan te raden is. Immers als iemand het paswoord van root kan achterhalen dan heeft die persoon de effectieve controle over het systeem. In Ubuntu is het paswoord voor root standaard uitgeschakeld en wordt het sudosysteem gebruikt om een gewone gebruiker commando’s met rootrechten te laten uitvoeren (dankzij setuid en setgid). Het eerste gewone useraccount dat je tijdens de installatie van het systeem hebt aangemaakt is vanzelf sudo-gebruiker. Om sudo te gebruiken typ je dus sudo voor het commando dat je ingeeft, en daarna geef je je eigen gebruikerswachtwoord. Software installeren, de softwarebronnen updaten, enz. is een taak die enkel root kan uitvoeren. Via het sudo-systeem kan ook een gewone gebruiker met sudorechten dit. Bijvoorbeeld:
gebruiker@naam−pc : ˜ $ sudo apt −g e t update
97
UNIT 7. BEHEER VAN GEBRUIKERS
98
Als je als root bent ingelogd, vervalt uiteraard het eerste commando, namelijk ‘sudo’.
7.1.2 Meerdere sudo’ers Hoe een gebruiker toevoegen om root-rechten te verkrijgen via het commando sudo (of grafisch: gksudo)? Er zijn verschillende manieren om dit te bereiken.
7.1.3 /etc/sudoers gebruiker@naam−pc : ˜ $ sudo v i s u d o
Nano opent. gebruiker@naam−pc : ˜ $ # / e t c / sudoers # # T h i s f i l e MUST be e d i t e d w i t h t h e ’ visudo ’ command as r o o t . # # See t h e man page f o r d e t a i l s on how t o w r i t e a sudoers f i l e . # Host a l i a s s p e c i f i c a t i o n # User a l i a s s p e c i f i c a t i o n # Cmnd a l i a s s p e c i f i c a t i o n # Defaults Defaults
! l e c t u r e , t t y t i c k e t s , ! fqdn
# User p r i v i l e g e s p e c i f i c a t i o n root ALL=(ALL ) ALL
Voeg een volgende lijn toe en sla op gebruiker@naam−pc : ˜ $ # User p r i v i l e g e s p e c i f i c a t i o n root ALL=(ALL ) ALL naamgebruiker ALL =( ALL ) ALL
Hiermee krijgt je gebruiker alle rechten van root via het sudo-commando. Uiteraard kan de gebruiker beperkt worden in zijn macht en bijvoorbeeld maar voor
UNIT 7. BEHEER VAN GEBRUIKERS
enkele commando’s root-rechten krijgen. Zo kan je bijvoorbeeld een gebruiker enkel maar toestaan om het systeem te updaten en te upgraden. Meer weten? man sudoers. Sudo wordt geconfigureerd vanuit /etc/sudoers. Het heeft enkele mooie configuratiemogelijkheden. Zo kan je gebruikers of groepen toestaan specifieke rootcommando’s uit te voeren, heb je de mogelijkheid om meerdere personen (al dan niet beperkt) rootrechten te geven in plaats van 1 enkele gebruiker, enz. Kijk het eens na op http://www.gratisoft.us/sudo/intro.html wat je allemaal kan finetunen met dit configuratiebestand.
A
usermod
Heb je het liever via 1 commando?
gebruiker@naam−pc : ˜ $ sudo usermod −a −G admin gebruikernaam
B
gksu users-admin
Of waarom niet grafisch ;-) Open via het menu Systeem/beheer/gebruikers en groepen (of sneller via terminal ‘gksu users-admin’). Selecteer een gebruiker, klik op Eigenschappen. In het tabblad ‘Gebruikersrechten’ vink je ‘mag het systeem beheren’ aan.
Figuur 7.1: Grafische manier om gebruikers toegangsrechten te verschaffen tot sudo.
99
UNIT 7. BEHEER VAN GEBRUIKERS
7.1.4
Sudo: enkele handigheidjes
Soms als je grafische programma’s met sudo opent, krijg je de eerstvolgende keer inlogproblemen. Om deze te vermijden gebruik je beter gksu onder gnome en kdesu onder kde. Een koppeling op je desktop maken met als commando bijvoorbeeld gksudo nautilus of kdesu konqueror is superhandig. Je bent dus tegelijk user en root op dat moment. Dan kan je zo naar een bestand browsen en het als root bewerken. Als je het browservenster sluit, ben je weer gewone user. Met het commando ‘su naamgebruiker’ kun je makkelijk een andere gebruiker worden. Je heb nog steeds je eigen omgeving, je eigen shell enz. Om die gebruiker zijn shellvariabelen te krijgen doe je su -l. Uiteraard moet je het paswoord van die gebruiker weten. Door de -l optie bevind je je dan ook meteen in de thuismap van die gebruiker. Je wordt best altijd root door middel van sudo. Maar soms is het nodig om echt als root in te loggen en dan gebruik je ‘su’ om root te worden. Met su echter heb je nog steeds de omgevingsvariabelen niet van root. Om die te bekomen en pas echt helemaal root te zijn doe je ‘su -’. Merk op: inloggen via gdm als root lukt niet. Verander dit in de settings van gdm. In het menu Systeem/aanmeldvenster vink je ‘aanmelding lokaal voor systeembeheer toestaan’ aan in het tabblad ‘Beveiliging’. ‘sux’ is trouwens ook super, sux geeft je niet alleen rootrechten maar ook rechten op grafische programma’s. Sux moet je wel eerst installeren (is niet in het standaard ubuntu-systeem). Mocht je het toch nodig vinden om root te activeren dan kun dit je via:
gebruiker@naam−pc : ˜ $ sudo passwd r o o t
Waarop je uiteraard een paswoord moet ingeven voor root. Het is niet omdat je nu root hebt geactiveerd dat het sudo-systeem wordt uitgeschakeld. Zowel sudo als inloggen als root kan je naast elkaar gebruiken. Vanaf nu kun je inloggen als root op een terminal (of inloggen als root via ssh). Wat is het voordeel/nadeel van root of sudo.? Kijk het eens na op http://linuxboxadmin.com/articles/sudo-vs-root.php
7.2
Werken met gebruikers Waarom gebruikers? Er zijn meerdere redenen: omdat er nu eenmaal meerdere mensen op hetzelfde systeem kunnen werken en men niet graag heeft dat men in elkaars mail, documenten kan inkijken. Voor de systeembeheerder betekent dit een regeling naar wie welk bestand mag inkijken, wie welke processen mag opstarten, wie bevoegdheid heeft (of niet). Gebruikers identificeren ook mensen, houden logs bij, zorgen voor gepersonaliseerde mail (i.p.v. een systeemwijde instelling), enz.
100
UNIT 7. BEHEER VAN GEBRUIKERS
Onthoud nu ook dat sommige gebruikers geen mensen zijn maar noodzakelijk zijn voor het uitvoeren van ‘daemons’. Zo zal de webserver apache gebruik maken van een eigen ‘gebruiker’ om de server veilig te houden.
7.2.1 A
Aanmaken van gebruikers
adduser
Kort en bondig aanmaken van een gebruiker gebruiker@naam−pc : ˜ $ sudo adduser n i e u w e g e b r u i k e r Toevoegen van g e b r u i k e r ‘ naam−g e b r u i k e r ’ . . . Toevoegen nieuwe groep ‘ naam−g e b r u i k e r ’ ( 1 0 0 3 ) . Toevoegen nieuwe g e b r u i k e r ‘ naam−g e b r u i k e r ’ ( 1 0 0 3 ) i n groep ‘ naam−g e b r u i k e r ’ . . . Aanmaken home d i r e c t o r y ‘ / home / naam−g e b r u i k e r ’ . . . Kopieren bestanden van ‘ / e t c / s k e l ’ . . .
Vervolgens moet je tweemaal het paswoord intypen gebruiker@naam−pc : ˜ $ E n t e r new UNIX password : Retype new UNIX password : passwd : wachtwoord i s mes succes aangepast De g e b r u i k e r s i n f o r m a t i e van naam−g e b r u i k e r wordt veranderd
Inclusief typo ;-) Aanvullend kun je nog extra info verschaffen gebruiker@naam−pc : ˜ $ U d i e n t de nieuwe waarde i n t e voeren , druk ’ e n t e r ’ voor de standaardwaarde V o l l e d i g naam [ ] : naam−g e b r u i k e r Kamernummer [ ] : T e l e f o o n werk [ ] : Telefoon t h u i s [ ] : Varia [ ] : I s deze i n f o r m a t i e c o r r e c t ? [ y / N ]
Zoals je zal merken is er in /home een nieuwe map bijgekomen. Deze geeft standaard profielen meegekregen: .bash logout, .bash profile, .bashrc en .profile. Maar er is nog meer aangepast. Wil je dit automatisch proces tweaken? Kijk eens in /etc/adduser.conf. Daar kun je heel wat instellingen wijzigen.
101
UNIT 7. BEHEER VAN GEBRUIKERS
B
Gebruikers en groepen in beheer
Je wil het grafisch? Via menu Systeem/Beheer/Gebruikers en groepen kun je een nieuwe gebruiker aanmaken. Heel wat extra instellingen zijn mogelijk. Naast paswoord, thuismap en de extra info kun je ook de gebruiksrechten makkelijker controleren.
Figuur 7.2: Snel een nieuwe gebruiker aanmaken via gnome-gebruikersbeheer.
7.2.2
Achter de coulissen van adduser
Uiteraard kan enkel root gebruikers aanmaken. Het is helemaal niet zo moeilijk. Als je weet hoe het systeem werkt, kun je je systeem nog meer onder controle krijgen.
A
/etc/passwd
´ regeltje toebedeeld in /etc/passwd. Elke gebruiker krijgt e´ en
gebruiker@naam−pc : ˜ $ naam−g e b r u i k e r : x : 1 0 0 0 : 1 0 0 0 :naam−g e b r u i k e r , , , , : / home / naam−g e b r u i k e r : / b i n / bash
Hoe moet je de regel begrijpen?
• gebruikersnaam: dit is een unieke naam op het systeem. Dit is ook de inlognaam
• paswoord: hier voorgesteld door een ’x’. Het programma passwd neemt het instellen van het paswoord voor zijn rekening. Opmerking: de account van
102
UNIT 7. BEHEER VAN GEBRUIKERS
koen is geactiveerd maar maakt gebruik van het meer veilige systeem van schaduwpaswoorden. Dit kan je merken aan de ‘x’. Als het eerste woord van de paswoordreeks een (asteriks, sterretje) zou zijn, dan betekent dit dat de account tijdelijk onbruikbaar is.
• uid: of de ‘user ID’. Intern maakt het systeem geen gebruik van de gebruikersnaam maar van de gebruikersID. In dit geval 1000.
• gid: of ‘Groups ID’. . . . uiteraard voor het werken met groepen. • gecos: diverse informatie over de gebruiker. • home-map: map van de gebruiker. Standaard wordt de thuismap aangemaakt naar analogie met de gebruikersnaam.
• shell: de volledige padnaam naar de gebruikte shell van de individuele gebruiker. Niet alle velden moeten ingevuld worden. Enkel username, uid, gid en home-map zijn vereist. Enkele ’speciallekes’:
• Root kent standaard als uid het nummer 0 en ook de gid staat op 0. • Je kan jezelf een andere shell geven. Maak dat je zeker bent dat de shell ge¨ınstalleerd is op je systeem.
• En inderdaad: je kan jezelf een andere thuismap geven. /home is een gewoonte, hetzelfde met de naamgeving van de namen in /home. Als je je thuismap verandert: maak zeker dat je gebruiker rechten heeft op die map. ¨ • Wens je meerdere zaken naar de thuismap te laten kopieren bij het aanmaken van een gebruiker? Maak als root deze bestanden aan in /etc/skel . Het leuke is dat de bestanden bij het aanmaken van de gebruiker automatisch de rechten van de gebruiker krijgen (lezen en schrijven, niet uitvoeren). Dit biedt heel wat mogelijkheden om een standaardgebruikersprofiel aan te maken.
B
schaduwpaswoorden
/etc/passwd is handig maar uiteraard kan iemand die dit bestand kan benaderen gebruik maken van de paswoorden van alle gebruikers, inclusief root. Daarom dat men schaduwpaswoorden heeft ge¨ıntroduceerd. Dat maakt het moeilijker om de paswaarden te achterhalen omdat deze versleuteld worden opgeslagen in /etc/shadow. Als je dus geen volledige paswoorden te zien hebt in /etc/passwd maar enkel een ‘*’ of een ‘x’, dan maakt je systeem gebruik van schaduwpaswoorden (wat anno 2007 de standaard is, je hebt speciale conversietools om over te stappen van gewoon naar shadow). Waarom shadow?
103
UNIT 7. BEHEER VAN GEBRUIKERS
• Om te beginnen is /etc/shadow enkel maar leesbaar door root. Gewone gebruikers kunnen er niet aan. Als root het bestand inleest dan staat daar:
gebruiker@naam−pc : ˜ $ gebruikersnaam : $1$ . SrfQX5F \ $6z9UP . 9 VfpkieA15bU5 . / / : 1 3 3 4 8 : 0 : 9 9 9 9 9 : 7 : : :
De gebruikersnaam is zichtbaar, maar de paswoorden niet. Deze zijn versleuteld opgeslagen en worden via encryptie weer uitgelezen.
• Je kan een tijdslimiet instellen per account. Zo kun je toegang geven tot een bepaalde account vooraleer die buiten werking wordt gesteld als er geen nieuw paswoord wordt ingegeven. Consulteer hiervoor de man-pagina’s van shadow of neem eens een kijkje in /etc/login.defs .
C
Kerberos en PAM
Niet genoeg beveiliging? Kijk eens naar Kerberos en/of PAM. Dit zijn nog diepgaander, uitgebreider systemen van toegangsbemiddeling.
7.2.3
Gebruikers verwijderen: tijdelijk, definitief, in een backup
Gebruikers ‘verwijderen’ van het systeem is nog gemakkelijker dan ze aan te maken ;-) .
gebruiker@naam−pc : ˜ $ d e l u s e r gebruikersnaam
Dit zorgt ervoor dat de gebruiker niet meer kan inloggen in zijn shell. Dit komt omdat zijn lijntje in /etc/passwd volledig wordt verwijdert. De thuismap, instellingen, mail, printqueus enz. blijven bestaan. Je wenst een gebruiker tijdelijk toegang tot het systeem te ontzeggen: verwijder hem uit /etc/passwd of plaats een * (asteriks) na zijn naam in /etc/passwd :
gebruiker@naam−pc : ˜ $ naam−g e b r u i k e r : ∗ : 1 0 0 0 : 1 0 0 0 : naam−g e b r u i k e r , , , , : / home / naam−g e b r u i k e r : / b i n / bash
Zo blijven de thuismap en al de rest bestaan. De gebruiker kan niet meer inloggen op zijn account. Bij gebruik van schaduwpaswoorden moet je hetzelfde doen in /etc/shadow.
104
UNIT 7. BEHEER VAN GEBRUIKERS
gebruiker@naam−pc : ˜ $ d e l u s e r − −remove−home gebruikersnaam
Verwijdert de gebruiker van het systeem inclusief zijn thuismap. Is –remove-home standaard ingeschakeld in /etc/deluser.conf en wil je voor alle veiligheid toch een backuptje in een tar.bz2?
gebruiker@naam−pc : ˜ $ d e l u s e r − −backup gebruikersnaam
Wil je alles verwijderen?
gebruiker@naam−pc : ˜ $ d e l u s e r − −remove− a l l − f i l e s gebruikersnaam
Wil je absoluut zeker zijn dat de verwijderde gebruiker geen sporen heeft nagelaten? Doe een zoekopdracht in / op basis van de gebruikersnaam.
gebruiker@naam−pc : ˜ $ f i n d / −user gebruikersnaam − l s
Nieuw paswoord aanmaken? Als gebruiker kan je gewoon het passwd-commando uitvoeren. gebruiker@naam−pc : ˜ $ passwd naam−g e b r u i k e r
7.3
Groepen Groepen zorgen ervoor dat verschillende gebruikers op een logische manier bij elkaar kunnen gebracht worden. Zo kunnen zij binnen hun groep gemakkelijk bestanden uitwisselen. Met ls -l kun je zowel de eigenaar als de groep van een map/bestand bekijken. Hoe een groep aanmaken?
gebruiker@naam−pc : ˜ $ sudo addgroup naamgroep
De diverse groepen kun je terug vinden in /etc/group. Daarin staat de naam van de groep, paswoord, gid, en de leden van de groep (gescheiden door een komma, zonder spatie ertussen) Net zoals de schaduwpaswoorden bij de gebruikers kent
105
UNIT 7. BEHEER VAN GEBRUIKERS
106
ook het paswoord van groepen een versleutelde versie. Je vindt de versleutelde paswoorden terug in /etc/gshadow . Hoe een groep verwijderen? gebruiker@naam−pc : ˜ $ sudo d e l g r o u p naamgroep
7.3.1 Ubuntu-groepen Naast de groepen die per gebruiker worden aangemaakt zijn er ook groepen die gebonden zijn aan het systeem. Zo moet een gebruiker lid zijn van bijv. de groep cdrom om het cdrom/dvd-station te kunnen gebruiken of moet je lid zijn van de groep audio om muziek te kunnen beluisteren.
7.4
Enkele handige extra’s 7.4.1 Wie ben ik? Een levensgrote vraag. Gelukkig lost GNU/Linux ze op met het commando ‘whoami’. Wil je weten tot welke groep je behoort: ‘id’ is je vriend. Wat minder info zie je met ‘groups naamgebruiker’.
7.4.2 Wie is er op het systeem? Wil je weten wie er nu ingelogd is en waar? ‘who’ vertelt het je gebruiker@naam−pc : ˜ $ koen :0 koen pts /1 koen tty3
2007−03−16 21:22 2007−03−16 21:29 ( : 0 . 0 ) 2007−03−16 21:38
De gebruiker koen is driemaal ingelogd. De eerste keer op display O en de twee keer in een terminal. De derde keer in een virtuele (niet-grafische) terminal. Dit commando vertelt je niet wie is aangelogd via internet, ftp, . . . of enig ander netwerkprotocol. Wat doen al deze gebruikers? Een simpele ‘w’ vertelt het je. Dit commando toont
UNIT 7. BEHEER VAN GEBRUIKERS
107
naast systeeminfo ook informatie over welke gebruiker (USER) is ingelogd op welke terminal (TTY) van welke plaats (FROM). Ook info over wanneer de gebruiker is ingelogd (LOGIN@) en welke programma’s hij op dit moment draait (WHAT). Twee kolommen over hoeveel tijd de CPU heeft gespendeerd sedert login aan het uitvoeren van de programma’s (JCPU) en voorgrondprocessen (PCPU).
gebruiker@naam−pc : ˜ $ w 1 7 : 4 7 : 5 7 up 3 : 3 9 , 6 users , USER TTY FROM PCPU WHAT koen :0 − s / u s r / b i n / gnome− koen pts /1 :0.0 s bash koen pts /3 :0.0 s w koen pts /2 :0.0 s bash koen pts /4 :0.0 s gedit koen pts /6 :0.0 s bash
l o a d average : 0 ,08 , 0 ,12 , 0 ,12 LOGIN@ IDLE JCPU 14:23
?xdm?
8:28m
0.29
14:46
1:48
0.32 s
0.32
15:54
1.00 s
0.21 s
0.00
15:59
58:51m
0.14 s
0.14
16:21
1:25
3.95 s
3.81
16:22
1:17
0.15 s
0.15
En wie is er het laatst aangelogd? ‘last’ toont je alle huidige gebruikers.
gebruiker@naam−pc : ˜ $ l a s t gebruikersnaam
Toont je een volledige lijst van je gebruiker wanneer en waar hij is ingelogd voor welke tijd.
7.5
Grafische omgevingen voor meerdere gebruikers 7.5.1 Pessulus Pessulus is een ‘lockdown-editor’ die systeembeheerders in staat stelt om gemakkelijk bepaalde functies in de Gnome-desktop uit te schakelen, hetgeen vaak ´ Hoewel ‘lockdown’ al enkele gewenst is in bedrijfsomgevingen en internetcafes. jaren in GNOME mogelijk was, maakt Pessulus het voor de systeembeheerder nu veel eenvoudiger om deze taak uit te voeren.
UNIT 7. BEHEER VAN GEBRUIKERS
Figuur 7.3: Met Pessulus is het heel gemakkelijk om snel functies in de Desktop uit te schakelen
Een aantal van de functies die ontzegd kunnen worden zijn:
• Toegang tot de opdrachtregel • De mogelijkheid om de computer uit te zetten of te herstarten • Toegang tot specifieke protocollen in de epiphany-webbrowser • De mogelijkheid om GNOME-panelen te bewerken
7.5.2
Sabayon
Wens je eenzelfde instelling van de gnome-gebruikersomgeving voor meerdere, reeds bestaande gebruikers dan snelt Sabayon je te hulp. Het programma kan verschillende gebruikersprofielen opstellen binnen een interactieve live GNOMEsessie. Wanneer een profiel aangemaakt of bewerkt wordt, wordt een nieuwe GNOME-sessie opgestart, ingebed in een venster. Deze sessie kan dan door de systeembeheerder worden gebruikt om alle gewenste wijzigingen te maken en vast te leggen.
Figuur 7.4: Sabayon in een ingebed xnest-venster.
Binnen het ingebedde venster kan een systeembeheerder specifieke profielen aanmaken. Deze profielen kunnen dan worden opgeslagen en eenvoudig worden gebruikt op andere PC’s. Dit bespaart systeembeheerders veel tijd. Sabayon
108
UNIT 7. BEHEER VAN GEBRUIKERS
109
maakt gebruik van de Gconf-sleutels en Firefox-instellingen om een profiel aan te maken.
Meer info: http://www.gnome.org/%7Eseth/blog/sabayonhttp://www.gnome.org/%7Eseth/blog/sa
UNIT 7. BEHEER VAN GEBRUIKERS
110
8 Processen en booten
8.1
Processen? 8.1.1
Multi-user and multi-tasking
Multi-tasking en multi-user is geen loos begrip onder linux. Iedere gebruiker kan meerdere programma’s ‘tegelijk’ opstarten. ‘Tegelijk’ staat tussen aanhalingste´ kens, omdat een enkele processor fysisch gezien slechts de bevelen van e´ en enkel programma kan uitvoeren; maar het besturingssysteem wisselt ettelijke malen per seconde van programma (dit heet scheduling), zodat het lijkt alsof die programma’s echt allemaal tegelijk aan het draaien zijn. ´ enkel proces op. Sommige commando’s initieren ¨ Niet elk commando start e´ en een ganse rits aan processen. Processen kunnen door gebruikers niet zomaar worden opgestart. Je moet minimaal ingelogd zijn in een virtuele terminal. Vanuit de terminal kun je processen opstarten door de respectievelijke commando’s in te typen.
8.1.2
Wat is een proces?
Een proces is een programma in actie (gebruikmakend van CPU en geheugen). Het is een geheel van : uitgevoerde code, verwerkte data, shell-instellingen, ... Het programma zelf is niet meer dan een bestand dat uitvoerbare code bevat. Als het programma uitgevoerd wordt, dan laadt het besturingssysteem die uitvoerbare code in het geheugen. Maar het besturingssysteem voorziet voor elk proces niet alleen plaats voor de uitvoerbare code die uit het bestand komt, maar ook 111
UNIT 8. PROCESSEN EN BOOTEN
112
voor de gegevens die tijdens de uitvoering aangemaakt worden. Of nog anders uitgedrukt: het meesterprogramma is de kernel, al de rest is een proces (en dus ondergeschikt aan de kernel) Het leven van een proces bestaat uit drie stadia: 1. geboorte 2. uitvoering 3. dood De uitvoering van een proces kan verder opgedeeld worden in de drie stadia klaar (“READY”), wachtend (“SLEEPING”), en actieve uitvoering (“RUNNING”). Een proces heeft eveneens een unieke identiteit aangegeven door zijn PID (pro¨ cess identifier). Een proces kan zelf kind-processen creeren, of zichzelf vervangen door een ander proces, met behulp van een “fork” instructie (zie man fork) of een “clone” (man clone). Kind-processen hebben andere PIDs, indien het proces zichzelf vervangt, behoudt het zijn PID. In multi-tasking systemen zoals GNU/Linux zijn er verschillende processen gelijktijdig in uitvoering. Een proces in uitvoering heeft CPU-tijd nodig om zijn instructies uit te voeren, een deel geheugen om de nodige data in te bewaren en het uitvoerbare gedeelte te laden, en afhankelijk van het doel van het proces ook andere resources zoals I/O.
8.2
Processen beheren 8.2.1
ps
“ps” is een applicatie die de status weergeeft van alle processen die momenteel in uitvoering zijn. Je ziet al die processen met het bevel “ps -A”. Wil je enkel je eigen processen zien dan voer je gewoon “ps” of “ps -U jouwloginnaam” uit. Een voorbeeld van de output van “ps -U gebruiker”.
gebruiker@naam−pc : ˜ $ ps PID TTY TIME 10477 ? 00:00:00 10550 ? 00:00:00 10551 ? 00:00:00 10554 ? 00:00:00 10555 ? 00:00:00 10557 ? 00:00:01 10560 ? 00:00:00 10562 ? 00:00:00 10569 ? 00:00:00 10570 ? 00:00:00
−U g e b r u i k e r CMD gnome−s e s s i o n ssh−agent ssh−agent dbus−launch dbus−daemon gconfd −2 gnome−k e y r i n g −d gnome−s e t t i n g s − sh esd
UNIT 8. PROCESSEN EN BOOTEN
10574 10579 10582 10585 10586 10589 10590 10593 10595 10600 10601 10602 10649 10651 10678 10684 10694 10710 10715 10720 10734 10737 10759 10762 10767 10770 10772 10781 10782 10854 10855 10856 11089 11383
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? pts /0 ? ? pts /1 ? pts /1
113
00:00:00 00:00:02 00:00:01 00:00:02 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:02 00:00:01 00:00:00 00:00:00 00:00:00 00:00:00 00:00:17 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00
compiz gnome−panel gtk −window−deco compiz . r e a l nautilus bonobo− a c t i v a t i gnome−volume−ma b l u e t o o t h −apple gnome−v f s −daemo nm−a p p l e t gnome−power−man gnome−cups−i c o n mapping−daemon trashapplet cpufreq −a p p l e t / u s r / b i n / Webild deskbar−a p p l e t gnome−screensav e v o l u t i o n −data− e v o l u t i o n −excha gnome−n e t s t a t u s mixer applet2 kile kdeinit dcopserver klauncher kded kio file bash xfce4 −t e r m i n a l gnome−pty −helpe bash kio uiserver ps
Je ziet van links naar recht:
• het PID-nummer van elk proces • op welke terminal het gestart is • hoeveel tijd de werking van het proces al in beslag heeft genomen. • naam van het programma Een volledige overzicht van alle processen krijg je met ps -aux. Door middel van de optie “-f” kan ps ook de hierarchie van processen tonen. Een fragment voor gebruiker ‘koen’.
UNIT 8. PROCESSEN EN BOOTEN
root 7307 0 . 0 0 . 2 12304 1408 ? Ss 10:29 0:00 / u s r / s b i n / gdm root 7310 0 . 0 0 . 5 12816 2544 ? S 10:29 0:00 \ / u s r / s b i n / gdm root 7313 2 . 9 14.1 94796 71928 t t y 7 Rs+ 10:29 1:05 \ / u s r / X11R6 / b i n / X : 0 −b r − a u d i t 0 −auth / v a r / l i b / gdm / : 0 . Xauth − n o l i s t e n t c p v t 7 koen 10477 0 . 0 2 . 4 31756 12504 ? S s l 10:32 0:00 \ / u s r / b i n / gnome−s e s s i o n koen 10550 0 . 0 0 . 1 4252 532 ? Ss 10:32 0:00 \ / u s r / b i n / ssh−agent / u s r / b i n / ssh−agent / u s r / b i n / dbus−launch − − e x i t −w i t h −s e s s i o n / u s r / b i n / gnome−s e s s i o n koen 10551 0 . 0 0 . 1 4256 532 ? Ss 10:32 0:00 \ / u s r / b i n / ssh−agent / u s r / b i n / dbus−launch − − e x i t −w i t h −s e s s i o n / u s r / b i n / gnome−s e s s i o n koen 10574 0 . 0 0 . 0 1716 492 ? S 10:33 0:00 \ / b i n / sh / u s r / b i n / compiz − −sm− c l i e n t −i d d e f a u l t 0 gconf koen 10582 0 . 1 2 . 0 18344 10328 ? S 10:33 0:02 | \ gtk −window−d e c o r a t o r koen 10585 0 . 1 2 . 2 17972 11612 ? S 10:33 0:03 | \ / u s r / b i n / compiz . r e a l − −no−f b o − −i g n o r e − desktop −h i n t s − −sm− c l i e n t −i d d e f a u l t 0 gconf gconf koen 10579 0 . 1 5 . 4 99328 27808 ? S 10:33 0:02 \ gnome−panel − −sm− c l i e n t −i d d e f a u l t 1 koen 10586 0 . 0 4 . 2 126020 21404 ? R 10:33 0:00 \ n a u t i l u s − −no−d e f a u l t −window − −sm− c l i e n t −i d default2
Hier is bijvoorbeeld heel duidelijk de verschillende kind-processen van GDM (Gnome Display Manager) te zien. Standaard is GDM het welkomstscherm in ubuntu waar je je als gebruiker kan inloggen om zo de gnome-omgeving op te starten. Een meer overzichtelijke structuur krijg je met het commando ‘pstree’. Door de output van ps te pijpen met grep kun je zoeken op gebruiker en programma. gebruiker@naam−pc : ˜ $ ps aux | grep bash
Toont je de ps voor enkel bash
8.2.2 Achter- en voorgrond Als je in een terminal een opdracht intypt (bv. ps), zal de shell ervoor zorgen, dat die opdracht uitgevoerd wordt. Wat dan gebeurt, is het volgende:
• Je typt een opdracht achter de shell-prompt.
114
UNIT 8. PROCESSEN EN BOOTEN
• De shell zorgt ervoor dat de opdracht uitgevoerd wordt. • Als de opdracht klaar is zorgt de shell ervoor, dat de prompt weer verschijnt, zodat je de volgende opdracht kunt geven. Gedurende de tijd, dat de ingetypte opdracht uitgevoerd wordt, gaat de shell in ”slaap-toestand”. Dit kun je zien als je een ps uitvoert: op de regel met bash zie je als status een S. De opdracht ps heeft gedurende de uitvoering van zijn taak even de regie in handen gekregen. De shell krijgt die regie weer terug als ps klaar is. Het kan ook anders gezegd worden: de shell (bash) wordt even op de achtergrond gezet, terwijl ps op de voorgrond zijn werk mag doen. Er kan, per terminal, nor´ proces tegelijk op de voorgrond aktief zijn. Alle andere maal gesproken maar e´ en processen doen op de achtergrond hun werk. Het zou natuurlijk GNU/Linux niet zijn als je dit gedrag niet kan aanpassen. Dat je dus in een terminal een commando uitvoert en dat dit naar de achtergrond wordt verplaatst terwijl je terminal weer alle ‘aandacht’ krijgt. Met een & (ampersand) is het zo uitgevoerd:
gebruiker@naam−pc : ˜ $ g e d i t &
De tekstverwerker gedit wordt opgestart als achtergrondproces van de terminal. Na het uitvoeren, krijg je opnieuw de regelinvoer. Een nieuw commando kan worden ingetypt. Processen die opgestart zijn vanuit de terminal worden ‘jobs’ genoemd. Zo kan in een terminal verschillende ‘jobs’ worden opgeroepen en uitgevoerd. Met de opdracht ‘jobs’ krijg je een overzicht van de uit deze terminal gestarte processen. De jobs worden ge¨ındentificeerd door een jobnummer, niet via een PID.
gebruiker@naam−pc : ˜ $ j o b s [1] − Done evince & [ 2 ] + Running gedit &
¨ Twee jobs werden opgestart vanuit deze terminal. De job ‘evince’ werd beeindigd. Enkel ‘gedit’ is nog actief. Jobs op de achtergrond kun je niet met Ctrl-C killen of met Ctrl-Z tijdelijk buiten actie zetten. Met ‘fg jobnummer’ kun je achtergrondprocessen op de voorgrond brengen en ze met de toetsencombinaties stoppen, buiten werking stellen. Een simpele opdracht als :
gebruiker@naam−pc : ˜ $ %2
doet hetzelfde. Job nummer 2 wordt op de voorgrond geplaatst.
115
UNIT 8. PROCESSEN EN BOOTEN
Merk op: jobs zijn een product van de shell en niet van de kernel.
8.2.3
top
Het bevel ‘top’ geeft een overzicht van de actieve processen weer . Dit overzicht wordt elke seconde geactualiseerd, in plaats van de momentopname die ps levert. Meer informatie vind je in de man pagina’s van top: man top. Op vele systemen is ook een grafische versie beschikbaar van top, zoals bijvoorbeeld gnome-systemmonitor in de GNOME desktop.
Figuur 8.1: Het tabblad ‘Processen’ in gnome-systeem-monitor
Met gnome-systeem-monitor kun je veel gegevens over lopende processen op¨ vragen. Een proces kun je ook beeindigen. Via de rechtermuisknop kun je makkelijk prioriteit instellen en extra gegevens over geheugenbeheer en geopende bestanden opvragen.
8.2.4
Aardige processen
Processen nemen processortijd in. In principe geeft de kernel aan elk proces dezelfde prioriteit. Sommige processen slokken heel wat naar binnen en kunnen de vlotte werking van het systeem ondermijnen. Sommige processen moeten het dus wat kalmer aanpakken. Het programma ‘nice’ is hierbij je vriend. Hiermee kun je aangeven hoe ‘aardig’ een proces moet zijn voor de andere processen. De waarde die je aan nice kunt geven ligt tussen de -20 en 19. Normaal wordt een proces met een ‘aardigheidsfactor’ van 0 opgestart. Hoe hoger de waarde van nice, hoe lager de prioriteit. Een ‘gewone’ gebruiker kan de nice-waarde van een proces alleen maar verhogen (het proces dus een lagere prioriteit geven). Root is de enige die een proces een hogere prioriteit kan geven.
gebruiker@naam−pc : ˜ $ n i c e t r e e /
116
UNIT 8. PROCESSEN EN BOOTEN
Start het programma tree / met de standaard nice-waarde van 10. Je kan natuurlijk ook de rangorde wijzigen met renice. Hiervoor heb je de PID van het proces nodig.
gebruiker@naam−pc : ˜ $ r e n i c e 12 3456
Plaatst het programma met PID 3456 op nice waarde 12.
8.2.5 Kill Met ‘kill’ kun je een signaal sturen naar processen. Belangrijk hierbij om te weten is het PID nummer van de processen waar je een signaal wil naar sturen. Standaard wordt ‘kill’ gebruikt om een TERM-signaal te sturen. Hierbij wordt aan het ¨ proces gevraagd om zichzelf te beeindigen. Wil je de botte bijl gebruiken om het proces te vernietigen, dan maak je gebruik van een
gebruiker@naam−pc : ˜ $ k i l l −9 PID−nummer
Dit is uiteraard als elke andere methode om te stoppen gefaald heeft. Er zijn meerdere signalen te communiceren naar processen toe. ‘man kill’ helpt je hierbij. Jobs vermoord je door een extra % voor het jobnummer te plaatsen.
gebruiker@naam−pc : ˜ $ k i l l %2
Zo vermoord je jobnummer 2.
8.3
GNU/Linux booten Als je je PC inschakelt, gebeuren er heel wat processen vooraleer je aan inlogscherm komt. Bij het opstarten checked het BIOS naar de aanwezige hardware en na een ganse reeks controles laadt het de eerste sector van je harde schijf: de MBR. In de MBR is je bootloader ge¨ınstalleerd. Bij ubuntu is dit standaard grub maar dit kan je aanpassen. Vervolgens laadt uw bootloader de kernel image die u hebt aangegeven in het geheugen. Daarna vertelt het de processor om de kernel uit te voeren. Wanneer de kernel is geladen en uitgevoerd, worden alle kernel specifieke onderdelen en taken ge¨ınitialiseerd en wordt het init-proces gestart. Dit proces zorgt ervoor dat alle bestandssystemen (als gedefinieerd in /etc/fstab) aangekoppeld en klaar gemaakt worden. Daarna voert het verschillende scripts uit die terug
117
UNIT 8. PROCESSEN EN BOOTEN
te vinden zijn in /etc/init.d. Deze scripts starten de hulpmiddelen die nodig zijn om uw systeem volledig te starten. Als alle scripts zijn uitgevoerd, activeert init de terminals (in de meeste gevallen alleen de consoles die achter Alt-F1, Alt-F2, etc zijn verborgen) met agetty dat als toepassing wordt mee gestart, zodat u kunt inloggen via login op een niet virtuele terminal.
8.3.1
GRUB
GNU GRUB is een BootLoader voor meerdere platformen. Het is een poging om een bootLoader te maken voor PC-compatible machines die behalve de mogelijkheid heeft om gebruiksvriendelijk te zijn voor de niet technisch ingestelde gebruiker ook uitermate flexibel is om experts in diverse omgevingen van dienst te zijn. Het belangrijkste deel van GRUB begrijpen, is begrijpen hoe GRUB harde schijven en partities noemt. Uw Linux partitie /dev/hda1 (voor IDE schijven) of /dev/sda1 (voor SATA/SCSI schijven) heet waarschijnlijk (hd0,0) onder GRUB. Vergeet niet de haakjes rond hd0,0 - ze zijn vereist. Harde schijven tellen liever vanaf nul dan vanaf “a” en partities beginnen bij nul ´ Merk ook op dat met hd apparaten alleen harde schijven worin plaats van e´ en. den geteld en geen atapi-ide apparaten zoals cdrom spelers en branders. Ook wordt hetzelfde gebruikt bij SCSI schijven. (Normaal gesproken krijgen ze hogere nummers dan ide schijven tenzij de bios is ingesteld om vanaf SCSI schijven op te starten.) Als u de BIOS instelt om van een andere harde schijf op te starten, wordt die harde schijf gezien als hd0. Via /boot/grub/menu.list kun je GRUB instellen. Dankzij de documentatie in het document kom je al snel op de hoogte van de diverse opties. Veel gevraagde features zijn het veranderen van de boot-volgorde (die is in te stellen door de waarde van ‘default’ aan te passen en het aantal titels te tellen te beginnen bij nul) en het invoegen van een splashscreen 1 .
Na het instellen voer je een simpele :
gebruiker@naam−pc : ˜ $ sudo update−grub
uit om deze te activeren. 1
http://www.ubuntu-forums.nl/kb.php?mode=article&k=5
118
UNIT 8. PROCESSEN EN BOOTEN
8.3.2
119
Kernel
Grub slingert je kernel in het geheugen zodat deze geladen en uitgevoerd wordt. De kernel pakt zichzelf uit en kopieert dit naar een RAM-disk. Hier voert het de eerste bewerkingen door om nadien over te schakelen naar het aanwezige systeem op harde schijf. Via het commando ‘dmesg’ kun je achterhalen wat je kernel bij het booten heeft uitgespookt. Je zal opmerken dat de kernel heel wat device-drivers initialiseert. Dit zijn speciale ‘devices’ die contact tussen de kernel en de gebruiker mogelijk maken (door de tty’s) maar ook input-output regelen naar de harde schijven, scherm, netwerkkaart, USB-stick, enz.
8.3.3
init
Nadat de kernel zich heeft ge¨ınitialiseerd, wordt init opgestart. Nadat de kernel init heeft opgestart, start het nooit een ander programma meer. De kernel wordt een manager en een provider, geen actief programma. Dus om te zien wat de computer aan het doen is nadat de kernel is opgestart, zullen we init moeten bestuderen. init doorloopt een gecompliceerde opstartreeks die niet voor alle computers gelijk is. Procedure : 1. De kernel zoekt op diverse plaatsen naar init en draait de eerste die gevonden wordt. 2. init draait /etc/rcS.d 3. init doet een aantal noodzakelijke dingen en voert vervolgens alle scripts uit van het standaard-runlevel Het programma init wordt geconfigureerd door /etc/inittab .
A
Runlevels
In /etc/inittab wordt onder andere de verschillende run-levels gedefinieerd voor het systeem.
# # # #
Runlevel 0 i s Runlevel 1 i s R u n l e v e l s 2−5 Runlevel 6 i s
halt . s i n g l e −user . are m u l t i −user . reboot .
UNIT 8. PROCESSEN EN BOOTEN
120
Runlevels zijn diverse service-niveaus waarin je computer kan werken. Zo kun je dus heel snel veranderen van bijvoorbeeld een desktop-pc naar een server-pc via runlevels (hoewel dit niet standaard is gedefinieerd in ubuntu). Op die verschillende runlevels draaien verschillende diensten. Zo zou een desktop-pc uiteraard een grafische server moeten draaien terwijl dit voor een server-pc niet nodig is. Deze laatste heeft dan weer nood aan bijvoorbeeld een webserver, ftp-server, enz. Allemaal services die moeten worden opgestart of afgesloten. Door je runlevel zodanig te organiseren, kun je dan met een simpel commando als ‘init nummerrunlevel’ overschakelen. Een standaard ubuntu desktop-pc maakt gebruik van runlevel 2. Dit definieert een multi-user systeem met grafische omgeving. De aandachtige lezer heeft opgemerkt dat er twee runlevels voorbehouden zijn aan het afsluiten en rebooten van het systeem.
gebruiker@naam−pc : ˜ $ sudo i n i t 6
Heeft als gevolg dat de reboot-procedure wordt uitgevoerd.
B
/etc/rc2.d
Init voert het script /etc/init.d/rc uit. Dit handelt vervolgens de verschillende scripts ¨ af die de verschillende runlevels definieren. Meer bepaald leest het achtereenvolgens de scripts (of beter de symbolische links naar de scripts die staan in /etc/init.d/) uit die in /etc/rcN.d staan (waar N het nummer is van een runlevel). In zo’n runlevel map staan dus verwijzingen naar scripts in /etc/init.d. Staat er in hun naam een ‘S’ dan wordt de service opgestart. Staat er een ‘K’ dan wordt deze gestopt. Het nummer dat ook is opgenomen, bepaalt de volgorde waarin het wordt opgestart. Uiteraard neemt een runlevel de services niet over van een ander runlevel. De scripts in /etc/init.d zijn heel eenvoudig qua structuur. Hun argumenten bestaan meestal uit ‘start’, ‘stop’ of ‘reload’ van de services. Bijvoorbeeld :
gebruiker@naam−pc : ˜ $ sudo / e t c / i n i t . d / gdm r e s t a r t
Heeft als gevolg dat de grafisch loginmanager opnieuw wordt opgestart. Omdat dit proces meerdere kind-processen met zich meedraagt (waaronder de volledige gnome-omgeving) staat dit gelijk aan het bruusk stoppen van je grafische omgeving om opnieuw in te loggen. Een lijst van enkele veelgebruikte systeem-diensten: inetd, xinetd
netwerk-diensten.
UNIT 8. PROCESSEN EN BOOTEN
C
121
atd, cron, anacron
diensten die op bepaalde tijdstippen moeten lopen.
udev
automatisch mounten devices (harde schijven, cd’s, enz)
sshd, telnetd
ondersteuning communicatieftpd,
lpd, cups
printer-diensten.
syslogd, klogd
loggen van debug-boodschappen van programma’s en kernel-taken.
van
verschillende
Configuratie
Configuratie is heel eenvoudig. Je kan manueel de levels gaan ordenen door ‘S’ en ‘K’ te verwisselen, het volgnummer aan te passen of de naam te wijzigen. Weet echter heel goed wat je aan het doen bent. Grafisch is het mogelijk om services aan- uit te vinken via menu Systeem/Beheer/Services.
Figuur 8.2: Grafisch service-beheer
Een handige tool is ook ‘sysvconfig’ om runlevels te editen.
UNIT 8. PROCESSEN EN BOOTEN
8.3.4
122
Upstart
Het systeem om GNU/Linux te booten werd door ubuntu.com onlangs gewijzigd2 . Bedoeling is om het ganse proces nog meer instellingsmogelijkheden te geven 3 . Voorlopig kan upstart overweg met sysV maar het is de bedoeling dat op middellange termijn deze vervangen wordt. Gelukkig is voor ons upstart compatibel met het ‘oude’ systeem van SysV.
2
Zie de website: /http://upstart.ubuntu.com/ en de specificaties : http://upstart.ubuntu.com/misc/upstart.pdf 3 voor een uitgebreide bespreking zie : http://www.netsplit.com/blog/articles/2006/08/26/upstartin-universe
UNIT 8. PROCESSEN EN BOOTEN
Oefening: toon een hierarchisch overzicht van alle lopende processen met het commando ‘ps -e - -forest’. Wat is het eerste programma met PID 1? Welk programma is er actief op TTY2? Log in op virtuele console 2 (via Ctrl Alt F2) Keer terug naar gnome (CTRL Alt F7) opnieuw ps -e - -forest Welk programma is er nu actief op TTY2?
Welk programma is er gekoppeld aan GDM? Kill het programma GDM. Wat gebeurt er?
123
UNIT 8. PROCESSEN EN BOOTEN
124
9 Op het net
Als men netwerk zegt dan denken de meesten onder ons aan TCP/IP. Het meest bekende en gebruikte protocol om je te connecteren met internet en andere computers. Er zijn echter nog heel wat meer protocollen: FTP, telnet, draadloos, torrent, P2P enzovoort. In een eerste beweging focussen we ons op TCP/IP voor een kabelverbinding, kijken hoe je de hardware aan de praat krijgt en welke configuraties hier hun dienst bewijzen.
9.1
Plug jezelf in Je hebt meerdere zaken nodig vooraleer je op je gemak kan surfen op het WWW. Je beschikt over een PC met ethernetkaart die vervolgens gekoppeld wordt aan het modem van je kabelleverancier. Verwacht wordt dat de leverancier zijn gedeelte van het werk goed vervult. Om een connectie te maken, verstuurt je ethernetkaart een DHCP-aanvraag die het vervolgens krijgt van je provider. Deze heeft je naast een IP-nummer ook de IP-adressen van de DNS-servers. Heb je een klein netwerkje dan is er ook nood aan een gateway. Voor alle duidelijkheid: beschik je over kabel en heb je deze ingeplugd bij de installatie van ubuntu: geen probleem. Alle configuratie is reeds gebeurd en je kan zonder problemen op het netwerk. Maar dat kan ons niet storen om het netwerk eens uit te pluizen.
125
UNIT 9. OP HET NET
9.1.1
126
Wat heb je nodig om te kunnen netwerken?
Voor de theoretische uitleg verwijzen wij graag door naar andere media.
• Je IP-adres: een statisch adres of verkregen via DHCP. Heb je geen netwerkmogelijkheid dan is het aangeraden om je eigen systeem als loopback. 1 in te stellen (sommige programma’s vereisen TCP/IP). Je loopback-IP is 127.0.0.1
• IP van de DNS-server : een statisch adres of verkregen via DHCP. In een klein netwerk, achter een router/gateway:
• Je subnet-mask: voor de diverse soorten subnetklassen • je subnet-adres: aangepaste adres naar je subnetklasse. Is je IP-adres 134.12.34.45 dan is je subnet-adres (in geval van broadcast 255.255.255.0) hoogstwaarschijnlijk 134.12.34.O. Loopback heeft geen subnet-adres.
• broadcast-adres: op welk adres verzend je broadcast pakketjes binnen je subnet. Dit is gelijk aan je subnet-adres met 255 voor het host-gedeelte.
• IP van je gateway: Is het adres voor de router/server die je verbindt met de buitenwereld.
9.1.2 A
Je netwerk grafisch configureren
Network-admin
Liefhebbers van grafische configuratietools zullen hun hartje ophalen met networkadmin. Te openen via Systeem/Beheer/Netwerk. Daar is het heel gemakkelijk om manuel DNS, hostname, gateway enz. in te voeren. Bovendien kan je werken met diverse profielen zodat het makkelijk over te stappen is als je van netwerkinstellingen moet veranderen.
1
Loopback? Zijn voor computers die niet verbonden zijn aan een netwerk/internet. Toch vereisen sommige programma’s de aanwezigheid van TCP/IP.
UNIT 9. OP HET NET
127
Figuur 9.1: Grafische interface om snel je netwerkinstellingen aan te passen.
9.1.3
Een zorgeloze toekomst?
De linux-netwerkmogelijkheden zijn zich -zeker voor thuisgebruikers- op een interessante manier aan het ontwikkelen. Er komen protocollen en services uit die een pijnloze en quasi-automatische configuratie van klein thuisnetwerk in het vooruitzicht stellen. Twee sleutelprojecten die zich langzaam als standaard aan het vestigen zijn in linuxland: avahi en network-manager. avahi: plug in en het werkt . . . Je kan direct chatten, mailen, van een netwerkprinter gebruikmaken enz. De opzet achter avahi is om automatisch netwerkgegevens via open protocollen te verkrijgen. Avahi is een vrije zeroconf-implementatie en is reeds ge¨ıntegreerd in Gnome. network-manager is gericht op laptopgebruikers. Zo mag en gebruiker niet merken dat als je op een laptop een netwerkkabel inplugt, dat het draadloze netwerk wordt stopgezet ten voordele van de snellere verbinding. En omgekeerd als je de kabel ontkoppelt, dat de laptop overschakelt naar het draadloze netwerk. Network-manager doet een beroep op DBUS en HAL om informatie met betrekking tot je netwerkhardware te achterhalen en zo snel mogelijk werkende te krijgen.
9.1.4
Netwerken: back to basics
Uiteraard zijn we daar niet tevreden mee: wat gebeurt er op de achtergrond? Welke bestanden worden ingelezen/ aangepast?
A
Verkenning
Twee zaken zijn belangrijk om te netwerken onder linux: interfaces en routes. Welke interfaces zijn er werkzaam. Met het commando ‘ifconfig’ kunnen we dit achterhalen: gebruiker@naam−pc : ˜ $ i f c o n f i g eth0 L i n k encap : E t h e r n e t HWaddr 0 0 :C0: 9 F : FB: 8 F : 8C i n e t addr : 1 9 2 . 1 6 8 . 1 . 3 Bcast : 1 9 2 . 1 6 8 . 1 . 2 5 5 Mask :255.255.255.0 i n e t 6 addr : fe80 : : 2 c0 : 9 f f f : f e f b : 8 f 8 c / 6 4 Scope : L i n k UP BROADCAST RUNNING MULTICAST MTU:1500 M e t r i c : 1 RX packets :1804 e r r o r s : 0 dropped : 0 o v e r r u n s : 0 frame :0 TX packets :1428 e r r o r s : 0 dropped : 0 o v e r r u n s : 0 c a r r i e r :0
UNIT 9. OP HET NET
128
c o l l i s i o n s : 0 t x q u e u e l e n :1000 RX b y t e s :2184635 ( 2 . 0 MiB ) TX b y t e s :171016 ( 1 6 7 . 0 KiB ) I n t e r r u p t :20 eth1
L i n k encap : E t h e r n e t HWaddr 0 0 : 1 3 :CE: 8A : 7 4 :DE i n e t addr : 1 9 2 . 1 6 8 . 2 . 5 Bcast : 1 9 2 . 1 6 8 . 2 . 2 5 5 Mask :255.255.255.0 i n e t 6 addr : fe80 : : 2 1 3 : c e f f : fe8a : 7 4 de / 6 4 Scope : L i n k UP BROADCAST RUNNING MULTICAST MTU:1500 M e t r i c : 1 RX packets : 1 0 e r r o r s : 0 dropped : 0 o v e r r u n s : 0 frame : 0 TX packets : 7 e r r o r s : 0 dropped : 0 o v e r r u n s : 0 c a r r i e r : 0 c o l l i s i o n s : 0 t x q u e u e l e n :1000 RX b y t e s :1812 ( 1 . 7 KiB ) TX b y t e s :2914 ( 2 . 8 KiB ) I n t e r r u p t : 1 7 Base address : 0 xe000 Memory : b0002000− b0002fff
lo
L i n k encap : L o c a l Loopback i n e t addr : 1 2 7 . 0 . 0 . 1 Mask : 2 5 5 . 0 . 0 . 0 i n e t 6 addr : : : 1 / 1 2 8 Scope : Host UP LOOPBACK RUNNING MTU:16436 M e t r i c : 1 RX packets : 1 9 e r r o r s : 0 dropped : 0 o v e r r u n s : 0 frame : 0 TX packets : 1 9 e r r o r s : 0 dropped : 0 o v e r r u n s : 0 c a r r i e r :0 c o l l i s i o n s :0 txqueuelen :0 RX b y t e s :1067 ( 1 . 0 KiB ) TX b y t e s :1067 ( 1 . 0 KiB )
Wat kun je eruit halen:
• Welke hardware-interface actief is. Er zijn diverse interfaces: – Loopback: lo – Ethernet: eth0, eth1, . . . – Wi-Fi: wlan0, wlan1, wifi0, . . . – Token Ring: tr0, tr1, . . . – PPP: ppp0, ppp1, . . . Het toont aanvullend je uniek HW-adres.
• Welke data-laag er gebruikt wordt: Link encap. • Wat je netwerk-laag is: inet staat voor IPV4, er is ook een IPv6 aanwezig. • het toont je ook de instelling van je transportlaag: je netwerkinstellingen. en ingestelde opties.
• aanvullende is er info over het aantal verzonden(TX) en ontvangen(RX) data-pakketjes. Iwconfig toont je de draadloze apparaten.
UNIT 9. OP HET NET
129
koen@thinkpad : ˜ $ i w c o n f i g lo no w i r e l e s s e x t e n s i o n s . eth0
no w i r e l e s s e x t e n s i o n s .
eth1
r a d i o o f f ESSID : ” b e l k i n 5 4 g ” Mode : Managed Frequency : 2 . 4 6 2 GHz Access P o i n t : 0 0 : 2 3 : 6 7 : 4A :CD: C1 B i t Rate : 0 kb / s Tx−Power= o f f S e n s i t i v i t y =8/0 Retry l i m i t :7 RTS t h r : o f f Fragment t h r : o f f Power Management : o f f L i n k Q u a l i t y : 0 S i g n a l l e v e l : 0 Noise l e v e l : 0 Rx i n v a l i d nwid : 0 Rx i n v a l i d c r y p t : 0 Rx i n v a l i d frag :0 Tx e x c e s s i v e r e t r i e s : 0 I n v a l i d misc : 0 Missed beacon : 0
irda0
no w i r e l e s s e x t e n s i o n s .
Nummer twee in de rij: welke route volgt mijn PC in een thuisnetwerk:
gebruiker@naam−pc : ˜ $ r o u t e −n K e r n e l IP r o u t i n g t a b l e Destination Gateway Ref Use I f a c e 192.168.2.0 0.0.0.0 0 eth1 192.168.1.0 0.0.0.0 0 eth0 0.0.0.0 192.168.1.1 0 eth0
B
Genmask
Flags M e t r i c
255.255.255.0
U
0
0
255.255.255.0
U
0
0
0.0.0.0
UG
0
0
Instellen van interfaces en routes
Het commando route en ifconfig zorgen ervoor dat een interface en route toegankelijk wordt voor de kernel netwerklaag.
i f c o n f i g i n t e r f a c e IP−adres o p t i e s
Het is aan te raden om met de opties ook het netmask en broadcast mee te geven. Zo kun je met
gebruiker@naam−pc : ˜ $
UNIT 9. OP HET NET
i f c o n f i g eth0 : 1 1 9 2 . 1 6 8 . 1 . 1 0 netmask 2 5 5 . 2 5 5 . 2 5 5 . 0 b r o a d c a s t 192.168.1.255
Je netwerkkaart een statisch adres opgeven Je stelt de route in naar de default gateway met
gebruiker@naam−pc : ˜ $ r o u t e add d e f a u l t gw 1 9 2 . 1 6 8 . 1 . 1
Maak je gebruik van dhcp, dan laat je de dhclient automatisch de nodige zaken invullen. (vergeet niet om eerst de dhclient te installeren ;-) )
gebruiker@naam−pc : ˜ $ d h c l i e n t eth0
Merk op: dhclient is heel gevoelig voor het manueel opstarten. Het is immers de gewoonte dat het maar 1 keer bij het opstarten gebeurt. Meerdere processen van dhclient kunnen worden opgestart en kunnen met elkaar in conflict komen. Daarom is het beter om dhclient eerst uit te schakelen vooraleer je deze manueel opstart. Een “sudo killall dhclient” klaart de klus.
C
Netwerkinstellingen
Het systeem bewaart de instellingen die je hebt aangebracht deze kun je terugvinden in /etc/network/interfaces . Deze worden bij het booten opgestart als ‘auto ethX’ zijn ingevuld. De aandachtige lezer heeft opgemerkt dat de gateway wel wordt opgegeven maar niet de DNS. Als je werkt met dhcp is dit uiteraard geen probleem: het wordt automatisch ingevoerd. Werk je manueel dan moet je /etc/resolv.conf handmatig aanpassen.
gebruiker@naam−pc : ˜ $ c a t / e t c / r e s o l v . c o n f nameserver 1 9 5 . 1 3 0 . 1 3 0 . 5 nameserver 195.130.130.133 search t e l e n e t . be
D
Enkele leuke opties
/etc/hosts Gebruik je om IP-namen om te zetten naar hostnamen. Dit kan heel handig zijn in
130
UNIT 9. OP HET NET
131
kleine netwerken. (het speelt een lokale variant van wat DNS doet) maar kan een sleur worden als de namen of IP-adressen worden veranderd. Het is zeker niet aan te raden als je je netwerk via DHCP instelt. hostname Met het hostname-commando kun je de naam van je eigen PC instellen.
9.1.5 A
Troubles?
netstat
Met netstat -rn kun je de routes-tabel opvragen. gebruiker@naam−pc : ˜ $ n e t s t a t −r n K e r n e l IP r o u t i n g t a b l e Destination Gateway Genmask Window i r t t I f a c e 192.168.1.0 0.0.0.0 255.255.255.0 0 eth0 0.0.0.0 192.168.1.1 0.0.0.0 0 eth0
B
Flags
MSS
U
0 0
UG
0 0
Ping
Met ping verstuur je enkele pakketjes richting een IP-adres en ziet hoe de respons erop is. Zo kom je te weten of er pakketjes uitvallen, een slechte verbinding is of niet. Merk op: sommige servers antwoorden niet op ping . . .
C
traceroute
Met traceroute kun je route opvragen die de pakketjes afleggen op weg naar de host. Zo kun je problemen detecteren die op het WWW zich voordoen. gebruiker@naam−pc : ˜ $ t r a c e r o u t e www. google . be t r a c e r o u t e : ” be ” bad v a l u e f o r packet l e n g t h koen@thinkpad : ˜ $ t r a c e r o u t e www. google . be t r a c e r o u t e : Warning : www. google . be has m u l t i p l e addresses ; u s i n g 216.239.59.104 t r a c e r o u t e t o www. l . google . com ( 2 1 6 . 2 3 9 . 5 9 . 1 0 4 ) , 30 hops max , 40 b y t e packets 1 g r o o t ( 1 9 2 . 1 6 8 . 1 . 1 ) 0.127 ms 0.098 ms 0.094 ms 2 dD5E07601 . access . t e l e n e t . be ( 2 1 3 . 2 2 4 . 1 1 8 . 1 ) 24.831 ms 27.832 ms 19.335 ms
UNIT 9. OP HET NET
3 dD5E0FC41 . access . t e l e n e t . be ( 2 1 3 . 2 2 4 . 2 5 2 . 6 5 ) 5.438 ms 8.689 ms ∗ 4 dD5E0FD49 . access . t e l e n e t . be ( 2 1 3 . 2 2 4 . 2 5 3 . 7 3 ) 37.890 ms 11.122 ms 6.189 ms 5 dD5E0FD15 . access . t e l e n e t . be ( 2 1 3 . 2 2 4 . 2 5 3 . 2 1 ) 7.781 ms 12.272 ms ∗ 6 dD5E0FD6E . access . t e l e n e t . be ( 2 1 3 . 2 2 4 . 2 5 3 . 1 1 0 ) 13.259 ms 4.642 ms 6.165 ms 7 Level3 −Telenet −D u s s e l d o r f ( 6 2 . 6 7 . 3 8 . 1 4 9 ) 50.488 ms 13.727 ms 14.681 ms 8 ∗ ae −32−54.ebr2 . D u s s e l d o r f 1 . Level3 . n e t ( 4 . 6 8 . 1 1 9 . 1 2 6 ) 54.022 ms ae −31−55.ebr1 . D u s s e l d o r f 1 . Level3 . n e t ( 4 . 6 8 . 1 1 9 . 1 5 8 ) 23.555 ms 9 ae −2. ebr1 . Amsterdam1 . Level3 . n e t ( 4 . 6 9 . 1 3 3 . 8 9 ) 38.536 ms 26.202 ms 58.069 ms 10 ae −1−100.ebr2 . Amsterdam1 . Level3 . n e t ( 4 . 6 9 . 1 3 3 . 8 6 ) 39.637 ms ae −2. ebr1 . Amsterdam1 . Level3 . n e t ( 4 . 6 9 . 1 3 3 . 8 9 ) 16.749 ms ae −1−100.ebr2 . Amsterdam1 . Level3 . n e t ( 4 . 6 9 . 1 3 3 . 8 6 ) 22.998 ms 11 ae −1−100.ebr2 . Amsterdam1 . Level3 . n e t ( 4 . 6 9 . 1 3 3 . 8 6 ) 23.847 ms ∗ ae −2. ebr2 . London1 . Level3 . n e t ( 4 . 6 9 . 1 3 2 . 1 3 3 ) 25.111 ms 12 ae −2. ebr2 . London1 . Level3 . n e t ( 4 . 6 9 . 1 3 2 . 1 3 3 ) 28.034 ms ae −21−54.car1 . London1 . Level3 . n e t ( 4 . 6 8 . 1 1 6 . 1 1 1 ) 18.547 ms ae −21−56.car1 . London1 . Level3 . n e t ( 4 . 6 8 . 1 1 6 . 1 7 5 ) 16.888 ms 13 195.50.118.210 ( 1 9 5 . 5 0 . 1 1 8 . 2 1 0 ) 42.065 ms ae −21−54.car1 . London1 . Level3 . n e t ( 4 . 6 8 . 1 1 6 . 1 1 1 ) 21.012 ms 195.50.118.210 ( 1 9 5 . 5 0 . 1 1 8 . 2 1 0 ) 35.328 ms 14 7 2 . 1 4 . 2 3 8 . 2 4 9 ( 7 2 . 1 4 . 2 3 8 . 2 4 9 ) 28.048 ms 29.407 ms 32.848 ms 15 ∗ 6 6 . 2 4 9 . 9 5 . 1 0 7 ( 6 6 . 2 4 9 . 9 5 . 1 0 7 ) 48.038 ms 38.931 ms 16 64.233.174.185 ( 6 4 . 2 3 3 . 1 7 4 . 1 8 5 ) 50.878 ms 48.861 ms 41.066 ms 17 64.233.174.185 ( 6 4 . 2 3 3 . 1 7 4 . 1 8 5 ) 41.621 ms 216.239.49.114 ( 2 1 6 . 2 3 9 . 4 9 . 1 1 4 ) 44.184 ms 78.474 ms 18 216.239.49.114 ( 2 1 6 . 2 3 9 . 4 9 . 1 1 4 ) 107.758 ms gv−i n −f104 . google . com ( 2 1 6 . 2 3 9 . 5 9 . 1 0 4 ) 38.810 ms 46.679 ms
9.1.6 Grafische netwerktools De WIM bestaat als gnome-nettool die nog leuke extra’s biedt als finger, whois, enz.
132
UNIT 9. OP HET NET
133
Figuur 9.2: Grafische variant voor diverse handige netwerktools
9.2
SSH SSH garandeert de vertrouwelijke en correcte data-overdracht tussen de twee computers via encryptie en message authentication codes (MACs). Een bekende toepassing van SSH is een login op een remote machine en vervolgens opdrachten uit te voeren, maar er worden ook tunneling, doorgeven van TCP poorts en X11 verbindingen ondersteund. Verder kunnen bestanden uitgewisseld worden via SFTP of SCP protocollen. Wat heb je nodig? openssh-client om in te kunnen loggen op een pc waar de openssh-server is ge¨ınstalleerd. Uiteraard moet de server als service zijn opgestart om anderen te laten inloggen op je pc.
9.2.1
Inloggen op een andere pc
gebruiker@naam−pc : ˜ $ ssh gebruiker@192 . 1 6 8 . 1 . 1
Je bent nu ingelogd op de remote pc. Nu kun je niet-grafisch commando’s uitvoeren. De andere gebruikers merken je aanwezigheid op door een simpel ‘w’commando.
9.2.2 Grafische programma’s opstarten Beschikt de remote machine over een X-server? Dan kan je grafische programma’s opstarten door in te loggen met de optie -X.
UNIT 9. OP HET NET
134
gebruiker@naam−pc : ˜ $ ssh −X gebruiker@192 . 1 6 8 . 1 . 1
Het invoeren van bijv. het commando ‘firefox’ start de webbrowser op de remote machine op en brengt dit beeld naar je lokale pc. Uiteraard zal als je een bestand wil opslaan, dit niet op je lokale pc gebeuren maar op de PC waar firefox is opgestart. Merk ook op dat alle kind-processen die worden opgestart ook grafisch zullen worden overgebracht. Een pdf openen in firefox open je pdf-viewer op afstand. Het beeld wordt ook overgedragen.
9.2.3 Grafisch bestandsbeheer op afstand ¨ Wist je dat je op een heel makkelijke manier bestanden kan kopieren tussen twee PC’s? Ga naar de invoermodus van nautilus (gnome-omgeving) en voer het volgend commando in : “ssh://
[email protected]”. Er wordt gevraagd om een passwoord (gebruik gnome-keyring als je makkelijk je paswoorden wil laten onthouden) en je krijgt de map-inhoud van de remote pc te zien. Met simpele selecteer- en sleepmuisklikken, kan je bestanden van je local naar de remote ¨ pc kopieren en omgekeerd.
Figuur 9.3: Vanuit Nautilus snel naar een remote harde schijf.
Een andere methode is om via het menu locaties/verbinden met server als diensttype ssh te selecteren en de nodige gegevens te verschaffen. Dit heeft als extra voordeel dat een desktop-icoon wordt aangemaakt zodat je voortaan snel verbinding kunt maken.
Figuur 9.4:
En ja, je kan zelfs via ssh remote harde schijven koppelen aan je bestandssysteem. Zoek het eens op. Kernwoord: Fuse.
UNIT 9. OP HET NET
¨ Wil je liever op een niet grafisch manier bestanden kopieren? Via scp kun je veilig bestanden en mappen overbrengen. Zie hiervoor ‘man scp.’
9.3
Enkele weetjes • VNC onder ubuntu is heel simpel. Installeer vino en via menu Systeem/ Voorkeuren/ Bureaublad op afstand kun je makkelijk je scherm vrijgeven. Op de remote pc voer je gewoon het command vncviewer xxx.xxx.xxx.xxx:nrscherm uit.
• Browsers: Probeer naast firefox misschien ook eens opera of waarom niet konqueror (KDE). Met ‘links’ kun je ook vanuit je virtuele terminal browsen. Het is dan ook heel makkelijk om met een terminal-muis te kunnen klikken. Met het pakket ‘gpm’ krijg je ook in de terminal een (blokjes)cursor.
• ftp-clients: gftp is de standaard client. Met nautilus kun je ook makkelijk selecteren en slepen. Vul hiervoor ftp://
[email protected] in. Een andere methode is om via het menu locaties/verbinden met server als diensttype ftp te selecteren.
• usenet: antwoorden nodig voor je problemen: gebruik ‘pan’ om be.comp.os.linux te bereiken.
• Pidgin is zowat de standaard om te ‘MSN’en. • Een alternatieve manier om de laatste iso’s van ubuntu te downloaden: bittorrent. Transmission, freeloader, bittornado-gui, ktorrent enz. zijn maar enkele grafische schillen voor torrent.
• Een ‘simpele’ firewall voor thuisgebruik: firestarter. Let wel op: firestarter vraagt om een nauwkeurige configuratie anders kan je zelfs de meest eenvoudige dingen als bijv. surfen op het internet niet meer.
135
UNIT 9. OP HET NET
136
10 Beheer van apparaten
10.1
Devices: concept De Linux kernel zorgt ervoor dat we hardware -apparaten, zoals harde schijven, aan kunnen spreken als waren het bestanden, de zgn. device-bestanden. Je vindt ze in de /dev-directory. Als je daar een ls -l geeft krijg je een wat afwijkende lijst van bestanden te zien. Zo heb je character-devices, block-devices als voornaamste spelers (maar er zijn bijvoorbeeld ook network-devices). Character-devices geven hun input per karakter weer (zoals toetsenbord, muis, . . . ). Block-devices geven hun data af per ‘blokje’. De kernel interageert met de hardware-apparaten door middel van deze devices. Vooraleer de juiste codes door de kernel worden uitgevoerd moet de kernel weten hoe hij de ontvangen data moet verwerken. De kernel heeft nood aan drivers die de digitale eentjes en nulletjes omzetten naar de juiste signalen. Deze drivers zijn ofwel: beschikbaar ‘native’ in de kernel of kunnen als module aan de kernel gekoppeld worden. Let op: de modules zijn afhankelijk van het versie-nummer van de kernel. Als je een module zelf compileert, dan moet je dit opnieuw doen als je van kernel verandert. Bovendien moet je deze modules aankoppelen (via insmod). Om dit te automatiseren kun je ze laten opstarten tijdens het booten. Stop ze gewoon in /etc/modules. De service /etc/init.d/modutils laadt ze dan tijdens het booten. Je kan ook modules afkoppelen via rmmod. Een overzicht krijg je via ‘lsmod’. De installatie van bijv. drivers via programma’s die je onder MS-windows gewoon was/bent, bestaat onder GNU/Linux niet. Alle interactie met de hardware begint met de kernel. Welke ‘drivers’ zitten in de kernel? Kijk eens na op http://www. kernel.org. Welke modules kun je bouwen? Zoek het eens op of de fabrikant van je hardware.
137
UNIT 10. BEHEER VAN APPARATEN
10.2
Daemons en servers Heel wat programma’s die ‘diensten’ aanbieden naar specifieke hardware zijn heuse servers die via een gigantische database honderden apparaten kunnen aanspreken. Het zijn servers: ze kunnen dus niet enkel voor een lokale machine ingezet worden maar bieden hun diensten via netwerk aan anderen aan. Uiteraard ken je servers die de inhoud van (gedeeltes van) je harde schijf delen. In GNU/Linux heb je ook servers voor printers, beeldscherm en geluid.
Er zijn ook op de PC heel wat daemons die uitkijken naar hardware-activiteit. Zo heb je daemons die USB in de gaten houden. Van zodra er een apparaat in de hardware geplugd wordt, stuurt deze de signalen door naar de kernel. Andere daemons merken de connectie op en zorgen voor de transfer van gegevens naar programma’s. Plug je je digitale fototoestel in je USB-slot, dan zorgt udev voor de aanmaak van een entry in /dev zodat de kernel kan communiceren met het apparaat. Udev is de device-managerdaemon voor GNU/Linux(kernel 2.6). Zijn primaire taak is om devices aan te maken en/of te verwijderen in /dev. Vroeger waren de devicenodes namelijk statisch en had men dus honderden devices in /dev. Udev zorgt ervoor dat er enkel devices worden aangemaakt die ook echt op het systeem aanwezig zijn. HAL zorgt voor het inlezen van de hardware-specificaties en biedt deze gegevens aan de software-programma’s aan. Om verder te gaan op het verhaal van de digitale camera: HAL zorgt ervoor dat het modelnummer en heel wat andere specifiaties worden opgezocht en vervolgens aangeboden aan een applicatia als gphoto. Gphoto hoef je dan niet meer zelf te configureren maar kan ’automatisch’ op basis van de gegevens van HAL de nodige instellingen laden zodat je foto’s direct ge¨ımporteerd kunnen worden. Wil je weten wat hal aan apparaten gevonden heeft?
gebruiker@naam−pc : ˜ $ l s h a l
Meer specifiek op zoek naar
• PCI-apparaten zoek met ‘lspci -v’ • usb : ‘lsusb’ • hardware : ‘sudo lshw | more’ Wens je het volledige plaatje: wens je dat bijv. je USB-stick automatisch aangekoppeld wordt als je deze inplugd: dan heb je nood aan gnome-volume-manager. Deze koppelt het vast aan je systeem en start nautilus op die de inhoud toont.
138
UNIT 10. BEHEER VAN APPARATEN
10.3
Printers en cups Cups is een printserver (in Ubuntu beschikbaar als ‘cupsys’) en kan heel wat aan: parallel, usb, serieel, netwerk, enz. Het is de standaard geworden voor printerbeheer in de meest uiteenlopende GNU/Linux-distro’s. Een groot stuk van zijn succes heeft het zeker te danken aan de duizenden printerprofielen die het heeft ge¨ıntegreerd uit andere projecten en de vlotte integratie van de ‘voorgangers’. Een nieuwe lokale printer toevoegen is heel makkelijk. Vanuit het menu Systeem / Beheer / Printers is het zo simpel als klikken op ‘nieuwe printer’ waarna de database met profielen en een makkelijke configuratie-programma wordt ingeladen. Verder configuratie van printer en cups-server doe je via Systeem/Beheer/Afdrukken.
Figuur 10.1: Vanaf Gnome 2.18 wordt de configuratie van printers en cups-server uitgebreider
Een andere methode voor toevoegen en configuratie is via de cups-daemon. Deze beschikt over een webgebaseerde interface. Open een browser en ga naar het adres : http://localhost:631 of http: //127.0.0.1:631 (zorg ervoor dat een firewall dit adres niet blokkeert)
139
UNIT 10. BEHEER VAN APPARATEN
Figuur 10.2: De cup-daemon onderhoudt ook een webinterface voor het toevoegen en beheren van printers.
Uiteraard kun je ook printers toevoegen om een niet-grafische manier. /etc/cups/printer.conf is de plaats om printers toe te voegen (als je weet wat je doet). Hoe gaat alles in zijn werk? Maak je een printer aan dan wordt deze toegevoegd aan /etc/cups/printer.conf en wordt een gelijknamige ppd (PostScript Printer Definition) aangemaakt in /etc/cups/ppd. Vanaf nu kan cups deze ppd gebruiken als hoogkwalitatieve printerfilter. Als je print dan komt je printopdracht in /var/spool/cups terecht. Via ‘lpstat’ kun je printopdrachten ‘in de wachtrij’ bekijken en aanpassen. Zo kun je ze verwijderen met het commando: cancel naam-van-de-printopdracht. Wil je dieper op systeemniveau werken en een kijkje werpen in de configuratiemogelijkheden van dpkg: ‘sudo dpkg-reconfigure cupsys’. Dit is aan te raden als je in een gedeelde windows-omgeving werkt.
10.4
Beelscherm(en) en Xorg Xorg-server, kortweg X of ook X11 genoemd, is een platform om onder verschillende besturingssystemen, zoals Unix en VMS, een grafische bediening te kunnen gebruiken. Het platform bestaat uit een server, de X Window-server, die het scherm beheert en zogenaamde clients die een verbinding maken met de Xserver en daaraan doorgeven wat er op het scherm moet komen. Op de meeste desktop-Unix-systemen draait een servercomponent lokaal, samen met een windowmanager, zodat een bureaublad, de taakbalk, menu’s en vensters afgebeeld kunnen worden. Elke PC heeft een console. Deze console bestaat uit een scherm, muis en toetsenbord (sommige hebben meerdere schermen, muizen en toetsenborden). De linux-kernel laadt bij het opstarten een tekst-gebaseerde video-driver samen met
140
UNIT 10. BEHEER VAN APPARATEN
een toetsenborddriver. Uiteindelijk laat het een tekst-gebaseerde terminal zien waaruit je dan commando’s kan doorgeven via een shell (bijv. Bash) en je kan tekst-gebaseerde programma’s starten.
Figuur 10.3: Beknopte, schematische voorstelling van de werking van de X-server
Wens je grafische elementen tevoorschijn toveren dan moet je een programma opstarten die weet hoe je bijv. een vierkant op je scherm kan tekenen. Het algemene programma hiervoor is X11, ook genoemd: de X-server. De X-server laadt een grafische videodriver, een toetsenborddriver en een muisdriver. Dan laat de X-server toe dat andere programma’s (de X-clients) een venster tekenen. Dit venster is een rechthoekig gebied waarin het programma wordt uitgevoerd en op het scherm verschijnt. X11 laat programma’s toe om de console te delen zodat er meerdere vensters op het scherm getoond kunnen worden. Als je de X-server opstart dan verandert het scherm in grijs en maakt een (grote) X-muiscursor. Dan wacht de server op X-clients die zich met de server willen verbinden. In tegenstelling tot Mac en Windows accepteert de X-server ook netwerkconnecties. Zo kun je inloggen vanop een andere PC en vanuit de server-PC grafische programma’s opstarten die dan op de client-PC worden getoond. Wanneer een X-client connectie maakt met de X-server dan spreekt het versie 11 van het X-protocol (vandaar de naam X11). Zo vertelt de client wat de server moet tekenen en de server vertelt aan de client wat welke input er van het toetsenbord en muis komt. Voor praktisch alle gangbare besturingssystemen, zoals Mac OS en Microsoft
141
UNIT 10. BEHEER VAN APPARATEN
142
Windows (waar het gebruikt wordt als Cyqwin/X), bestaan er X Window-servers.
Standaard wordt de X-server ge¨ınstalleerd tijdens de installatieprocedure van Ubuntu-desktop-editie. Via gdm wordt X en de bijhorende window- of desktopmanager opgestart. Wordt je kaart ondersteund? Zoek het eens op http://xorg.freedesktop.org/releases/X1
10.4.1
/etc/X11/xorg.conf
Er zijn niet veel goede configuratietools voor Xorg. Met het commando ‘sudo dpkg-reconfigure -phigh xserver-xorg’ krijg je de standaard configuratiebestand terug zoals die tijdens de installatie is aangemaakt. Je kan /etc/X11/xorg.conf ook manueel aanpassen. Een kleine basis helpt je snel op weg. ¨ Basisingredienten: /etc/X11/xorg.conf kent standaard enkel secties die ingelezen worden door de Xorg-server. Section “Files”
plaats van de lettertype-bestanden
Section “Module”
extra modules die je kan inladen. Heb je 3D-functionaliteit nodig dan moet je afhankelijk van je videokaart de optie glx en/of optie dri invoegen.
Section “InputDevice”
zijn er meerdere. Dit is de input die wordt gegenereerd door muis, toetsenbord, tablet, touchscreen, enz. Komt met een unieke ‘Identifier’ en ‘Driver’. Meerder opties kunnen meegegeven worden
Section “Device”
de grafische kaart. Opnieuw een unieke Identifier’ en ‘Driver’ maar ook een plaats op je bussysteem (voor het geval je met meerdere grafische kaarten werkt) Opnieuw : heel veel opties om in te stellen
Section “Monitor”
Het scherm. Handige opties zijn HorizSync en VertRefresh
Section “Screen”
De weergave van het beeld op je scherm. Geef op : een ‘Identifier’, het device, de monitor en stel hem dan in met de SubSection ”Display”
Section “ServerLayout”
hier wordt de server ‘samengesteld’: alle inputdevices en screens worden opgesomd.
Andere handige secties zijn : “Extensions” en “DRI”, modes. Wat de diverse opties zijn: man xorg.conf. Nieuw in Xorg7.2 is autoconfiguratie. Vanaf deze versie is een xorg.conf niet meer strikt noodzakelijk. Uiteraard heb je
UNIT 10. BEHEER VAN APPARATEN
dit voor geavanceerd beheer wel nodig. wil je weten welke fonts op je systeem zijn ge¨ınstalleerd: typ fonts:// in het invoerveld van nautilus-bestandsbeheer. Je krijgt een volledig overzicht van de aanwezige lettertypes.
Figuur 10.4: Overzicht van lettertypes in nautilus.
10.5
Audio en Alsa De Advanced Linux Sound Architecture, ofwel ALSA, levert audio- en MIDI-functionaliteit voor het Linuxbesturingssysteem. Sinds versie 2.6 van de Linuxkernel ondersteunt deze ALSA. Voorgaande kernels moeten worden voorzien van patches. ¨ • Efficiente ondersteuning van alle typen audio-interfaces, van geluidskaarten voor consumenten tot professionele multichannel audio-interfaces.
• Stuurprogramma’s (drivers) voor geluidskaarten die volledig modulair zijn. • SMP en thread-safe design. • Een gebruikersruimte bibliotheek (alsa-lib) die het programmeren van programma’s vereenvoudigt en die functionaliteit naar de kernel biedt.
• Ondersteuning voor de OSS API, waarmee binaire compatibiliteit geleverd wordt voor de meeste OSS-programma’s.
10.6
Scanner en SANE bron : http://www.freebsd-nl.org/doc/nl/scanners.html
143
UNIT 10. BEHEER VAN APPARATEN
Om prentjes te kunnen inscannen, heb je SANE nodig. Het SANE systeem is opgesplitst in twee delen: de backends (graphics/sane-backends) en de frontends (graphics/sane-frontends). Het deel met de backends zorgt voor de toegang tot de scanner zelf. Op http://www.sane-project.org/sane-supported-devices.html vind je de lijst met door SANE ondersteunde apparaten. Het is echt nodig het juiste backend vast te stellen, omdat het anders bijzonder lastig wordt een scanner aan de praat te krijgen. Het deel met frontends levert een grafische scaninterface (xscanimage). Een USB-scanner installeren is met HAL echt kinderspel geworden: gewoon inpluggen en het werkt. Lukt het niet? gebruiker@naam−pc : ˜ $ sane−f i n d −scanner −q found SCSI scanner ”AGFA SNAPSCAN 600 1 . 1 0 ” a t / dev / pass3
In de uitvoer is te lezen welk type interface en welke apparaatnode worden gebruikt om de scanner met een systeem te verbinden. Het merk en het model worden wellicht niet getoond, maar dat is ook niet echt van belang. Hierna kan gecontroleerd worden of de scanner ook te zien is door een scannerfrontend. Er zit bij de SANE backends een standaard hulpprogramma scanimage(1). Met dit commando kunnen de apparaten zichtbaar gemaakt worden en kan vanaf de commandoregel gescand worden. Met de optie -L kunnen de scannerapparaten getoond worden: Hoewel scanimage in staat is om vanaf de commandoregel te scannen, is het aan te raden beelden te scannen vanuit de grafische gebruikersinterface. SANE heeft ¨ een eenvoudige, maar efficiente grafische interface: xscanimage (graphics/sanefrontends). Xsane (graphics/xsane) is een ander populair grafisch scanfrontend, dat geavanceerde mogelijkheden biedt, zoals meerdere scanmodi (fotokopie, fax, enzovoort), kleurcorrectie, batchscannen, enzovoort. Beide applicaties zijn als plug-in voor GIMP te gebruiken. Voor de KDE-liefhebbers: probeer kooka eens uit.
10.7
Harde schijven lokaal en over het net Om een extern systeem zoals een harde schijf, een cdrom, een floppy, een tape, . . . te kunnen gebruiken, moet je dit toestel aan de bestandsstructuur van Linux hangen. Men spreekt van mounten (mount). Het toestel er terug afnemen, noemt men umounten (umount). Sven Vermeulen (aka SwifT, lid van Lugwv) legt het als volgt uit: Zie een medium (cd, dvd - in de rest van deze uiteenzetting zal ik enkel cd gebruiken) als een andermans vest. Je kan enkel in een
144
UNIT 10. BEHEER VAN APPARATEN
andermans vest kijken als die ergens hangt. Wel, je kan enkel een cd bekijken als die gemount wordt. Je kan een vest overal hangen: over de tafel, op een stoel, ergens op de vloer of aan de waslijn, maar meestal wordt een vest aan een kapstok gehangen. Zo ook wordt een cd meestal onder /media/cdrom gemount. Het kan ook op andere plaatsen, maar het is de gewoonte dat de cd daar gemount wordt. Je kan niet weglopen met een vest terwijl die nog ergens aan hangt (bv. de kaptok), je moet eerst die vest van de kapstok halen. Zo ook moet je eerst een cd u(n)mounten alvorens je die uit je systeem kan halen. Door dit mount/umount gebruik, is de bestandsstructuur ook zeer logisch. Alles begint met ”/”. Dat is de allerhoogste positie die je kan verkrijgen. Zie het als de hoofdgang van een huis. Alle kamers of gangen komen uit in de hoofdgang. Zo ook komen alle andere directories uiteindelijk uit op “/”. Verder heeft elke kamer in je huis een eigen doel. Alhoewel je het kan, ga je toch ook niet slapen in de keuken? Wel, zo heeft elke map in de bestandsstructuur een eigen doel. Zo is bijvoorbeeld ”/home” de map waar alle gebruikers hun bestanden in zetten. Ze kunnen nergens anders aan. Dit is zeer gemakkelijk om bv. backups te nemen. Verder kan onder elke map een andere partitie schuilen zonder dat je daarmee als gebruiker geconfronteerd wordt. Alles is dus transparant. Deze partitie wordt dan met “mount” aan het bestandsstructuur gehangen.
10.7.1
Een filesysteem mounten
Dankzij HAL is het niet nodig om cd-roms, dvd’s, externe harde schijven, USBsticks, . . . te mounten. Maar wat als het ‘verkeerd gaat’? De syntaxis om bestandssystemen (cdrom, harde schijf, partitie, . . . ) te mounten is: gebruiker@naam−pc : ˜ $ mount [ o p t i e s ] d e v i c e mountpoint
De parameter “device” staat voor hetgeen, welke bestandssysteem, je wilt mounten (floppy, cdrom, harde schijf, partitie, . . . ). De parameter “mountpoint” is de naam van de map waarop je het bestandssysteem gaat mounten. Meestal is dat een zelf aangemaakte map onder de map “/media”. Wanneer je een mountpoint wilt maken, dan maak je gewoon een map aan (mkdir) in de map “/media”. In GNU/Linux heb je zeker al geen last van stationsletters die veranderen. Om veiligheidsredenen kan het mounten enkel gebeuren door root. Er zijn echter wel softwarepakketten waarin ook andere gebruikers bepaalde bestandssystemen (zoals een cdrom) kunnen mounten.
145
UNIT 10. BEHEER VAN APPARATEN
Mounten van een data-cdrom (bv. /dev/hdc):
gebruiker@naam−pc : ˜ $ mount − t iso9660 / dev / hdc / mnt / cdrom
Een iso-bestand mounten om te zien welke bestanden erachter zitten, of er enkele van te gebruiken:
gebruiker@naam−pc : ˜ $ mount −o l o o p i s o f i l e . i s o / mnt / l o o p
Met de mount-opdracht kan je ook opties meegeven zoals, read-only (-o ro), read-write (-o rw), met bepaalde UID/GID (-o uid=xxx gid=xxx) mounten, . . . De defaults-options zijn: rw, suid, dev, exec, auto, nouser en async (zie verder). Daarenboven zijn er nog voor elk filesysteem bijkomende opties die standaard toegepast worden, of die naar goeddunken kunnen aangepast worden. Zie ”man mount”. De opdracht mount geven zonder opties en parameters, toont je al de gemounte filesystemen:
10.7.2 Een filesysteem u(n)mounten. Wanneer je GNU/Linux afsluit, worden alle gemounte filesystemen automatisch afgekoppeld. Het kan soms nodig zijn om een filesysteem af te koppelen om een andere te kunnen mounten. Hier kan je beide parameters gebruiken om een filesysteem af te koppelen.
gebruiker@naam−pc : ˜ $ umount / media / cdrom
of gebruiker@naam−pc : ˜ $ umount / dev / hda3
Het kan nu zijn dat je een foutmelding krijgt in de aard van:
umount / media / cdrom umount : / mnt / f l o p p y : d e v i c e i s busy
D.w.z. dat ergens in je systeem er nog gebruik gemaakt wordt van de map “/media/cdrom” door jezelf of een andere gebruiker.
146
UNIT 10. BEHEER VAN APPARATEN
10.7.3
147
Filesystemen mounten bij het opstarten.
Het opstarten van Linux gebeurt door de kernel (meestal vmlinuz) op te starten. Op dat ogenblik is er nog niets gemount en aldus niets van de bestandsstructuur bereikbaar. De kernel moet dus zelf de root (/) mounten, voordat verdere bestan´ den kunnen bereikt worden. E´ enmaal de root is gemount, kunnen de binaries of ´ van die bestanden de scripts (programma’s) aan alle bestanden op de root. E´ en is “/etc/fstab” (file system table). Hierin bevinden zich alle filesystemen die tijdens het opstarten kunnen gemount worden. Dit veronderstelt natuurlijk dat de mountpoints bestaan. De syntaxis van het bestand ”/etc/fstab”: gebruiker@naam−pc : ˜ $ c a t / e t c / f s t a b # / e t c / f s t a b : s t a t i c f i l e system i n f o r m a t i o n . # # < f i l e system> <mount p o i n t >
<pass> proc / proc proc defaults 0 0 # / dev / sda1 −− c o n v e r t e d d u r i n g upgrade t o edgy UUID=420 f1441 −8b10−41aa−821c−b288ac516a28 / e x t 3 d e f a u l t s , e r r o r s =remount−r o 0 1 # / dev / sda4 −− c o n v e r t e d d u r i n g upgrade t o edgy UUID=8b816573−0f00 −42e7−93f c −65682d763fb3 / home e x t 3 d e f a u l t s 0 2 # / dev / sda2 −− c o n v e r t e d d u r i n g upgrade t o edgy UUID=1B33−0A00 / media / sda2 v f a t d e f a u l t s , u t f 8 , umask=007 , g i d =46 0 1 # / dev / sda3 −− c o n v e r t e d d u r i n g upgrade t o edgy UUID=69 ddcf30 −5f b f −416b−a253−8aa8366bb84f none swap sw 0 0 / dev / scd0 / media / cdrom0 udf , iso9660 user , noauto 0 0
De syntaxis van een regel is de volgende: file system
Geeft het device (/dev/xxx) of het remotefilesysteem (bv. //pb/c) aan dat moet gemount worden.
mountpoint
Definieert het mountpoint voor het filesysteem. Gebruik de term none voor speciale filesystemen, zoals de swapfile. Hiermee wordt het desbetreffende filesysteem wel geactiveerd, maar niet zichtbaar onder de directory-tree.
type
Definieert het type van het filesysteem.
mount
Een door komma’s gescheiden opsomming met mount-opties voor het filesysteem.
UNIT 10. BEHEER VAN APPARATEN
148
options
Zie de man-pagina van de opdracht mount voor de beschikbare opties.
dump
Geeft aan hoe vaak een backup van het filesysteem moet worden gemaakt met de opdracht dump. Als dit veld niet gedefinieerd of nul is, wordt aangenomen dat geen backups van het filesysteem nodig zijn.
pass
Geeft aan in welke volgorde het filesysteem door de opdracht fsch moet worden gecontroleerd bij het opstarten. Het root-filesysteem moet een waarde van 1 hebben ; alle andere filesystemen moeten een waarde van 2 hebben. Als er geen waarde of een nul is opgegeven, wordt het filesysteem bij het opstarten niet op consistentie gecontroleerd.
De aanduiding defaults in het veld options geeft aan dat het filesysteem moet worden gemount met de standaardset opties. Deze zijn:
• rw : het filesysteem wordt read/write gemount. • suid : de UID en de GID worden herkend op het filesysteem. • dev: het filesysteem moet beschouwd worden als een special block device. • exec: de uitvoering van binaries is toegestaan. • auto: wanneer de opdracht ”mount -a” wordt gegeven, dan zal het filesysteem automatisch gemount.
• nouser: wanneer een gewone gebruiker dit filesysteem wenst te mounten, dan zal dit niet lukken.
• async : alle input/output naar of van het filesysteem moeten asynchroon gebeuren.
10.7.4
Filesystemen mounten als gewone user.
Zoals al vermeld werd, kan enkel root filesystemen mounten of umounten. Voor veel zaken is dat maar goed ook. Om toch veel gebruikte filesystemen zoals cdroms, dvd’s,. . . voor de gewone gebruikers toegankelijk te maken, kan je in ‘/etc/fstab’ als optie ‘user’ bijplaatsen. Dit kan je ook bij ’defaults’ gebruiken; dan zal ‘user’ de ‘nouser’-optie van de ‘defaults’ overrulen.
A Creative Commons Licentie
Naamsvermelding – NietCommercieel - GelijkDelen 2.0 CREATIVE COMMONS CORPORATION IS GEEN ADVOCATENKANTOOR EN VERLEENT GEEN JURIDISCHE DIENSTEN. DE VERSPREIDING VAN DEZE LICENTIE VEROORZAAKT GEEN JURIDISCHE OF CONTRACTUELE RELATIE TUSSEN DE PARTIJEN BIJ DEZE LICENTIE EN CREATIVE COMMONS. CREATIVE COMMONS VERSTREKT DEZE INFORMATIE ZOALS ZE IS, ZONDER GARANTIE. CREATIVE COMMONS STAAT NIET IN VOOR DE VERSTREKTE INFORMATIE EN SLUIT ALLE AANSPRAKELIJKHEID UIT VOOR WELKE SCHADE DAN OOK DIE ZOU VOORTVLOEIEN UIT HET GEBRUIK VAN DEZE INFORMATIE. Licentie HET WERK (ZOALS HIERONDER OMSCHREVEN) WORDT TER BESCHIKKING GESTELD OVEREENKOMSTIG DE BEPALINGEN VAN DEZE CREATIVE COMMONS PUBLIC LICENSE (HIERNA “CCPL” OF “LICENTIE”). HET WERK WORDT BESCHERMD DOOR HET AUTEURSRECHT, EN/OF, INDIEN RELEVANT, DOOR DE NABURIGE RECHTEN, OF HET SUI GENERIS DATABANKENRECHT EN/OF ELK KRACHTENS DE GELDENDE WETGEVING VAN TOEPASSING ZIJNDE RECHT. ELK GEBRUIK VAN HET WERK DAT NIET UITDRUKKELIJK DOOR DEZE LICENTIE TOEGESTAAN WORDT, IS VERBODEN. ELK GEBRUIK VAN HET WERK, OP EEN MANIER DIE ONDER EEN IN DEZE LICENTIE BEHANDELD RECHT VALT, BRENGT DE AANVAARDING VAN DEZE LICENTIE MET ZICH MEE. DOOR DEZE LICENTIE KENT DE LICENTIEGEVER U DE HIERNA OMSCHREVEN RECHTEN TOE INDIEN U DE VOLGENDE BEPALINGEN EN VOORWAARDEN AANVAARDT 1. Definities a) Met “Collectief Werk” wordt een werk bedoeld waarin het Werk, in zijn geheel en in ongewijzigde vorm, samen met een aantal andere bijdragen, die elk een
1
BIJLAGE A. CREATIVE COMMONS LICENTIE
b)
c) d)
e)
f)
g)
afzonderlijk en zelfstandig Werk vormen, tot een collectief geheel is samengevoegd. Collectieve Werken zijn onder andere geregeld een uitgave van een ¨ Een Werk dat een Collectief Werk tijdschrift, bloemlezingen of encyclopedieen. is, zal, krachtens deze Licentie, niet beschouwd worden als een Afgeleid Werk (zoals hieronder omschreven). Met ”Afgeleid Werk” wordt een werk bedoeld dat gebaseerd is op het Werk of op het Werk en andere reeds bestaande werken, zoals een vertaling, een muziekarrangement, een toneel-, literaire of cinematografische bewerking, een geluidsopname, een kunstreproductie, een ingekorte versie, een samenvatting of elke andere vorm waarin het Werk gewijzigd, omgezet of bewerkt kan worden, met uitzondering van de Collectieve Werken, die niet als Afgeleide Werken zullen beschouwd worden in de zin van deze Licentie. Om onduidelijkheid te vermijden zal, indien het Werk een muziekwerk of een fonogram is, de synchronisatie van het Werk met een bewegend beeld (“synching”) als een Afgeleid Werk in de zin van deze Licentie beschouwd worden. Met ”Licentiegever” wordt de natuurlijke persoon of rechtspersoon bedoeld die de rechten op het Werk toekent volgens de bepalingen van deze Licentie. Met ”Oorspronkelijke Auteur” wordt de natuurlijke persoon bedoeld die het Werk gemaakt heeft of, indien het gaat om een voorwerp dat door een naburig recht beschermd wordt, de oorspronkelijke titularis van het naburig recht. Met ”Werk” wordt het Werk van letterkunde of kunst bedoeld dat beschermd wordt door het auteursrecht en dat het voorwerp is van deze licentie. Voor de toepassing van deze Licentie omvat het “Werk” ook voorwerpen die beschermd worden door een naburig recht, zoals een uitvoering, een fonogram, een eerste vastlegging van film of radio-uitzending, alsook de databanken die beschermd worden door een sui generis-recht, voor zover deze het voorwerp vormen van deze licentie. Indien nodig, zullen de bepalingen van deze Licentie op zo een manier ge¨ınterpreteerd worden dat ze op dergelijke beschermde voorwerpen toegepast kunnen worden. Met ”U” wordt de natuurlijke persoon of rechtspersoon bedoeld die het Werk gebruikt op een wijze die geregeld wordt door de rechten waarop deze Licentie betrekking heeft en die de bepalingen van deze Licentie met betrekking tot het Werk niet eerder geschonden heeft of die de uitdrukkelijke toestemming van de Licentiegever gekregen heeft om rechten krachtens deze Licentie uit te oefenen ondanks een eerdere schending van deze. Met ”Licentiekenmerken” worden de volgende generieke kenmerken van de licentie bedoeld, zoals gekozen door de Licentiegever en aangeduid in de titel van deze Licentie: Naamsvermelding, NietCommercieel, GelijkDelen.
2. Uitzonderingen en beperkingen op de exclusieve rechten Niets in deze Licentie heeft de bedoeling de toepassing van de uitzonderingen op de exclusieve rechten van de rechthebbenden, de uitputting van deze rechten of andere beperkingen op deze rechten krachtens het auteursrecht, de naburige rechten, het sui generis databankenrecht of elk ander van toepasselijk recht te verminderen, te begrenzen of te beperken. 3. Omvang van de toegekende Licentie In overeenstemming met de bepalingen en voorwaarden van deze Licentie, verleent de Licentiegever U een licentie die wereldwijd, gratis, niet-exclusief en on-
2
BIJLAGE A. CREATIVE COMMONS LICENTIE
beperkt in tijd (voor de volledige duur van de bescherming van het Werk door het auteursrecht, de naburige rechten, het sui generis recht op de databanken) is om de volgende rechten met betrekking tot het Werk uit te oefenen: a) het reproduceren, op welke wijze en in welke vorm dan ook, van het Werk, het ´ of meer Collectieve Werken en het reproduceren opnemen van het Werk in e´ en van het Werk zoals het opgenomen is in de genoemde Collectieve Werken; b) het maken en reproduceren van Afgeleide Werken; c) het uitlenen en verspreiden van exemplaren van het Werk, het meedelen aan het publiek en het ter beschikking stellen van het publiek. Hetzelfde geldt voor het Werk wanneer het opgenomen is in een Collectief Werk; d) het uitlenen en verspreiden van exemplaren van Afgeleide Werken, ze meedelen aan het publiek en ze ter beschikking stellen van het publiek; e) indien het Werk een databank is, het opvragen en hergebruiken van substan¨ delen van de databank. tiele De hierboven vermelde rechten mogen uitgeoefend worden op alle bekende en onbekende dragers, media en formaten, met uitzondering van onbekende exploitatievormen. U heeft eveneens het recht om die wijzigingen aan het Werk aan te brengen die technisch noodzakelijk zijn voor de uitoefening van de hoger genoemde rechten op andere dragers, media en formaten. Oorspronkelijke Auteur ziet af van de uitoefening van zijn/haar morele rechten met betrekking tot de wijzigingen die technisch noodzakelijk zijn. De Licentiegever behoudt zich alle rechten voor die niet uitdrukkelijk overgedragen zijn in deze Licentie, waaronder inbegrepen, doch niet beperkt tot, de rechten die onder sectie 4(e) opgenomen zijn. 4. Beperkingen De in artikel 3 toegekende licentie wordt uitdrukkelijk op de volgende manier beperkt: a) U mag het Werk enkel in overeenstemming met de bepalingen van deze Licentie, uitlenen, verspreiden, ter beschikking stellen van het publiek of meedelen aan het publiek op voorwaarde dat U een kopie van deze Licentie of de Uniform Resource Identifier van deze Licentie toevoegt aan elke kopie van het Werk dat U uitleent, verspreidt, ter beschikking stelt van het publiek of meedeelt aan het publiek. U mag geen voorwaarden op het gebruik van het Werk aanbieden of opleggen die de bepalingen van deze Licentie of de uitoefening van de toegekende rechten wijzigen of beperken. U mag het werk niet in onderlicentie geven. U moet alle aanduidingen die verwijzen naar deze Licentie en naar de garantieclausule en de uitsluiting van aansprakelijkheid intact houden. U mag het Werk niet uitlenen, verspreiden, ter beschikking stellen van het publiek of meedelen aan het publiek indien daarbij een technische maatregel gebruikt wordt die de toegang tot of het gebruik van het Werk op een met de bepalingen van deze Licentie strijdige wijze controleert. Het voorgaande geldt voor het Werk dat opgenomen is in een Collectief Werk maar dat houdt niet in dat het Collectief Werk zelf, afgezien van het Werk, onderworpen wordt aan de bepalingen van deze Licentie. Indien U een Collectief Werk maakt, dan moet U, op aanvraag van om het even welke Licentiegever en in de mate van het mogelijke, elke verwijzing naar de Licentiegever of de Oorspronkelijke Auteur uit het Collectief Werk verwijderen. Indien U een Afgeleid Werk maakt, dan moet U, op aanvraag van om het even welke Licentiegever en in de mate van het mogelijke, elke verwijzing naar de Licentiegever of de Oorspronkelijke
3
BIJLAGE A. CREATIVE COMMONS LICENTIE
Auteur uit het Afgeleide Werk verwijderen. b) U mag een Afgeleid Werk enkel uitlenen, verspreiden, ter beschikking stellen van het publiek of meedelen aan het publiek krachtens de bepalingen van deze Licentie, van een latere versie van deze Licentie met dezelfde Licentiekenmerken als deze Licentie of van een Creative Commons iCommons-licentie die dezelfde Licentiekenmerken bevat als deze Licentie (bv. Naamsvermelding – Niet-Commercieel – Gelijk Delen 2.0 Japan). U moet een kopie van deze Licentie, of elk andere licentie die in de voorafgaande zin gespecificeerd werd, of de Uniform Resource Identifier van deze Licentie toevoegen aan elke kopie van het Afgeleid Werk dat U uitleent, verspreidt, ter beschikking stelt van het publiek of meedeelt aan het publiek. U mag geen voorwaarden op het gebruik van het Afgeleid Werk aanbieden of opleggen die de bepalingen van deze Licentie of de uitoefening van de toegekende rechten wijzigen of beperken. U moet alle aanduidingen die verwijzen naar deze Licentie en naar de garantieclausule en de uitsluiting van aansprakelijkheid intact houden. U mag het Afgeleid Werk niet uitlenen, verspreiden, ter beschikking stellen aan het publiek of meedelen aan het publiek indien daarbij een technische maatregel gebruikt wordt die de toegang tot of het gebruik van het Werk op een met de bepalingen van deze Licentie strijdige wijze controleert. Het voorgaande geldt voor het Afgeleid Werk dat opgenomen is in een Collectief Werk maar dat houdt niet in dat het Collectief Werk zelf, afgezien van het Afgeleid Werk, onderworpen wordt aan de bepalingen van deze Licentie. c) U mag geen enkel van de door artikel 3 aan U toegekende rechten uitoefenen op een manier die voornamelijk bedoeld is voor of gericht is op het bekomen ¨ compensatie. De van een commercieel voordeel of een persoonlijke financiele uitwisseling van het Werk tegen andere Werken, die beschermd worden door het auteursrecht, de naburige rechten of het sui generis databankenrecht, door het elektronisch delen van bestanden of op een andere wijze, wordt niet beschouwd als zijnde bedoeld voor of gericht op het bekomen van een commer¨ compensatie, op voorwaarde dat cieel voordeel of een persoonlijke financiele ¨ comde uitwisseling van de beschermde Werken geen betaling of financiele pensatie met zich meebrengt. d) Indien U het Werk, Afgeleide Werken of Collectieve Werken uitleent, verspreidt, ter beschikking stelt aan het publiek of meedeelt aan het publiek, dan moet U alle informatie betreffende het beheer van rechten met betrekking tot het Werk intact houden en, op een wijze die redelijk is in verhouding tot het gebruikte medium of middel, verwijzen naar de Oorspronkelijke Auteur, door het verstrekken van de naam van de Oorspronkelijke Auteur (of het pseudoniem indien van toepassing) indien deze wordt vermeld; de titel van het Werk indien deze wordt vermeld; in de mate dit redelijkerwijze mogelijk is en indien deze beschikbaar is, de Uniform Resource Identifier, dat de Licentiegever aanduidt als verbonden met het Werk, tenzij die URI niet verwijst naar de informatie betreffende het beheer van rechten met betrekking tot het Werk of naar de van toepassing zijnde licenties op het Werk; en in het geval van een Afgeleid Werk, door het aanduiden van het gebruik van het Werk in het Afgeleid Werk en door het identificeren van de elementen (bijvoorbeeld, door de aanduiding “Franse vertaling van het Oorspronkelijk Werk door de Auteur” “Franse vertaling van het Werk door de Oorspronkelijke Auteur” of “scenario gebaseerd op het Oorspronkelijk Werk door de Oorspronkelijke Auteur”). De verwijzing naar de Oorspronkelijke Auteur moet gebeuren op een redelijke manier. In het ge-
4
BIJLAGE A. CREATIVE COMMONS LICENTIE
val van een Afgeleid Werk of een Collectief Werk, moeten deze verwijzingen echter minstens weergegeven worden op dezelfde plaats en op dezelfde wijze als andere vergelijkbare auteursvermeldingen. e) Deze Licentie wijzigt geenszinsnde regeling van de billijke vergoedingen, die eventueel van kracht is in Belgie¨ of in andere landen, ter compensatie van de wettelijke erkenning van gedwongen licenties en heeft geen invloed op de inning van deze vergoedingen. 5. Garantieclausule en uitsluiting van aansprakelijkheid TENZIJ ER TUSSEN DE PARTIJEN SCHRIFTELIJK ANDERS OVEREENGEKOMEN IS, BIEDT DE LICENTIEGEVER HET WERK AAN ZOALS HET IS EN DOET DE LICENTIEGEVER GEEN VERKLARINGEN OVER HET WERK OF VERPLICHT HIJ ZICH TOT GEEN ENKELE GARANTIE, ONGEACHT OF DEZE UITDRUKKELIJK OF STILZWIJGEND, KRACHTENS DE WET OF OP EEN ANDERE GRONDSLAG RUST, HIERIN BEGREPEN, MAAR NIET BEPERKT TOT DE GARANTIE TEGEN UITWINNING, DE COMMERCIALISEERBAARHEID VAN HET WERK, DE FUNCTIONELE CONFORMITEIT, DE AFWEZIGHEID VAN INBREUK OP RECHTEN VAN DERDEN, DE AFWEZIGHEID VAN VERBORGEN OF ANDERE GEBREKEN, DE NAUWKEURIGHEID VAN HET WERK OF DE AFWEZIGHEID VAN FOUTEN EN GEBREKEN MET BETREKKING TOT DE INFORMATIE, ONGEACHT OF DEZE AL DAN NIET OPSPOORBAAR ZIJN. INDIEN DE OP DEZE LICENTIE VAN TOEPASSELIJKE WETGEVING EEN DERGELIJKE UITSLUITING VAN VERANTWOORDELIJKHEID VERBIEDT OF REGLEMENTEERT, DAN IS DEZE UITSLUITING VAN AANSPRAKELIJKHEID EN GARANTIE SLECHTS IN DE MATE TOEGELATEN DOOR DE WET VAN TOEPASSING. 6. Beperking van aansprakelijkheid VOOR ZOVER DE VAN TOEPASSELIJKE WETGEVING DIT TOELAAT, ZAL DE LICENTIEGEVER IN GEEN ENKEL GEVAL AANSPRAKELIJK GEACHT WOR¨ DEN VOOR WELKE RECHTSTREEKSE OF ONRECHTSTREEKSE, MATERIELE OF MORELE SCHADE DAN OOK, DIE VOORTVLOEIT UIT DEZE LICENTIE OF UIT HET GEBRUIK VAN HET WERK, ONGEACHT OF DE LICENTIEGEVER INGELICHT WERD OVER DE MOGELIJKHEID VAN DERGELIJKE SCHADE. ¨ 7. Beeindiging a) Elke inbreuk op de bepalingen van deze Licentie waarvoor U verantwoordelijk bent, leidt tot de ontbinding van rechtswege van deze Licentie en het einde van de rechten die er uit voortvloeien. Niettemin behouden de licenties op Afgeleide Werken of Collectieve Werken, die door U krachtens deze Licentie verleend werden aan natuurlijke personen of rechtspersonen, hun werking ten opzichte van deze natuurlijke personen of rechtspersonen, voor zover deze personen de bepalingen van deze licenties niet schenden. De artikels 1, 2, 5, ¨ 6, 7 en 8, blijven van kracht ongeacht de beeindiging van deze Licentie. b) Indien de hierboven vermelde bepalingen en voorwaarden in acht genomen worden, is deze licentie onbeperkt in tijd (voor de duur van de bescherming van het Werk door het auteursrecht, de naburige rechten en het sui generis databankenrecht). Desalniettemin behoudt de Licentiegever zich op elk ogen-
5
BIJLAGE A. CREATIVE COMMONS LICENTIE
blik het recht voor om het Werk onder een andere licentie of onder andere voorwaarden te exploiteren of om elke verspreiding van het Werk stop te zetten, zonder dat het gebruik maken van deze mogelijkheid deze Licentie (of elke andere licentie die, krachtens de bepalingen van deze Licentie, verleend werd of verleend moest worden) ongedaan kan maken, en deze Licentie zal ¨ onverminderd van kracht blijven tenzij de beeindiging intreedt wegens de hoger aangegeven redenen. 8. Diversen a) Telkens U het Werk of een Collectief Werk uitleent, verspreidt, meedeelt of ter beschikking stelt van het publiek, verleent de Licentiegever aan de ontvanger een licentie die van toepassing is op het Werk en die dezelfde bepalingen en voorwaarden bevat als deze Licentie. b) Telkens U het Afgeleid Werk uitleent, verspreidt, meedeelt of ter beschikking stelt van het publiek, verleent de Licentiegever aan de ontvanger een licentie die van toepassing is op het oorspronkelijke Werk en die dezelfde bepalingen en voorwaarden bevat als deze Licentie c) Indien een bepaling uit deze Licentie, krachtens het van toepassing zijnde recht, nietig of niet afdwingbaar is, dan zal dit geen invloed hebben op de geldigheid en de afdwingbaarheid van de andere bepalingen. In dit geval zal, zonder dat enige tussenkomst van de partijen hiervoor nodig is, een dergelijke bepaling op een zodanige wijze ge¨ınterpreteerd worden dat haar geldigheid en afdwingbaarheid gevrijwaard blijven. d) Geen enkele afstand ten opzichte van de bepalingen en voorwaarden van deze Licentie wordt vermoed zonder een schriftelijke overeenkomst die ondertekend is door de partij die afstand doet. Geen enkele inbreuk op deze Licentie wordt door de andere partij aanvaard zonder schriftelijke overeenkomst, ondertekend door deze partij. e) Deze Licentie is het enige contract tussen de partijen met betrekking tot het Werk, dat het voorwerp is van deze Licentie. Er bestaat geen enkele overeenkomst of document van welke aard dan ook, die betrekking heeft op het Werk, bovenop wat hier bepaald is. De Licentiegever is gebonden door geen enkele bijkomende verplichting die voortvloeit uit enige communicatie afkomstig van U, ongeacht de vorm. Deze Licentie kan niet gewijzigd worden zonder de schriftelijke overeenkomst van beide partijen.
6