19 |
\chapter{Waarom \gl?} |
\chapter{Waarom \gl?} |
20 |
\label{ch:waarom} |
\label{ch:waarom} |
21 |
|
|
22 |
\citaatnnn{The world will end in 5 minutes. Please log out.} |
\citaatnnn{The world will end in 5 minutes. Please log out.} |
23 |
|
|
24 |
``Waarom \gl?'' zal een algemene uitleg geven over het \gl\ |
``Waarom \gl?'' zal een algemene uitleg geven over het \gl\ |
25 |
besturingsysteem, het \gnu-project en de \linux\ kernel. We zullen |
besturingsysteem, het \gnu-project en de \linux\ kernel. We zullen |
53 |
\url{http://www.fsfeurope.org/} |
\url{http://www.fsfeurope.org/} |
54 |
\end{urlbox} |
\end{urlbox} |
55 |
|
|
56 |
\begrip{\gnu}, is een recursieve afkorting voor ``\gnu's |
gnu\index{gnu@\gnu}, is een recursieve afkorting voor ``\gnu's |
57 |
not \unix''. \gnu\ is een project opgestart in 1984 met als doel een |
not \unix''. \gnu\ is een project opgestart in 1984 met als doel een |
58 |
\unix-achtig besturingssysteem te ontwikkelen, maar dan als |
\unix-achtig besturingssysteem te ontwikkelen, maar dan als |
59 |
\begrip{vrije software} (\begrip{free software}). |
\begrip{vrije software} (\begrip{free software}). |
64 |
Vrijwel alle programma's die we gaan gebruiken op ons \gl\ |
Vrijwel alle programma's die we gaan gebruiken op ons \gl\ |
65 |
besturingssysteem werden geschreven door het \gnu\ project. |
besturingssysteem werden geschreven door het \gnu\ project. |
66 |
|
|
67 |
Het \gnu\ project wordt gesponsord door \begrip{the Free Software |
Het \gnu\ project wordt gesponsord door \Begrip{The} \begrip{Free Software |
68 |
Foundation} (\begrip{FSF}). Op \url{http://www.gnu.org/software/} |
Foundation} (\begrip{FSF}). Op \url{http://www.gnu.org/software/} |
69 |
vinden we een overzicht van alle \gnu\ software. |
vinden we een overzicht van alle \gnu\ software. |
70 |
|
|
111 |
heeft een gnu als mascotte en \linux\ heeft een pingu\"in als |
heeft een gnu als mascotte en \linux\ heeft een pingu\"in als |
112 |
mascotte. |
mascotte. |
113 |
|
|
114 |
De offici\"ele \linux\ pingu\"\i n werd gekozen door Linus Torvalds en |
De offici\"ele \linux\ pingu\"in werd gekozen door Linus Torvalds en |
115 |
zien we in figuur~\ref{tux}. De pingu\"\i n werd ontworpen door Larry |
zien we in figuur~\ref{tux}. De pingu\"in werd ontworpen door Larry |
116 |
Ewing. |
Ewing. |
117 |
|
|
118 |
\begin{figure} |
\begin{figure} |
119 |
\center |
\center |
120 |
\includegraphics{inleiding/tux.png} |
\includegraphics[height=9cm]{inleiding/tux.png} |
121 |
\caption{Tux, de \linux\ pingu\"\i n} |
\caption{Tux, de \linux\ pingu\"\i n} |
122 |
\label{tux} |
\label{tux} |
123 |
\end{figure} |
\end{figure} |
124 |
|
|
125 |
Linus legt in de volgende tekst uit waarom hij juist een pingu\"\i n |
Linus legt in de volgende tekst uit waarom hij juist een pingu\"in |
126 |
heeft |
heeft |
127 |
gekozen: |
gekozen: |
128 |
|
|
132 |
|
|
133 |
Anyway, this one looks like the poor penguin is not really strong |
Anyway, this one looks like the poor penguin is not really strong |
134 |
enough to hold up the world, and it's going to get squashed. Not a |
enough to hold up the world, and it's going to get squashed. Not a |
135 |
good, positive logo, in that respect.. |
good, positive logo, in that respect. |
136 |
|
|
137 |
Now, when you think about penguins, first take a deep calming breath, |
Now, when you think about penguins, first take a deep calming breath, |
138 |
and then think ``cuddly''. Take another breath, and think ``cute''. Go |
and then think ``cuddly''. Take another breath, and think ``cute''. Go |
152 |
|
|
153 |
So when you think ``penguin'', you should be imagining a slighly |
So when you think ``penguin'', you should be imagining a slighly |
154 |
overweight penguin (*), sitting down after having gorged itself, and |
overweight penguin (*), sitting down after having gorged itself, and |
155 |
having just burped. It's sitting there with a beatific smile - the |
having just burped. It's sitting there with a beatific smile -- the |
156 |
world is a good place to be when you have just eaten a few gallons of |
world is a good place to be when you have just eaten a few gallons of |
157 |
raw fish and you can feel another ``burp'' coming. |
raw fish and you can feel another ``burp'' coming. |
158 |
|
|
168 |
|
|
169 |
NOW comes the hard part. With this image firmly etched on your |
NOW comes the hard part. With this image firmly etched on your |
170 |
eyeballs, you then scetch a stylizied version of it. Not a lot of |
eyeballs, you then scetch a stylizied version of it. Not a lot of |
171 |
detail - just a black brush-type outline (you know the effect you get |
detail -- just a black brush-type outline (you know the effect you get |
172 |
with a brush where the thickness of the line varies). THAT requires |
with a brush where the thickness of the line varies). THAT requires |
173 |
talent. Give people the outline, and they should say $[$ sickly sweet |
talent. Give people the outline, and they should say $[$ sickly sweet |
174 |
voice, babytalk almost $]$ ``Ooh, what a cuddly penguin, I bet he is |
voice, babytalk almost $]$ ``Ooh, what a cuddly penguin, I bet he is |
178 |
Then we can do a larger version with some more detail (maybe leaning |
Then we can do a larger version with some more detail (maybe leaning |
179 |
against a globe of the world, but I don't think we really want to give |
against a globe of the world, but I don't think we really want to give |
180 |
any ``macho penguin'' image here about Atlas or anything). That more |
any ``macho penguin'' image here about Atlas or anything). That more |
181 |
detailed version can spank billy- boy to tears for all I care, or play |
detailed version can spank billy-boy to tears for all I care, or play |
182 |
ice-hockey with the FreeBSD demon. But the simple, single penguin |
ice-hockey with the FreeBSD demon. But the simple, single penguin |
183 |
would be the logo, and the others would just be that cuddly penguin |
would be the logo, and the others would just be that cuddly penguin |
184 |
being used as an actor in some tableau. |
being used as an actor in some tableau. |
252 |
|
|
253 |
\item[Herinstallatie:] Als we veel programma's installeren en |
\item[Herinstallatie:] Als we veel programma's installeren en |
254 |
verwijderen gaat het register van \win\ dichtslibben. We kunnen dan |
verwijderen gaat het register van \win\ dichtslibben. We kunnen dan |
255 |
wachten tot alles rotsvast zit en een format c: uitvoeren. Of we |
wachten tot alles rotsvast zit en een \com{format c:} uitvoeren. Of we |
256 |
kunnen \win\ regelmatig herinstalleren. In \gl\ is hier geen sprake |
kunnen \win\ regelmatig herinstalleren. In \gl\ is hier geen sprake |
257 |
van (er bestaat simpelweg geen register). Als je een programma |
van (er bestaat simpelweg geen register). Als je een programma |
258 |
verwijdert kan dit zonder dat er ook maar \'e\'en bit van dat |
verwijdert kan dit zonder dat er ook maar \'e\'en bit op de harde schijf achterblijft. |
|
programma op de harde schijf achterblijft. |
|
259 |
|
|
260 |
\item[De prijs:] Naast het feit dat we \gl\ gratis kunnen downloaden of |
\item[De prijs:] Naast het feit dat we \gl\ gratis kunnen downloaden of |
261 |
kopi\"eren, kunnen we voor weinig geld een distributie aanschaffen. Dan |
kopi\"eren, kunnen we voor weinig geld een distributie aanschaffen. Dan |
266 |
Opmerking: uiteraard hebben veel mensen \win\ en aanverwanten illegaal |
Opmerking: uiteraard hebben veel mensen \win\ en aanverwanten illegaal |
267 |
gekopieerd maar in het geval van \gl\ is dit 100\% legaal. Voor een |
gekopieerd maar in het geval van \gl\ is dit 100\% legaal. Voor een |
268 |
school of instelling is men verplicht om legale software te gebruiken. |
school of instelling is men verplicht om legale software te gebruiken. |
269 |
|
Daarenboven is het opvoedkundig niet verantwoord om kinderen te leren stelen. |
270 |
|
|
271 |
\item[Platform-onafhankelijk:] \gl\ is portable. Dit houdt in |
\item[Platform-onafhankelijk:] \gl\ is portable. Dit houdt in |
272 |
dat \gl\ werkt op merk pc's, klonen, Apple Macintosh, Sun |
dat \gl\ werkt op merk pc's, klonen, Apple Macintosh, Sun |
274 |
dat twee verschillende computers waarop \gl\ draait geen probleem |
dat twee verschillende computers waarop \gl\ draait geen probleem |
275 |
hebben om verbinding met elkaar te maken. |
hebben om verbinding met elkaar te maken. |
276 |
|
|
277 |
\item[Virussen:] Er bestaan zeer weinig virussen voor \gl. \gl\ is echt |
\item[Virussen:] Er bestaan zeer weinig virussen voor \gl. Het is echt |
278 |
veel gezonder :). |
veel gezonder :). |
279 |
|
|
280 |
\item[Vrije software:] Hier draait alles om bij \gl. We kunnen de |
\item[Vrije software:] Hier draait alles om bij \gl. We kunnen de |
286 |
tegenstanders verworpen met het argument dat niet alle gebruikers |
tegenstanders verworpen met het argument dat niet alle gebruikers |
287 |
programmeurs zijn. Dit is natuurlijk waar, maar omdat de software |
programmeurs zijn. Dit is natuurlijk waar, maar omdat de software |
288 |
vrij is, kunnen gebruikers andere mensen inhuren die de software |
vrij is, kunnen gebruikers andere mensen inhuren die de software |
289 |
naar hun noden aan te passen. Mensen die onvrije software gebruiken |
naar hun noden aanpassen. Mensen die onvrije software gebruiken |
290 |
kunnen dit niet en zijn voor altijd gebonden aan de software |
kunnen dit niet en zijn voor altijd gebonden aan de software |
291 |
producent. Met vrije software vermijdt men deze \Begrip{lock in}. |
producent. Met vrije software vermijdt men deze \Begrip{lock in}. |
292 |
|
|
293 |
\item[Multi-tasking en multi-user:] \gl\ is een goed multi-tasking en |
\item[Multi-tasking en multi-user:] \gl\ is een goed multi-tasking en |
294 |
multi-user besturingssysteem. Terwijl we een groot document |
multi-user besturingssysteem. Terwijl we een groot document |
295 |
afprinten zal \gl\ niet vertragen, wat niet kan gezegd worden |
afprinten zal \gl\ niet vertragen, wat niet kan gezegd worden |
296 |
van \win. In \gl\ kunnen meerdere gebruikers tezelfdertijd van |
van \win. In \gl\ kunnen meerdere gebruikers terzelfdertijd van |
297 |
\'e\'en computer gebruik maken. De configuratie- en persoonlijke |
\'e\'en computer gebruik maken. De configuratie- en persoonlijke |
298 |
bestanden staan per gebruiker in een eigen directory. |
bestanden staan per gebruiker in een eigen directory. |
299 |
|
|
306 |
omgeving, kunnen we reeds aan de slag met een 386 met 2 MB geheugen. |
omgeving, kunnen we reeds aan de slag met een 386 met 2 MB geheugen. |
307 |
Dit is natuurlijk niet wat het merendeel van de thuisgebruikers |
Dit is natuurlijk niet wat het merendeel van de thuisgebruikers |
308 |
wensen te doen met hun computer. Maar met een 486 met 16MB geheugen |
wensen te doen met hun computer. Maar met een 486 met 16MB geheugen |
309 |
kunnen we reeds aan de slag in een grafische omgeving. |
is een grafische omgeving mogelijk. |
310 |
|
|
311 |
\item[Netwerkmogelijkheden:] Met \gl\ kunnen we alles gaan doen wat de |
\item[Netwerkmogelijkheden:] Met \gl\ kunnen we alles gaan doen wat de |
312 |
'groten' doen: een netwerk opstellen, een DNS-, proxy-, mail- of |
`groten' doen: een netwerk opstellen, een DNS-, proxy-, mail- of |
313 |
webserver opzetten, \ldots Niet in het minst omdat we alle software |
webserver opzetten, \ldots\ Niet in het minst omdat we alle software |
314 |
bij de distributie zullen aantreffen. |
bij de distributie zullen aantreffen. |
315 |
|
|
316 |
\item[Kennis:] Hoewel dit ook als nadeel kan bekeken worden, krijgen we |
\item[Kennis:] Hoewel dit ook als nadeel kan bekeken worden, krijgen we |
317 |
aan de hand van \gl\ een beter inzicht in de werking van een |
aan de hand van \gl\ een beter inzicht in de werking van een |
318 |
computer. Dit omdat we veel moet weten over de onderdelen die er in |
computer. Dit omdat we veel moeten weten over de onderdelen die er in |
319 |
onze computer zitten. Is dit moeilijk? Neen. Het vraagt alleen wat |
onze computer zitten. Is dit moeilijk? Nee. Het vraagt alleen wat |
320 |
tijd. Eenmaal we \gl\ leren kennen zijn de mogelijkheden onbeperkt. |
tijd. Eenmaal we \gl\ leren kennen zijn de mogelijkheden onbeperkt. |
321 |
We kunnen alles configureren zoals we zelf willen. |
We kunnen alles configureren zoals we zelf willen. |
322 |
|
|
332 |
een \gl\ versie. Daar komt ongetwijfeld langzaam maar zeker |
een \gl\ versie. Daar komt ongetwijfeld langzaam maar zeker |
333 |
verandering in. Quake III Arena, Myth II, Railroad Tycoon, Heretic |
verandering in. Quake III Arena, Myth II, Railroad Tycoon, Heretic |
334 |
II, Civilisation en Heroes of Might and Magic II zijn gametoppers |
II, Civilisation en Heroes of Might and Magic II zijn gametoppers |
335 |
die op het ogenblik van dit schrijven reeds beschikbaar voor \gl\ |
die op het ogenblik van dit schrijven reeds beschikbaar zijn voor \gl. |
336 |
waren. Wanneer je op het net een multiplayer spel speelt draait dat |
|
337 |
|
Wanneer je op het net een multiplayer spel speelt draait dat |
338 |
ironisch genoeg negen op de tien keer op een \gl-server. |
ironisch genoeg negen op de tien keer op een \gl-server. |
339 |
|
|
340 |
Oplossing 1. Installeer een dualboot en gebruik \win\ om te |
Oplossing 1. Installeer een dualboot en gebruik \win\ om te |
344 |
deze versie en niet de \win\ versie. |
deze versie en niet de \win\ versie. |
345 |
|
|
346 |
\item[Software:] Nog vele andere populaire softwarepakketten zijn |
\item[Software:] Nog vele andere populaire softwarepakketten zijn |
347 |
voorlopig alleen maar beschikbaar in een \win\ versie. Dit is |
voorlopig slechts beschikbaar in een \win\ versie. Dit is |
348 |
vooral omdat deze softwarepakketen niet vrij zijn, waardoor andere |
vooral omdat deze softwarepakketen niet vrij zijn, waardoor andere |
349 |
programmeurs ze niet kunnen porten naar \gl. |
programmeurs ze niet kunnen porten naar \gl. |
350 |
|
|
365 |
\item[Hardware:] Sommige fabrikanten van hardware maken nog |
\item[Hardware:] Sommige fabrikanten van hardware maken nog |
366 |
steeds geen drivers voor \gl. Er is dus hardware die niet werkt |
steeds geen drivers voor \gl. Er is dus hardware die niet werkt |
367 |
onder \gl. Andere fabrikanten geven de specificaties niet vrij, |
onder \gl. Andere fabrikanten geven de specificaties niet vrij, |
368 |
waardoor terug de \gl\ programmeurs niet de kans krijgen eraan te |
waardoor de \gl\ programmeurs niet de kans krijgen eraan te |
369 |
werken. |
werken. |
370 |
|
|
371 |
Oplossing: Voordat een onderdeel voor een pc aanschaft wordt zoeken |
Oplossing: Voordat een onderdeel voor een pc aanschaft wordt zoeken |
372 |
we eerst eens op of \gl\ dit ondersteunt. Is dit niet het geval |
we eerst eens op of \gl\ dit ondersteunt. Is dit niet het geval |
373 |
dan kopen we gewoon een ander merk. Bijvoorbeeld: wat grafische |
dan kopen we gewoon een ander merk. Bijvoorbeeld wat grafische |
374 |
kaarten betreft: Nvidia en 3DFx richten zich ook op hardware |
kaarten betreft: Nvidia en 3DFx richten zich ook op hardware |
375 |
ondersteuning voor \linux, wat onmiddellijk maakt dat we genoeg keuze |
ondersteuning voor \linux, wat onmiddellijk maakt dat we genoeg keuze |
376 |
hebben aan grafische kaarten voor ons \gl\ besturingssysteem. |
hebben aan grafische kaarten voor ons \gl\ besturingssysteem. |
401 |
vrije software een competitief voordeel dat geen enkele van de |
vrije software een competitief voordeel dat geen enkele van de |
402 |
commerci\"ele ICT-producenten ooit kan aanbieden. |
commerci\"ele ICT-producenten ooit kan aanbieden. |
403 |
|
|
404 |
\Begrip{Wij vragen de lezer dit document zeker te lezen!} |
\Begrip{Wij vragen de lezer dit document zeker te door te nemen!} |
405 |
|
|
406 |
\section{\gl\ in het begin} |
\section{\gl\ in het begin} |
407 |
\label{sec:begin} |
\label{sec:begin} |
408 |
|
|
409 |
Populaire softwarebedrijven verkochten een CD of een paar diskettes |
Populaire softwarebedrijven verkochten een CD of een paar diskettes |
410 |
en een korte handleiding waarmee we in minder dan anderhalf uur aan de |
en een korte handleiding waarmee we in minder dan anderhalf uur aan de |
411 |
slag konden met ons nieuw besturingssysteem. Die bedrijven hadden ook |
slag konden met ons nieuw besturingssysteem. Die bedrijven hadden ook |
412 |
die bedoeling. |
die bedoeling. |
413 |
|
|
414 |
De ontwikkelaars van \gnu\ en van de \linux\ kernel hadden die |
De ontwikkelaars van \gnu\ en van de \linux\ kernel hadden die |
415 |
bedoeling niet. \gnu\ had als bedoeling vrije software te |
bedoeling niet. \gnu\ wou vrije software |
416 |
ontwikkelen, en de kernel-ontwikkelaars wilden een kernel ontwikkelen |
ontwikkelen, en de kernel-ontwikkelaars wilden een kernel ontwikkelen |
417 |
die men kon gebruiken op een IBM compatibele pc. |
die men kon gebruiken op een IBM compatibele pc. |
418 |
|
|
419 |
Later kwamen er bedrijven bij, zoals Red Hat, die als doel hadden de |
Later kwamen er bedrijven bij, zoals Red Hat, die als doel hadden de |
420 |
consument een \gl\ besturingssysteem te laten installeren op een even |
consument een \gl\ besturingssysteem te laten installeren op een even |
421 |
gemakkelijke manier als de andere besturingssystemen. Doch door |
gemakkelijke manier als de andere besturingssystemen. Doch om |
422 |
\'e\'en of andere reden heeft \gl\ zijn ``Alleen voor gurus'' imago |
\'e\'en of andere reden heeft \gl\ zijn ``Alleen voor gurus'' imago |
423 |
nog niet kunnen afschudden. Of dat is toch de opinie die tot stand |
nog niet kunnen afschudden. Of dat is toch de opinie die tot stand |
424 |
gekomen is door artikels in de populaire en niet-technische pers, |
gekomen is door artikels in de populaire en niet-technische pers, |
428 |
\section{\gl\ vandaag} |
\section{\gl\ vandaag} |
429 |
\label{sec:nu} |
\label{sec:nu} |
430 |
|
|
431 |
Vandaag geniet \gl\ voor het merendeel een positieve aandacht in de |
Vandaag geniet \gl\ voor het merendeel van een positieve aandacht in de |
432 |
pers. Dit komt vooral omdat \gl\ bewezen heeft een uitermate stabiel en |
pers. Dit komt vooral omdat \gl\ bewezen heeft een uitermate stabiel en |
433 |
veelzijdig besturingssysteem te zijn, voornamelijk als netwerk server. |
veelzijdig besturingssysteem te zijn, voornamelijk als netwerk server. |
434 |
|
|
439 |
|
|
440 |
\gl\ kan gebruikt worden op een pc alsook als een netwerkserver voor een |
\gl\ kan gebruikt worden op een pc alsook als een netwerkserver voor een |
441 |
fractie van de kosten van andere software paketten. Meer |
fractie van de kosten van andere software paketten. Meer |
442 |
rendabiliteit en minder kosten---dit is ideaal. |
rendabiliteit en minder kosten --- dit is ideaal. |
443 |
|
|
444 |
Zoals reeds gezegd wordt \gl\ gesitueerd in de \unix\ familie van |
Zoals reeds gezegd wordt \gl\ gesitueerd in de \unix\ familie van |
445 |
besturingssystemen. \unix\ is vooral ontworpen om gebruikt te worden |
besturingssystemen. \unix\ is vooral ontworpen om gebruikt te worden |
461 |
We hebben reeds gezien dat het \gl\ besturingssysteem bestaat uit twee |
We hebben reeds gezien dat het \gl\ besturingssysteem bestaat uit twee |
462 |
delen: de \gnu\ programma's en de \linux\ kernel. Het is nu mogelijk |
delen: de \gnu\ programma's en de \linux\ kernel. Het is nu mogelijk |
463 |
om te vertrekken van een klein \gl\ besturingssysteem op diskette of |
om te vertrekken van een klein \gl\ besturingssysteem op diskette of |
464 |
cd-rom en hieruit een volwaardig \gl\ besturingsysteem op te bouwen |
cd-rom en hieruit een volwaardig \gl\ besturingsysteem op te bouwen. |
465 |
dat zich op onze harde schijf plaatsvindt. Dit is wel niet voor de |
Dit is echter niet voor beginners! |
|
beginnende \gl\ gebruikers onder ons! |
|
466 |
|
|
467 |
Daarom werden verschillende \gl\ distributies samengesteld door |
Daarom werden verschillende \gl\ distributies samengesteld door |
468 |
enerzijds bedrijven (b.v. Mandrake) en anderzijds vrijwilligers |
enerzijds bedrijven (b.v. Mandrake) en anderzijds vrijwilligers |
469 |
(b.v. het Debian project), die makkelijker te installeren zijn. |
(b.v. het Debian project), die makkelijker te installeren zijn. |
470 |
|
|
471 |
Ze vertrekken ook van een minimaal \gl\ besturingssysteem op diskette |
Ze vertrekken ook van een minimaal \gl\ besturingssysteem op diskette |
472 |
of cd-rom, maar hebben ook nog een volledig installatieproces dat de |
of cd-rom, maar hebben verder een volledig installatieprocedure dat de |
473 |
\gl\ gebruiker toelaat \gl\ op een eenvoudige manier te installeren. |
gebruiker toelaat \gl\ op een eenvoudige manier te installeren. |
474 |
|
|
475 |
In deze cursus bespreken we \begrip{Mandrake \gl} als \gl\ |
In deze cursus bespreken we \Begrip{Mandrake \gl} als \gl\ |
476 |
distributie voor de desktop computer en \begrip{\debian} als |
distributie voor de desktop computer en \begrip{\debian} als |
477 |
distributie voor de server computer. |
distributie voor de server computer. |
478 |
|
|
483 |
Mandrake \gl\ tijdens het schrijven van dit document. |
Mandrake \gl\ tijdens het schrijven van dit document. |
484 |
|
|
485 |
Zoals er windowsgebruikers van alle niveau's zijn, vinden we deze |
Zoals er windowsgebruikers van alle niveau's zijn, vinden we deze |
486 |
'indeling' ook terug onder de \gl\ gebruikers. Mandrake wordt zowel door |
`indeling' ook terug onder de \gl\ gebruikers. Mandrake wordt zowel door |
487 |
de nieuweling als door doorgewinterde admins gebruikt. Zowel op de |
de nieuweling als door doorgewinterde admins gebruikt. Zowel op de |
488 |
desktop als op het servergebied staat Mandrake zijn/haar mannetje. |
desktop als op het servergebied staat Mandrake zijn mannetje. |
489 |
|
|
490 |
Het grootste voordeel van deze distributie is haar gebruiksgemak. |
Het grootste voordeel van deze distributie is haar gebruiksgemak. |
491 |
Naast de |
Naast de |
492 |
commandline bestaan er ook grafische configuratieprogramma's. We |
commandline bestaan er grafische configuratieprogramma's. We |
493 |
zouden haast kunnen vergeten dat er een toetsenbord aan uw computer |
zouden haast kunnen vergeten dat er een toetsenbord aan onze computer |
494 |
hangt. In tegenstelling tot Debian staat er een bedrijf achter Mandrake. |
hangt. In tegenstelling tot Debian staat er een bedrijf achter Mandrake. |
495 |
Hulp is altijd te vinden onder de gebruikers, maar als we wensen kunnen |
Hulp is altijd te vinden onder de gebruikers of op de Mandrake website, maar als we wensen, kunnen |
496 |
we bij Mandrake ook voor support betalen. Dit kan van belang zijn voor |
we bij Mandrake ook betalen voor professionele ondersteuning. |
497 |
bedrijven. Ofwel is het zelf uitzoeken op hun website een andere |
Dit kan belangrijk zijn voor |
498 |
mogelijkheid. |
bedrijven. |
499 |
|
|
500 |
Mandrake installeren verschilt niet veel van het installeren van \win, |
Mandrake installeren verschilt niet veel van \win installeren, |
501 |
het verschil in gebruik is echter hemelsbreed. We kunnen dan wel een |
het verschil in gebruik is echter hemelsbreed. We kunnen dan wel een |
502 |
grafische manager zoals \win gebruiken, |
grafische manager zoals \win gebruiken, |
503 |
de blauwe schermen die een beetje spanning en opwinding in ons leven |
de blauwe schermen die een beetje spanning en opwinding in ons leven |
504 |
brachten zullen we vaarwel moeten zeggen. Hoewel niet crashvrij, is het |
brachten zullen we vaarwel moeten zeggen. Hoewel niet crashvrij, is het |
505 |
zeer moeilijk om uw volledige \gl\ systeem of uw data te verliezen. |
zeer moeilijk om ons volledige \gl\ systeem of onze data te verliezen. |
506 |
|
|
507 |
In tegenstelling tot sommige andere distributies maken we met Mandrake |
In tegenstelling tot sommige andere distributies maken we met Mandrake |
508 |
een |
een |
524 |
\label{debianlogo} |
\label{debianlogo} |
525 |
\end{figure} |
\end{figure} |
526 |
|
|
527 |
We kozen voor \debian\ om verschillende redenen: |
Debian is een erg stabiel systeem. De Debian-ploeg neemt pas een programma |
528 |
\begin{itemize} |
op in de distributie als het een tijd getest is en stabiel gebleken. Het nadeel hiervan |
529 |
\item De auteurs die dit stuk schreven waren vertrouwd met \debian |
is dat je soms wat langer moet wachten eer nieuwe (versies van) programma's |
530 |
\item Het \debian\ packaging systeem is het beste dat er bestaat |
bij Debian te vinden zijn. |
531 |
(volgens |
|
532 |
de auteurs toch). |
Debian heeft een goed ontwikkeld pakketensysteem aan boord. Wil je een nieuw |
533 |
\end{itemize} |
programma installeren, dan zoekt het systeem zelf wel uit welke andere pakketten |
534 |
|
daar eventueel voor nodig zijn en waar het die pakketten kan vinden. Andere |
535 |
|
distributies hebben meestal ook wel een pakkettensysteem (een andere |
536 |
|
populaire variant is het {\sc rpm} systeem, gebruikt door onder andere Red Hat, |
537 |
|
Mandrake en SuSe), maar in onze ervaring is het bijvoorbeeld niet zo makkelijk |
538 |
|
een Mandrake~8.0 up te graden naar een~9.0, iets wat met een Debian systeem |
539 |
|
toch eenvoudiger schijnt. |
540 |
|
|
541 |
|
% Het volgende moet eruit, daar de drie delen redelijk onafhankelijk van elkaar worden gegeven. |
542 |
|
|
543 |
|
%We kozen voor \debian\ om verschillende redenen: |
544 |
|
%\begin{itemize} |
545 |
|
%\item De auteurs die dit stuk schreven zijn vertrouwd met \debian. |
546 |
|
%\item Het \debian\ packaging systeem is het beste dat er bestaat. |
547 |
|
%\end{itemize} |
548 |
|
|
|
Meer over \debian\ in deel \ref{part:server}. |
|
549 |
|
|
550 |
\section{Andere \gl\ distributies} |
\section{Andere \gl\ distributies} |
551 |
|
|
560 |
\item[Onze buur] Het is aan te raden dezelfde distributie te kiezen |
\item[Onze buur] Het is aan te raden dezelfde distributie te kiezen |
561 |
die een buurman of vriend gebruikt (tenzij die natuurlijk \win\ |
die een buurman of vriend gebruikt (tenzij die natuurlijk \win\ |
562 |
gebruiken, dan moeten we op hun computer ook \gl\ installeren). Dit |
gebruiken, dan moeten we op hun computer ook \gl\ installeren). Dit |
563 |
omdat wanneer we iets niet weten onze buurman het misschien wel zal |
omdat wanneer we iets niet weten, onze buurman het misschien wel zal |
564 |
weten, tevens stijgt de kans dat onze buurman ons kan helpen |
weten. Tevens stijgt de kans dat onze buurman ons kan helpen |
565 |
exponentieel als hij al langer dan ons \gl\ gebruikt. |
als hij al langer dan ons \gl\ gebruikt. |
566 |
\item[Hardware] Een volgend belangrijk punt is |
\item[Hardware] Een volgend belangrijk punt is |
567 |
\begrip{hardwareondersteuning}. We doen er goed aan eerst uit te |
\begrip{hardwareondersteuning}. We doen er goed aan eerst uit te |
568 |
zoeken of onze hardware wordt ondersteund. Dit kunnen we doen door |
zoeken of onze hardware wordt ondersteund. Dit kunnen we doen door |
571 |
specifieke \gl\ distributie en op de webstek van onze hardware |
specifieke \gl\ distributie en op de webstek van onze hardware |
572 |
producent. |
producent. |
573 |
|
|
574 |
Laptop gebruikers kunnen ten rade gaan op de \linux\ on Laptops website: |
Laptop gebruikers kunnen ten rade gaan op de \engels{\linux\ on Laptops} website: |
575 |
\url{http://www.linux-laptop.net/}. |
\url{http://www.linux-laptop.net/}. |
576 |
|
|
577 |
Als we geen al te exotische hardware gebruiken zal \gl\ werken op onze |
Als we geen al te exotische hardware gebruiken zal \gl\ werken op onze |
584 |
computer dan nemen we niet de laatste \gl\ distributie, maar een |
computer dan nemen we niet de laatste \gl\ distributie, maar een |
585 |
iets oudere. Bij de meeste \gl\ distributies hebben de recentste |
iets oudere. Bij de meeste \gl\ distributies hebben de recentste |
586 |
uitgaven alleen nieuwe (en meestal dus ook zwaardere) software. |
uitgaven alleen nieuwe (en meestal dus ook zwaardere) software. |
587 |
\item[Moeilijkheidsgraad] Mandrake \linux\ staat ervoor bekend een |
\item[Moeilijkheidsgraad] Mandrake en Red Hat hebben de naam |
588 |
beginnersvriendelijke \gl\ distributie te zijn, zoals Red Hat. |
beginnersvriendelijke \gl\ distributies te zijn. |
589 |
\debian\ daarentegen is niet zozeer beginnersvriendelijk maar zeer |
\debian\ daarentegen is niet zozeer beginnersvriendelijk maar zeer |
590 |
stabiel en geschikt voor servers. |
stabiel en geschikt voor servers. |
591 |
|
|
594 |
We verwijzen nogmaals naar de \url{http://www.distrowatch.com} webstek |
We verwijzen nogmaals naar de \url{http://www.distrowatch.com} webstek |
595 |
voor een up to date overzicht van de verschillende \gl\ distributies. |
voor een up to date overzicht van de verschillende \gl\ distributies. |
596 |
|
|
|
|
|
|
|
|
597 |
\chapter{Waar en hoe uitgebreide informatie vinden} |
\chapter{Waar en hoe uitgebreide informatie vinden} |
598 |
\label{ch:info} |
\label{ch:info} |
599 |
|
|
600 |
\citaatnn{manual, n.:\\ |
\citaatnn{manual, n.:\\ |
601 |
A unit of documentation. There are always three or more on a given |
A unit of documentation.\\There are always three or more on a given |
602 |
item. One is on the shelf; someone has the others. The information |
item.\\One is on the shelf; someone has the others.\\The information |
603 |
you need is in the others.}{Ray Simard} |
you need is in the others.}{Ray Simard} |
604 |
|
|
605 |
Wat in dit hoofdstuk volgt is het op \'e\'en na belangrijkste |
Wat in dit hoofdstuk volgt is het op \'e\'en na belangrijkste |
606 |
hoofdstuk in dit deel. We zullen uitleggen waar we informatie kunnen |
hoofdstuk van dit deel. We zullen uitleggen waar we informatie kunnen |
607 |
opzoeken over \gl. |
opzoeken over \gl. |
608 |
|
|
609 |
\section{The Linux Documentation Project (TLDP)} |
\section{The Linux Documentation Project (TLDP)} |
610 |
|
|
611 |
Een eerste startpunt voor informatie over \gl\ is \begrip{The Linux |
Een eerste startpunt voor informatie over \gl\ is \Begrip{The Linux |
612 |
Documentation Project}: \url{http://www.tldp.org/}. |
Documentation Project}\index{Linux Documentation Project}\index{TLDP}: \url{http://www.tldp.org/}. |
613 |
|
|
614 |
TLDP heeft als doel het ontwikkelen van vrije, kwalitatieve |
TLDP heeft als doel het ontwikkelen van vrije, kwalitatieve |
615 |
documentatie voor het \gl\ besturingssysteem. Dit houdt onder andere |
documentatie voor het \gl\ besturingssysteem. Dit houdt onder andere |
616 |
het cre\"eren van ``\begrip{HOWTOs}'' en ``\begrip{Guides}'' in. Zo |
het cre\"eren van ``\Begrip{HOWTOs}'' en ``\Begrip{Guides}'' in. Zo |
617 |
hopen ze een systeem van documentatie op te zetten voor \gl\ dat |
hopen ze een systeem van documentatie op te zetten voor \gl\ dat |
618 |
gemakkelijk te gebruiken en te doorzoeken is. Dit houdt ook de |
gemakkelijk te gebruiken en te doorzoeken is. Dit houdt ook de |
619 |
integratie in van de \begrip{Manual pages}, info docs en andere |
integratie in van de \Begrip{manual pages}, \Begrip{info docs} en andere |
620 |
documenten. |
documenten. |
621 |
|
|
622 |
TLDP bestaat vooral uit vrijwilligers met een minimale centrale |
TLDP bestaat vooral uit vrijwilligers met een minimale centrale |
623 |
organisatie. Iedereen die wil meehelpen wordt dan ook uitgenodigd. |
organisatie. Iedereen die wil meehelpen wordt dan ook uitgenodigd. |
624 |
|
|
625 |
De \linux\ \begrip{HOWTOs} en \begrip{mini-HOWTOs} zijn |
De \linux\ \Begrip{HOWTOs} en \Begrip{mini-HOWTOs} zijn |
626 |
gedetailleerde ``how to'' documenten over specifieke onderwerpen. De |
gedetailleerde ``how to'' documenten over specifieke onderwerpen. De |
627 |
HOWTOs worden geschreven in SGML (een soort opmaak taal) en worden |
HOWTOs worden geschreven in SGML (een soort opmaak taal) en worden |
628 |
vertaald naar verschillende formaten door gebruik te maken van |
vertaald naar verschillende formaten door gebruik te maken van |
629 |
SGML-tools (Linuxdoc DTD) of door DocBook/DSSSL tools te gebruiken. |
SGML-tools (Linuxdoc DTD) of DocBook/DSSSL tools. |
630 |
|
|
631 |
Hierdoor is het mogelijk de HOWTOs en de mini-HOWTOs te raadplegen in |
Hierdoor is het mogelijk de HOWTOs en de mini-HOWTOs te raadplegen in |
632 |
volgende formaten: |
volgende formaten: |
643 |
|
|
644 |
\subsection{HOWTOs} |
\subsection{HOWTOs} |
645 |
|
|
646 |
De \begrip{HOWTO}s kunnen we downloaden van of bekijken op de TLDP |
De \begrip{HOWTOs} kunnen we downloaden van, of bekijken op de TLDP |
647 |
webstek. Er zijn tevens ook nog verschillende andere webstekken die |
webstek. Er zijn tevens nog verschillende andere webstekken die |
648 |
deze service aanbieden. |
deze service aanbieden. |
649 |
|
|
650 |
\begin{description} |
\begin{description} |
653 |
\item[Adv-Routing-HOWTO] Een zeer handige stap voor stap uitleg over |
\item[Adv-Routing-HOWTO] Een zeer handige stap voor stap uitleg over |
654 |
\begrip{iproute2}, trafiek controle en een stuk over netfilter. |
\begrip{iproute2}, trafiek controle en een stuk over netfilter. |
655 |
\item[Apache-Compile-HOWTO] Beschrijving hoe we de \begrip{web server} |
\item[Apache-Compile-HOWTO] Beschrijving hoe we de \begrip{web server} |
656 |
\begrip{Apache} compileren met belangrijke modules zoals mod\_perl, |
\Begrip{Apache}\index{apache}\ compileren met belangrijke modules zoals mod\_perl, |
657 |
mod\_dav, mod\_auth\_ldap, mod\_dynvhost, mod\_roaming, |
mod\_dav, mod\_auth\_ldap, mod\_dynvhost, mod\_roaming, |
658 |
mod\_jserv en mod\_php. |
mod\_jserv en mod\_php. |
659 |
\item[Apache-Overview-HOWTO] Overzicht van de Apache web server en |
\item[Apache-Overview-HOWTO] Overzicht van de Apache web server en |
665 |
\item[CD-Writing-HOWTO] Legt uit hoe we CD-ROMs moeten schrijven onder |
\item[CD-Writing-HOWTO] Legt uit hoe we CD-ROMs moeten schrijven onder |
666 |
\gl. |
\gl. |
667 |
\item[Config-HOWTO] Probeert uit te leggen hoe we ons zopas |
\item[Config-HOWTO] Probeert uit te leggen hoe we ons zopas |
668 |
ge\"installeerde \gl\ systeem ``fine-tunen''. Geeft ook een |
ge\"installeerde \gl\ systeem \engels{fine tunen}. Geeft ook een |
669 |
verzameling van configuratie bestanden voor de meest voorkomende |
verzameling van configuratie bestanden voor de meest voorkomende |
670 |
programma's en services. |
programma's en services. |
671 |
\item[DNS-HOWTO] Hoe we een DNS service opzetten. |
\item[DNS-HOWTO] Hoe we een DNS service opzetten. |
672 |
\item[DOS-Win-to-Linux-HOWTO] Speciaal geschreven voor alle DOS en |
\item[DOS-Win-to-Linux-HOWTO] Speciaal geschreven voor alle DOS en |
673 |
\win gebruikers die beslist hebben om over te stappen naar \gl. |
\win gebruikers die beslist hebben om over te stappen naar \gl. |
674 |
\item[Firewall-HOWTO] Hoe we een \begrip{firewall} opzetten. |
\item[Firewall-HOWTO] Hoe we een \begrip{firewall} opzetten. |
675 |
\item[Hardware-HOWTO] Lijst van de meest door \linux\ gesupporteerde |
\item[Hardware-HOWTO] Lijst van de meest door \linux\ ondersteunde |
676 |
\begrip{hardware} en een nuttige hulp bij het lokaliseren van de |
\begrip{hardware} en hulp bij het lokaliseren van de |
677 |
nodige \begrip{drivers}. |
nodige \begrip{drivers}. |
678 |
\item[IP-Masquerade-HOWTO] Legt uit hoe we \linux\ \begrip{IP |
\item[IP-Masquerade-HOWTO] Legt uit hoe we \linux\ \begrip{IP |
679 |
Masquerade} aanzetten op een gegeven \linux\ systeem. |
Masquerade} aanzetten op een gegeven \linux\ systeem. |
685 |
\item[Sound-HOWTO] Beschrijft de geluidsondersteuning voor \linux\ (hardware, |
\item[Sound-HOWTO] Beschrijft de geluidsondersteuning voor \linux\ (hardware, |
686 |
configuratie, \ldots). |
configuratie, \ldots). |
687 |
\item[TeTeX-HOWTO] Omvat de basis installatie en gebruik van het het |
\item[TeTeX-HOWTO] Omvat de basis installatie en gebruik van het het |
688 |
\begrip{teTeX} \begrip{TeX} en \begrip{\LaTeX} systeem, plus |
\begrip{TeTeX} \begrip{TeX} en \Begrip{LaTeX}\index{latex@\LaTeX} systeem, plus |
689 |
bijkomende pakketten zoals Ghostscript. |
bijkomende pakketten zoals Ghostscript. |
690 |
\item[Xinerama-HOWTO] Configuratie van XFree86 Version 4.0 met |
\item[Xinerama-HOWTO] Configuratie van XFree86 Version 4.0 met |
691 |
meerdere monitors en de \begrip{Xinerama} extensies. |
meerdere monitors en de \Begrip{Xinerama}\index{xinerama}\ extensies. |
692 |
\end{description} |
\end{description} |
693 |
|
|
694 |
\subsection{Mini-HOWTOs} |
\subsection{Mini-HOWTOs} |
699 |
\begin{description} |
\begin{description} |
700 |
\item[3-Button-Mouse] Hoe we een muis met drie knoppen kunt laten |
\item[3-Button-Mouse] Hoe we een muis met drie knoppen kunt laten |
701 |
werken onder \gl. |
werken onder \gl. |
702 |
\item[Advocacy] Suggesties voor de \gl\ community hoe ze het \gl\ |
\item[Advocacy] Suggesties voor de \gl\ community: hoe ze het \gl\ |
703 |
woord kunnen verkondigen. |
woord kunnen verkondigen. |
704 |
\item[Alsa-sound] Beschrijft de installatie van de \begrip{ALSA} |
\item[Alsa-sound] Beschrijft de installatie van de \begrip{ALSA} |
705 |
geluidsdrivers voor \linux. |
geluidsdrivers voor \linux. |
706 |
\item[BackspaceDelete] Oplossingen om werkende Backspace en Delete |
\item[BackspaceDelete] Oplossingen om werkende Backspace en Delete |
707 |
toetsen te hebben op de console en onder X. |
toetsen te hebben op de console en onder X. |
708 |
\item[DHCP] Beantwoordt de basisvragen over hoe we een \begrip{DHCP |
\item[DHCP] Beantwoordt de basisvragen over hoe we een \Begrip{DHCP |
709 |
server} en \begrip{DHCP client} opzetten. |
server} en \Begrip{DHCP client} opzetten.\index{DHCP} |
710 |
\item[Euro-Char-Support] Beschrijving hoe we ondersteuning voor het |
\item[Euro-Char-Support] Beschrijving hoe we ondersteuning voor het |
711 |
Euro-teken aanzetten onder \gl. |
Euro-teken aanzetten onder \gl.\index{euro} |
712 |
\item[Install-Strategies] Bespreking van enkele |
\item[Install-Strategies] Bespreking van enkele |
713 |
installatiestrategi\"en voor diegenen die willen |
installatiestrategi\"en voor diegenen die willen |
714 |
\begrip{dualbooten} tussen \gl\ en \win. |
\begrip{dualbooten} tussen \gl\ en \win. |
715 |
\item[LILO] Het gebruik van \begrip{LILO} (Linux Loader). |
\item[LILO] Het gebruik van \Begrip{LILO}\index{lilo}\ (Linux Loader). |
716 |
\item[Multiboot-with-LILO] Hoe te multibooten tussen \win\ 9X, \win\ |
\item[Multiboot-with-LILO] Hoe te multibooten tussen \win\ 9X, \win\ |
717 |
NT en \gl. |
NT en \gl. |
718 |
\item[Partition] Hoe we het best onze harde schijf indelen. |
\item[Partition] Hoe we het best onze harde schijf indelen. |
728 |
\item[Advanced Bash-Scripting Guide] Dit document is tegelijkertijd |
\item[Advanced Bash-Scripting Guide] Dit document is tegelijkertijd |
729 |
een tutorial als een referentiewerk voor Bash shell scripting. Het |
een tutorial als een referentiewerk voor Bash shell scripting. Het |
730 |
vereist geen voorkennis van shell scripting maar bezorgt ons op |
vereist geen voorkennis van shell scripting maar bezorgt ons op |
731 |
korte tijd een degelijke onderbouw. Het staat ook vol van goed |
korte tijd een degelijke onderbouw. Het staat ook vol goed |
732 |
becommentarieerde voorbeelden. |
becommentarieerde voorbeelden. |
733 |
\item[\begrip{Linux From Scratch}] Dit boek beschrijft het proces om |
\item[\begrip{Linux From Scratch}] Dit boek beschrijft het proces om |
734 |
ons eigen \gl\ besturingssysteem te maken door alleen maar gebruik |
ons eigen \gl\ besturingssysteem te maken door alleen maar gebruik |
735 |
te maken van de broncode. |
te maken van broncode. |
736 |
\item[The Linux Cookbook: Tips and Techniques for Everyday Use] Meer |
\item[The Linux Cookbook: Tips and Techniques for Everyday Use] Meer |
737 |
dan $1500$ tijdbesparende tips en recepten voor moderne |
dan $1500$ tijdbesparende tips en recepten voor moderne |
738 |
computergebruikers. |
computergebruikers. |
754 |
|
|
755 |
\subsection{De man pagina's} |
\subsection{De man pagina's} |
756 |
|
|
757 |
\begrip{man} pagina's zijn de hulppagina's die bij een programma horen. Zie |
\Begrip{Man} pagina's zijn de hulppagina's die bij een programma horen. Zie sectie |
758 |
\ref{mangebruiken} voor het gebruik ervan. De meeste programma's bevatten een |
\ref{mangebruiken} voor het gebruik ervan. De meeste programma's bevatten een |
759 |
man pagina, hierin vinden we dan een korte uitleg wat het programma |
man pagina, hierin vinden we dan een korte uitleg wat het programma |
760 |
doet en hoe we het gebruiken. We vinden er meestal ook een opsomming |
doet en hoe we het gebruiken. We vinden er meestal ook een opsomming |
761 |
van alle opties. |
van alle opties.\index{man} |
762 |
|
|
763 |
\subsection{Linux gazette} |
\subsection{Linux gazette} |
764 |
|
|
765 |
\begrip{Linux Gazette} is een on line magazine dat telkens voorzien is van |
\begrip{Linux Gazette} is een on line magazine dat telkens voorzien is van |
766 |
\gl\ tips en trucs. Via de TLDP webstek kunnen we de huidige editie |
\gl\ tips en trucs. Via de TLDP webstek kunnen we de huidige editie |
767 |
raadplegen of ook alle voorbije edities. |
raadplegen en ook alle voorbije edities. |
768 |
|
|
769 |
\subsection{Linux focus} |
\subsection{Linux focus} |
770 |
|
|
771 |
\begrip{Linux focus} is ook een on line magazine die volledig gedragen wordt |
\begrip{Linux focus} is ook een on line magazine die volledig gedragen wordt |
772 |
door vrijwilligers. Het is een waar internationaal en gratis |
door vrijwilligers. Het is een waar internationaal en gratis |
773 |
initiatief. Tevens wordt bijna iedere editie volledig naar het |
initiatief. Tevens wordt bijna iedere editie volledig naar het |
774 |
Nederlands vertaald door de vrijwilligers. |
Nederlands vertaald door vrijwilligers. |
775 |
|
|
776 |
\section{Nieuwsgroepen} |
\section{Nieuwsgroepen} |
777 |
|
|
783 |
\subsection{gnu.*} |
\subsection{gnu.*} |
784 |
|
|
785 |
De nieuwsgroepen die beginnen met gnu.* handelen over de \gnu. Hier |
De nieuwsgroepen die beginnen met gnu.* handelen over de \gnu. Hier |
786 |
vinden we onder andere discussies over bepaalde \gnu software. |
vinden we onder andere discussies over bepaalde \gnu\ software. |
787 |
|
|
788 |
\subsection{comp.os.linux.*} |
\subsection{comp.os.linux.*} |
789 |
|
|
817 |
\subsection{be.comp.os.linux} |
\subsection{be.comp.os.linux} |
818 |
Onze eigenste Belgische \linux nieuwsgroep. Op |
Onze eigenste Belgische \linux nieuwsgroep. Op |
819 |
\url{http://lugwv.be/~swift/bcol/} vinden we alvast de FAQ van deze |
\url{http://lugwv.be/~swift/bcol/} vinden we alvast de FAQ van deze |
820 |
nieuwsgroep. Iedereen die op deze nieuwsgroep iets wil posten leest |
nieuwsgroep. Iedereen die iets wil posten leest die FAQ best eens door. |
|
best eens de FAQ door. |
|
821 |
|
|
822 |
\section{Google} |
\section{Google} |
823 |
|
|
843 |
|
|
844 |
Op \url{http://dag.wieers.be/} vinden we de webstek van de |
Op \url{http://dag.wieers.be/} vinden we de webstek van de |
845 |
\begrip{Belgian HOWTO} |
\begrip{Belgian HOWTO} |
846 |
\subsection{ZeusWPI} |
|
847 |
|
\subsection{ZeusWPI}\index{ZeusWPI} |
848 |
|
|
849 |
De webstek van ZeusWPI (\url{http://www.zeus.rug.ac.be/} bevat ook |
De webstek van ZeusWPI (\url{http://www.zeus.rug.ac.be/} bevat ook |
850 |
enkele cursussen (\url{http://www.zeus.rug.ac.be/pub.shtml}) over \gl. |
enkele cursussen (\url{http://www.zeus.rug.ac.be/pub.shtml}) over \gl. |
851 |
|
|
852 |
\subsection{Linux.org} |
\subsection{Linux.org} |
853 |
|
|
854 |
\url{http://www.linux.org/} is ook een goed startpunt. |
\url{http://www.linux.org/} is een goed startpunt. |
855 |
|
|
856 |
\section{LUGs} |
\section{LUGs} |
857 |
|
|
858 |
\begrip{\linux\ User Groups} zijn verenigingen waar \linux\ gebruikers |
\Begrip{\linux\ User Groups}\index{LUGs}\ zijn verenigingen waar \linux\ gebruikers |
859 |
samenkomen. In de Belgian HOWTO vinden we een overzichtje van de |
samenkomen. In de Belgian HOWTO vinden we een overzichtje van de |
860 |
Belgische LUGs. |
Belgische LUGs. |
861 |
|
|
|
|
|
862 |
\chapter{Ontstaan van \gl} |
\chapter{Ontstaan van \gl} |
863 |
\label{ontstaan} |
\label{ontstaan} |
864 |
|
|
878 |
Universiteiten, onderzoeksinstituten, openbare diensten en computer |
Universiteiten, onderzoeksinstituten, openbare diensten en computer |
879 |
bedrijven begonnen allemaal het zeer krachtige \unix\ |
bedrijven begonnen allemaal het zeer krachtige \unix\ |
880 |
besturingssysteem te gebruiken om vele van de nu gebruikte |
besturingssysteem te gebruiken om vele van de nu gebruikte |
881 |
technologi\"en te ontwikkelen die nu een deel zijn van \unix. |
technologi\"en te ontwikkelen. |
882 |
|
|
883 |
\unix\ wordt tot op vandaag nog steeds verder ontwikkeld. Als iemand |
\unix\ wordt tot op vandaag nog steeds verder ontwikkeld. Als iemand |
884 |
beweert dat hij \unix\ gebruikt gebruikt hij in feite een afgeleide |
beweert dat hij \unix\ gebruikt, gebruikt hij in feite een afgeleide |
885 |
versie ervan. De originele \unix\ bestaat niet meer. |
versie ervan. De originele \unix\ bestaat niet meer. |
886 |
|
|
|
|
|
887 |
\section{\gnu} |
\section{\gnu} |
888 |
|
|
889 |
\begin{urlbox} |
\begin{urlbox} |
890 |
\url{http://www.gnu.org/gnu/manifesto.nl.html} |
\url{http://www.gnu.org/gnu/manifesto.nl.html} |
891 |
\end{urlbox} |
\end{urlbox} |
892 |
|
|
893 |
Het \gnu\ Manifest, hieronder, zoals beschreven in |
Het \gnu\ Manifest, zoals beschreven in sectie |
894 |
\ref{sec:gnu-manifest}, is geschreven door Richard Stallman (figuur |
\ref{sec:gnu-manifest}, is geschreven door Richard Stallman (figuur |
895 |
\ref{rms}) aan het begin van het \gnu\ Project. Het heeft als doel |
\ref{rms}) aan het begin van het \gnu\ Project. Het heeft als doel |
896 |
deelnemers en steun te vragen. De eerste paar jaren werd dit document |
deelnemers en steun te vragen. De eerste paar jaren werd dit document |
897 |
regelmatig bijgewerkt om het relevant te houden, maar nu lijkt het het |
regelmatig bijgewerkt om het relevant te houden, maar nu lijkt het het |
898 |
beste om het in de oorspronkelijke vorm aan te bieden. |
beste om het in de oorspronkelijke vorm aan te bieden. |
899 |
|
|
900 |
|
|
901 |
\begin{figure} |
\begin{figure} |
902 |
\center |
\begin{center} |
903 |
\includegraphics{inleiding/rms.jpg} |
\begin{tabular}{cc} |
904 |
\caption{Richard Stallman} |
\includegraphics[height=4cm]{inleiding/rms.jpg} |
905 |
\label{rms} |
& \includegraphics[height=4cm]{inleiding/torvalds.jpg} |
906 |
|
\end{tabular} |
907 |
|
\caption{Links: Richard M. Stallman; rechts: Linus Torvalds.} |
908 |
|
\label{rms}\label{torvals} |
909 |
|
\end{center} |
910 |
\end{figure} |
\end{figure} |
911 |
|
|
|
|
|
912 |
\subsection{\gnu\ Manifest} |
\subsection{\gnu\ Manifest} |
913 |
\label{sec:gnu-manifest} |
\label{sec:gnu-manifest} |
914 |
|
|
915 |
Op \url{http://www.gnu.org/gnu/manifesto.nl.html} vinden we het |
Op \url{http://www.gnu.org/gnu/manifesto.nl.html} vinden we het |
916 |
\begrip{\gnu\ Manifest}. |
\Begrip{\gnu\ Manifest}. |
917 |
|
|
918 |
\subsection{Meer \gnu\ informatie} |
\subsection{Meer \gnu\ informatie} |
919 |
|
|
920 |
\url{http://www.gnu.org/gnu/thegnuproject.html} geeft een zeer |
\url{http://www.gnu.org/gnu/thegnuproject.html} geeft een zeer |
921 |
uitgebreide uiteenzetting over het ontstaan van het \gnu\ project. |
uitgebreide uiteenzetting over het ontstaan van het \gnu\ project. |
922 |
|
|
923 |
Tijdens de cursus geven we een korte schets van het ontstaan van het |
%% Zou kunnen. Maar deze informatie is hier niet relevant. |
924 |
\gnu\ project. |
%Tijdens de cursus geven we een korte schets van het ontstaan van het |
925 |
|
%\gnu\ project. |
926 |
|
|
927 |
\section{\linux} |
\section{\linux} |
928 |
|
|
929 |
Zoals we reeds vertelden is \linux\ de kernel van het \gl\ |
Linux is de kernel van het \gl\ |
930 |
besturingssysteem. De \linux\ kernel werd ontwikkeld door Linus |
besturingssysteem. De \linux\ kernel werd ontwikkeld door Linus |
931 |
Torvalds (figuur \ref{torvals}) in 1991, toen een student aan de |
Torvalds (figuur \ref{torvals}) in 1991, toen student aan de |
932 |
universiteit van Helsinki. |
universiteit van Helsinki. |
933 |
|
|
934 |
Hij was begonnen met de ontwikkeling van \linux\ omdat hij ontevreden |
Hij was begonnen met de ontwikkeling van \linux\ omdat hij ontevreden |
938 |
Vandaag de dag wordt er verder ontwikkeld aan \linux\ door honderden |
Vandaag de dag wordt er verder ontwikkeld aan \linux\ door honderden |
939 |
ontwikkelaars. |
ontwikkelaars. |
940 |
|
|
|
\begin{figure} |
|
|
\center |
|
|
\includegraphics{inleiding/torvalds.jpg} |
|
|
\caption{Linus Torvalds} |
|
|
\label{torvals} |
|
|
\end{figure} |
|
941 |
|
|
942 |
\section{\gl\ en niet \linux\ alleen} |
\section{\gl\ en niet \linux\ alleen} |
943 |
|
|
952 |
\url{http://www.gnu.org/gnu/linux-and-gnu.html} |
\url{http://www.gnu.org/gnu/linux-and-gnu.html} |
953 |
staat er heel duidelijk uitgelegd waarom we dit doen. |
staat er heel duidelijk uitgelegd waarom we dit doen. |
954 |
|
|
955 |
Kort gezegd: wij (en de rest van de GNU gemeenschap) zijn van oordeel |
Kort gezegd: wij (en de rest van de GNU gemeenschap) zijn van oordeel dat |
956 |
als iemand \linux\ zegt als hij het over \gl\ heeft geen krediet |
als iemand \linux\ zegt als hij het over \gl\ heeft, hij geen krediet |
957 |
wil geven aan het \gnu\ project. Zonder \gnu\ was er nooit een \linux\ |
geeft aan het \gnu\ project. Zonder \gnu\ was er nooit een \linux\ |
958 |
kernel gekomen. Wij laten het niet toe dat \gnu\ vergeten wordt! |
kernel gekomen. Wij laten het niet toe dat \gnu\ vergeten wordt! |
959 |
|
|
960 |
\Begrip{Zonder \gnu\ was de hele filosofie omtrent vrije software er |
\Begrip{Zonder \gnu\ was de hele filosofie omtrent vrije software er |
967 |
\label{duo} |
\label{duo} |
968 |
\end{figure} |
\end{figure} |
969 |
|
|
970 |
|
\chapter{Vrije versus opensource software} |
971 |
|
|
972 |
|
\citaatnnn{Never trust an operating system you don't have sources for.} |
973 |
|
|
974 |
\chapter{Vrije software} |
\section{Vrije software} |
975 |
|
|
976 |
\citaatnn{Today we no longer have any copies of Unix, because |
\citaatnn{Today we no longer have any copies of Unix, because |
977 |
we have replaced them with free operating systems. If we could not |
we have replaced them with free operating systems.\\If we could not |
978 |
replace a machine's operating system with a free one, we replaced the |
replace a machine's operating system with a free one, we replaced the |
979 |
machine instead.}{Richard Stallman} |
machine instead.}{Richard Stallman} |
980 |
|
|
991 |
|
|
992 |
``Free software'' (vrije software) slaat op vrijheid, niet op prijs. |
``Free software'' (vrije software) slaat op vrijheid, niet op prijs. |
993 |
Om het in context te zien: ``free speech'', in plaats van ``free |
Om het in context te zien: ``free speech'', in plaats van ``free |
994 |
beer''. ``Vrije software'' slaat op het recht van de gebruiker om de |
beer'' --- ``Vrije meningsuiting'' in plaats van ``Brood en Spelen {\scriptsize{en zwijgen}}''. |
995 |
|
``Vrije software'' slaat op het recht van de gebruiker om de |
996 |
software te gebruiken, kopi\"eren, verspreiden, bestuderen, veranderen |
software te gebruiken, kopi\"eren, verspreiden, bestuderen, veranderen |
997 |
en verbeteren. Kort samengevat in vier punten: |
en verbeteren. Kort samengevat in vier punten: |
998 |
\begin{itemize} |
\begin{itemize} |
1011 |
gebruikers al deze vrijheden hebben. Dus je zou het moeten kunnen |
gebruikers al deze vrijheden hebben. Dus je zou het moeten kunnen |
1012 |
kopi\"eren, met of zonder veranderingen, en aan iedereen kunnen geven, |
kopi\"eren, met of zonder veranderingen, en aan iedereen kunnen geven, |
1013 |
gratis, of tegen betaling. Het betekent ook dat je niet om |
gratis, of tegen betaling. Het betekent ook dat je niet om |
1014 |
toestemming hoeft te vragen als je dit wilt doen. |
toestemming hoeft te vragen als je dit wil doen. |
1015 |
|
|
1016 |
Je zou ook de vrijheid moeten hebben om veranderingen aan te brengen |
Je zou ook de vrijheid moeten hebben om veranderingen aan te brengen |
1017 |
voor eigen gebruik, zonder zelfs maar te hoeven vertellen dat je ze |
voor eigen gebruik, zonder zelfs maar te hoeven vertellen dat je ze |
1028 |
en te veranderen. |
en te veranderen. |
1029 |
|
|
1030 |
Om deze vrijheden te beschermen, moeten ze onschendbaar zijn, zolang |
Om deze vrijheden te beschermen, moeten ze onschendbaar zijn, zolang |
1031 |
de gebruiker niks verkeerds doet; Als de auteur van de software de |
de gebruiker niets verkeerds doet. Als de auteur van de software de |
1032 |
mogelijkheid heeft de licentie in te trekken, hoewel je daarvoor geen |
mogelijkheid heeft de licentie in te trekken, hoewel je daarvoor geen |
1033 |
aanleiding hebt gegeven, is de software niet vrij. |
aanleiding hebt gegeven, is de software niet vrij. |
1034 |
|
|
1035 |
Echter, sommige regels voor het verspreiden van software zijn |
Echter, sommige regels voor het verspreiden van software zijn |
1036 |
acceptabel, als deze niet in conflict zijn met de centrale vrijheden. |
acceptabel, als deze niet in conflict zijn met de centrale vrijheden. |
1037 |
\begrip{Copyleft}, bijvoorbeeld, is de regel dat iemand die het |
\Begrip{Copyleft}, bijvoorbeeld, is de regel dat iemand die het |
1038 |
programma verspreid geen beperkingen op het gebruik kan toebrengen die |
programma verspreid geen beperkingen op het gebruik kan toebrengen die |
1039 |
de centrale vrijheden aan anderen ontzegt. Deze regel is niet in |
de centrale vrijheden aan anderen ontzegt. Deze regel is niet in |
1040 |
conflict met de centrale vrijheden. |
conflict met de centrale vrijheden. |
1065 |
|
|
1066 |
Wanneer gesproken wordt over vrije software is het raadzaam termen als |
Wanneer gesproken wordt over vrije software is het raadzaam termen als |
1067 |
``gratis'' te vermijden, omdat deze de suggestie wekken dat vrije |
``gratis'' te vermijden, omdat deze de suggestie wekken dat vrije |
1068 |
software altijd kosteloos is; dit is niet het geval. Om termen als |
software altijd kosteloos is; dit is niet het geval. |
1069 |
|
|
1070 |
|
Om termen als |
1071 |
``softwarepiraterij'' kan ook het best met een grote boog omheen |
``softwarepiraterij'' kan ook het best met een grote boog omheen |
1072 |
worden gezeild. |
worden gezeild. |
1073 |
|
|
1074 |
\chapter{Wat is opensource?} |
\section{Wat is opensource?} |
|
|
|
|
\citaatnnn{Never trust an operating system you don't have sources for.} |
|
1075 |
|
|
1076 |
Vaak wordt er ook gesproken over opensource als vrije software bedoeld |
Vaak wordt er ook gesproken over opensource als vrije software bedoeld |
1077 |
wordt. Hieronder staat de precieze definitie van opensource. Dit |
wordt. Hieronder staat de precieze definitie van opensource. Dit |
1081 |
Dit is een iets leesbaardere versie van op |
Dit is een iets leesbaardere versie van op |
1082 |
\url{http://www.opensource.org/docs/osd-dutch.php} |
\url{http://www.opensource.org/docs/osd-dutch.php} |
1083 |
|
|
1084 |
\section{De opensource definitie} |
\subsection{De opensource definitie} |
1085 |
Opensource betekent niet slechts toegang tot de broncode. De |
Opensource betekent niet slechts toegang tot de broncode. De |
1086 |
distributievoorwaarden van opensource software moeten voldoen aan de |
distributievoorwaarden van opensource software moeten voldoen aan de |
1087 |
volgende criteria: |
volgende criteria: |
1088 |
|
|
1089 |
\subsection{Vrije herdistributie} |
\subsubsection{Vrije herdistributie} |
1090 |
De licentie mag geen enkele partij beperken in het verkopen of |
De licentie mag geen enkele partij beperken in het verkopen of |
1091 |
weggeven van de software als een component van een softwaredistributie |
weggeven van de software als een component van een softwaredistributie |
1092 |
die is samengesteld uit programma's uit meerdere verschillende |
die is samengesteld uit programma's uit meerdere verschillende |
1093 |
bronnen. De licentie mag geen aandeel in de opbrengst of andere |
bronnen. De licentie mag geen aandeel in de opbrengst of andere |
1094 |
honorarium eisen voor zo'n verkoop. |
honorarium eisen voor zo'n verkoop. |
1095 |
|
|
1096 |
\subsection{Broncode} |
\subsubsection{Broncode} |
1097 |
Het programma moet de broncode bevatten en moet de distributie van |
Het programma moet de broncode bevatten en moet de distributie van |
1098 |
zowel broncode als in gecompileerde vorm toestaan. Als een vorm van |
zowel broncode als in gecompileerde vorm toestaan. Als een vorm van |
1099 |
het product wordt verspreid zonder broncode, moet er een duidelijke |
het product wordt verspreid zonder broncode, moet er een duidelijke |
1104 |
toegestaan. Tussenvormen zoals uitvoer van een preprocessor of |
toegestaan. Tussenvormen zoals uitvoer van een preprocessor of |
1105 |
vertaler zijn niet toegestaan. |
vertaler zijn niet toegestaan. |
1106 |
|
|
1107 |
\subsection{Afgeleide werken} |
\subsubsection{Afgeleide werken} |
1108 |
De licentie moet aanpassingen en afgeleide werken toestaan, en moet |
De licentie moet aanpassingen en afgeleide werken toestaan, en moet |
1109 |
toestaan dat deze worden verspreid onder dezelfde voorwaarden als de |
toestaan dat deze worden verspreid onder dezelfde voorwaarden als de |
1110 |
licentie van de originele software. |
licentie van de originele software. |
1111 |
|
|
1112 |
\subsection{Integriteit van de broncode van de auteur} |
\subsubsection{Integriteit van de broncode van de auteur} |
1113 |
De licentie mag de verspreiding van de aangepaste broncode alleen |
De licentie mag de verspreiding van de aangepaste broncode alleen |
1114 |
beperken als de licentie de verspreiding van ``patch files'' met de |
beperken als de licentie de verspreiding van ``patch files'' met de |
1115 |
broncode toestaat met als doel het programma aan te passen als het |
broncode toestaat met als doel het programma aan te passen als het |
1118 |
eisen dat afgeleide werken een andere naam of een ander versienummer |
eisen dat afgeleide werken een andere naam of een ander versienummer |
1119 |
dragen dan de originele software. |
dragen dan de originele software. |
1120 |
|
|
1121 |
\subsection{Geen discriminatie van personen of groepen} |
\subsubsection{Geen discriminatie van personen of groepen} |
1122 |
De licentie mag geen enkel persoon of groep van personen |
De licentie mag geen enkel persoon of groep van personen |
1123 |
discrimineren. |
discrimineren. |
1124 |
|
|
1125 |
\subsection{Geen discriminatie van toepassingsgebieden} |
\subsubsection{Geen discriminatie van toepassingsgebieden} |
1126 |
De licentie mag niemand verbieden het programma te gebruiken voor een |
De licentie mag niemand verbieden het programma te gebruiken voor een |
1127 |
bepaald toepassingsgebied. Het mag het gebruik van het programma door |
bepaald toepassingsgebied. Het mag bijvoorbeeld het gebruik van het programma door |
1128 |
bedrijven of voor genetisch onderzoek bijvoorbeeld niet verbieden. |
bedrijven of voor genetisch onderzoek niet verbieden. |
1129 |
|
|
1130 |
\subsection{Verspreiding van licentie} |
\subsubsection{Verspreiding van licentie} |
1131 |
De rechten die aan het programma zijn verbonden moeten van toepassing |
De rechten die aan het programma zijn verbonden moeten van toepassing |
1132 |
zijn voor iedereen naar wie het programma wordt geherdistribueerd, |
zijn voor iedereen naar wie het programma wordt geherdistribueerd, |
1133 |
zonder de verplichting voor die partijen om een additionele licentie |
zonder de verplichting voor die partijen om een additionele licentie |
1134 |
uit te voeren. |
uit te voeren. |
1135 |
|
|
1136 |
\subsection{De licentie mag niet specifiek zijn voor een product} |
\subsubsection{De licentie mag niet specifiek zijn voor een product} |
1137 |
De rechten die aan het programma zijn verbonden mogen niet afhankelijk |
De rechten die aan het programma zijn verbonden mogen niet afhankelijk |
1138 |
zijn van een speciale softwaredistributie waar het programma deel van |
zijn van een speciale softwaredistributie waar het programma deel van |
1139 |
uitmaakt. Als het programma uit die distributie wordt gehaald en |
uitmaakt. Als het programma uit die distributie wordt gehaald en |
1142 |
geherdistribueerd dezelfde rechten hebben als zijn toegekend in |
geherdistribueerd dezelfde rechten hebben als zijn toegekend in |
1143 |
combinatie met de originele softwaredistributie. |
combinatie met de originele softwaredistributie. |
1144 |
|
|
1145 |
\subsection{De licentie mag andere software niet beperken} |
\subsubsection{De licentie mag andere software niet beperken} |
1146 |
De licentie mag geen beperkingen plaatsen op andere software die |
De licentie mag geen beperkingen plaatsen op andere software die |
1147 |
samen met de gelicenseerde software is verspreid. De licentie mag |
samen met de gelicenseerde software is verspreid. De licentie mag |
1148 |
bijvoorbeeld niet eisen dat alle software die op hetzelfde medium |
bijvoorbeeld niet eisen dat alle software die op hetzelfde medium |
1149 |
wordt verspreid opensource moet zijn. |
wordt verspreid opensource moet zijn. |
1150 |
|
|
1151 |
\section{Vrije software en opensource, wat is het verschil?} |
\subsection{Vrije software en opensource, wat is het verschil?} |
1152 |
|
|
1153 |
Op \url{http://www.gnu.org/philosophy/free-software-for-freedom.html} |
Op \url{http://www.gnu.org/philosophy/free-software-for-freedom.html} |
1154 |
vinden we een verklaring waarom vrije software beter is dan opensource |
vinden we een verklaring waarom vrije software beter is dan opensource |
1157 |
Kort gezegd kunnen we het als volgt samenvatten: de vrije software |
Kort gezegd kunnen we het als volgt samenvatten: de vrije software |
1158 |
beweging legt de nadruk op vrijheid van de gebruiker (en beschermt |
beweging legt de nadruk op vrijheid van de gebruiker (en beschermt |
1159 |
hem) terwijl de opensource beweging de nadruk legt op het economische |
hem) terwijl de opensource beweging de nadruk legt op het economische |
1160 |
aspect, nl. dat er door beter product ontstaat. |
aspect, namelijk dat er met open source een beter product ontstaat. |
1161 |
|
|
1162 |
\chapter{Licenties} |
\section{Licenties} |
1163 |
|
|
1164 |
Vrije software of opensource software kan uitgegeven worden onder |
Vrije software of opensource software kan uitgegeven worden onder |
1165 |
verschillende soorten licenties. We geven een korte opsomming van de |
verschillende soorten licenties. We geven een korte opsomming van de |
1166 |
meest gebruikte licenties. |
meest gebruikte licenties. |
1167 |
|
|
1168 |
\section{GPL} |
\subsection{GPL} |
1169 |
|
|
1170 |
De \begrip{GNU Public License} (\begrip{GPL}) is de meeste gebruikte |
De \begrip{GNU Public License} (\begrip{GPL}) is de meeste gebruikte |
1171 |
licentie voor vrije software. Deze licentie staat op |
licentie voor vrije software. Deze licentie staat op |
1172 |
\url{http://www.gnu.org/licenses/licenses.html#GPL}. In appendix |
\url{http://www.gnu.org/licenses/licenses.html#GPL}. In appendix |
1173 |
\ref{ch:gpl} vinden we de \gnu\ GPL ook. |
\ref{ch:gpl} vinden we de \gnu\ GPL ook. |
1174 |
|
|
1175 |
\section{LGPL} |
\subsection{LGPL} |
1176 |
|
|
1177 |
De \begrip{Lesser GNU Public License} (\begrip{LGPL}) is een minder |
De \begrip{Lesser GNU Public License} (\begrip{LGPL}) is een minder |
1178 |
vrije vorm van de GPL die vooral gebruikt wordt voor libraries. Meer |
vrije vorm van de GPL die vooral gebruikt wordt voor libraries. Meer |
1179 |
informatie op: \url{http://www.gnu.org/licenses/licenses.html#LGPL} |
informatie op: \url{http://www.gnu.org/licenses/licenses.html#LGPL} |
1180 |
|
|
1181 |
\section{FDL} |
\subsection{FDL} |
1182 |
De \begrip{Free Documentation License} (\begrip{FDL}) wordt gebruikt |
De \begrip{Free Documentation License} (\begrip{FDL}) wordt gebruikt |
1183 |
om documentatie vrij te maken (zoals deze cursus). |
om documentatie vrij te maken (zoals deze cursus). |
1184 |
\url{http://www.gnu.org/licenses/licenses.html#FDL} bevat een digitale |
Op \url{http://www.gnu.org/licenses/licenses.html#FDL} is een digitale versie van |
1185 |
versie, achteraan in appendix \ref{fdl} staat de licentie ook. |
deze licentie weer te vinden, in appendix \ref{fdl} is die uitgeprint. |
1186 |
|
|
1187 |
\section{Andere} |
\subsection{Andere} |
1188 |
|
|
1189 |
Er bestaan nog andere soorten licenties. Sommige daarvan zijn |
Er bestaan nog andere soorten licenties. Sommige daarvan zijn |
1190 |
compatibel met de GPL. Andere licenties zijn dan weer |
compatibel met de GPL. Andere licenties zijn dan weer |
1194 |
\url{http://www.gnu.org/licenses/license-list.html} staat een |
\url{http://www.gnu.org/licenses/license-list.html} staat een |
1195 |
overzichtje. |
overzichtje. |
1196 |
|
|
|
|
|
|
|
|
1197 |
\chapter[\gl\ interfaces]{Interfaces van een \gl\ besturingssysteem} |
\chapter[\gl\ interfaces]{Interfaces van een \gl\ besturingssysteem} |
1198 |
|
|
1199 |
Een standaard \gl\ besturingssysteem heeft twee interfaces waardoor de |
Een standaard \gl\ besturingssysteem heeft twee interfaces waardoor de |
1207 |
|
|
1208 |
De \begrip{console} is de tekstuele interface van ons \gl\ |
De \begrip{console} is de tekstuele interface van ons \gl\ |
1209 |
besturingssysteem. Iedere \gl\ gebruiker moet op zijn minst hiermee een |
besturingssysteem. Iedere \gl\ gebruiker moet op zijn minst hiermee een |
1210 |
beetje overweg kunnen. In de console kunnen we opdrachten intikken, dit |
beetje overweg kunnen. In de console kunnen we opdrachten intikken aan de commandolijn. |
|
doen we op de commandolijn. |
|
1211 |
|
|
1212 |
Nu en dan wordt er gezegd dat de commandolijn uit de mode is, maar |
Nu en dan wordt er gezegd dat de commandolijn uit de mode is, maar |
1213 |
niets is minder waar. Inderdaad we kunnen met \gl\ werken zonder ooit |
niets is minder waar. Inderdaad, we kunnen met \gl\ werken zonder ooit |
1214 |
maar de console aan te raken door de grafische interface te gebruiken |
de console aan te raken, door de grafische interface te gebruiken |
1215 |
(het X Window System), maar wat als onze grafische interface het laat |
(het X Window System), maar wat als onze grafische interface het laat |
1216 |
afweten? Wanneer we van op afstand willen inloggen is kennis van de |
afweten? Ook wanneer we van op afstand willen inloggen, is kennis van de |
1217 |
console ook nodig. |
console nodig. |
1218 |
|
|
1219 |
In het hoofdstuk \ref{basiscommandos} leren we deze basis aan. Voor het |
In het hoofdstuk \ref{basiscommandos} wordt de basis van het werken onder console uitgelegd. Voor het |
1220 |
verdere verloop van de cursus is het nodig de aangebrachte leerstof |
verdere verloop van de cursus is het nodig de aangebrachte leerstof |
1221 |
onder de knie te hebben. |
onder de knie te hebben. |
1222 |
|
|
1224 |
|
|
1225 |
\citaatnn{Windows without the X is like making love without a partner.}{MaDsen Wikholm, \url{mwikholm@at8.abo.fi}} |
\citaatnn{Windows without the X is like making love without a partner.}{MaDsen Wikholm, \url{mwikholm@at8.abo.fi}} |
1226 |
|
|
1227 |
Zoals reeds gezegd kent \gl\ ook een grafische interface die gebaseerd |
Zoals reeds gezegd, kent \gl\ ook een grafische interface die gebaseerd |
1228 |
is op het X Window systeem (\url{http://www.X.org}). Meestal spreken |
is op het X Window systeem (\url{http://www.X.org}). Meestal spreken |
1229 |
we kortweg over ``X''. |
we kortweg over ``X''. |
1230 |
|
|
1253 |
Zo is het perfect mogelijk om een film te laten renderen op een |
Zo is het perfect mogelijk om een film te laten renderen op een |
1254 |
speciaal daartoe ontworpen machine (bijvoorbeeld een Silicon Graphics |
speciaal daartoe ontworpen machine (bijvoorbeeld een Silicon Graphics |
1255 |
(\url{http://www.sgi.com/}) computer) en het resultaat daarvan op onze |
(\url{http://www.sgi.com/}) computer) en het resultaat daarvan op onze |
1256 |
\gl\ computer bekijken. Al het werk wordt op de speciale machine |
\gl\ computer te bekijken. Al het werk wordt op de speciale machine |
1257 |
gedaan, wij krijgen alleen het resultaat te zien. Het is ook niet |
gedaan, wij krijgen alleen het resultaat te zien. Het is ook niet |
1258 |
noodzakelijk dat de cli\"enten op dezelfde machine draaien! |
noodzakelijk dat de cli\"enten op dezelfde machine draaien! |
1259 |
|
|
1260 |
De X specificatie definieert hoe cli\"enten met de server moeten |
De X specificatie definieert hoe cli\"enten met de server moeten |
1261 |
communiceren (en omgekeerd), het eventuele netwerkprotocol dat |
communiceren (en omgekeerd), het eventuele netwerkprotocol dat |
1262 |
gebruikt moet worden en welke functies er aan programmeurs beschikbaar |
gebruikt moet worden en welke functies er aan programmeurs beschikbaar |
1263 |
moeten worden gesteld zodat cli\"ent applicaties geschreven kunnen |
moeten worden gesteld zodat cli\"entapplicaties geschreven kunnen |
1264 |
worden. Deze specificatie is het resultaat van het Athena project aan |
worden. Deze specificatie is het resultaat van het Athena project aan |
1265 |
het MIT\footnote{MIT staat voor ``Massachusetss Institute of |
het MIT\footnote{MIT staat voor ``Massachusets Institute of |
1266 |
Technology'', een Amerikaanse universiteit.} en zag het |
Technology'', een Amerikaanse universiteit.} en zag het |
1267 |
levenslicht in 1984. In 1988 werd de ontwikkeling en distributie van X |
levenslicht in 1984. In 1988 werd de ontwikkeling en distributie van X |
1268 |
in handen gegeven van het zogenaamde \begrip{X consortium} |
in handen gegeven van het zogenaamde \begrip{X consortium} |
1273 |
\subsection{Window managers} |
\subsection{Window managers} |
1274 |
|
|
1275 |
Tot nog toe hebben we een server die zorgt voor de invoer en uitvoer, |
Tot nog toe hebben we een server die zorgt voor de invoer en uitvoer, |
1276 |
en cli\"ent applicaties die met de server kunnen communiceren. |
en cli\"entapplicaties die met de server kunnen communiceren. |
1277 |
|
|
1278 |
Zoals iedereen die al eens met een Grafische User Interface (GUI) |
Zoals iedereen die al eens met een Grafische User Interface (GUI) |
1279 |
gewerkt heeft, weet, moet het mogelijk zijn om de ``cli\"ent'' windows |
gewerkt heeft, weet, moet het mogelijk zijn om de ``cli\"ent'' windows |
1306 |
|
|
1307 |
\subsection{Cli\"ent applicaties en widget libraries} |
\subsection{Cli\"ent applicaties en widget libraries} |
1308 |
In tegenstelling tot Microsoft \win\ biedt X geen standaard manier |
In tegenstelling tot Microsoft \win\ biedt X geen standaard manier |
1309 |
om dingen zoals knoppen, scrollbars, comboboxes, \ldots (ook wel |
om dingen zoals knoppen, scrollbars, comboboxes, \ldots\ (ook wel |
1310 |
\emph{widgets} genoemd) voor te stellen. We kunnen er alleen de |
\begrip{widgets} genoemd) voor te stellen. We kunnen er alleen de |
1311 |
basisdingen (lijnen, cirkels, rechthoeken, \ldots) mee tekenen en |
basisdingen (lijnen, cirkels, rechthoeken, \ldots) mee tekenen en |
1312 |
opvullen. Dat heeft als gevolg dat het elke cli\"ent applicatie |
opvullen. Dat heeft als gevolg dat het elke cli\"entapplicatie |
1313 |
vrijstaat om te bepalen hoe het zijn knoppen etc.\ wil tekenen en laten |
vrijstaat om te bepalen hoe het zijn knoppen etc.\ wil tekenen en laten |
1314 |
gedragen. |
gedragen. |
1315 |
|
|
1316 |
Omdat het een heel werk is om zelf widgets te schrijven zijn er in de |
Omdat het een heel werk is om zelf widgets te schrijven, zijn er in de |
1317 |
loop van de tijd heel wat \begrip{widget libraries} ontwikkeld. Dit |
loop van de tijd heel wat \Begrip{widget libraries} ontwikkeld. Dit |
1318 |
zijn codebibliotheken die programmeurs kunnen aanspreken en waarin de |
zijn codebibliotheken die programmeurs kunnen aanspreken en waarin de |
1319 |
verschillende widgets al gedefinieerd zijn. Net zoals er verschillende |
verschillende widgets al gedefinieerd zijn. Net zoals er verschillende |
1320 |
window managers bestaan (elk met hun eigen look and feel) zo bestaan |
window managers bestaan (elk met hun eigen look and feel) zo bestaan |
1328 |
uitzien en zelfs verschillend bediend moeten worden. Spijtig genoeg |
uitzien en zelfs verschillend bediend moeten worden. Spijtig genoeg |
1329 |
gaat dat dan ook ten koste van een consistente manier van werken: als |
gaat dat dan ook ten koste van een consistente manier van werken: als |
1330 |
we drie verschillende applicaties tegelijk draaien kan het perfect zijn |
we drie verschillende applicaties tegelijk draaien kan het perfect zijn |
1331 |
dat ze er allemaal anders uitzien en dat we ze anders moeten bedienen. |
dat ze er allemaal anders uitzien en dat we ze allemaal anders moeten bedienen. |
1332 |
|
|
1333 |
\subsection{Desktop environments} |
\subsection{Desktop environments} |
1334 |
De verscheidenheid aan keuze in het X Windows Systeem is kan zeer |
De verscheidenheid aan keuze in het X Windows Systeem kan zeer |
1335 |
zeker als een aanwinst bekeken worden. We zitten niet opgescheept met |
zeker als een aanwinst bekeken worden. We zitten niet opgescheept met |
1336 |
\'e\'en enkele voorgedefinieerde window manager die niet werkt zoals |
\'e\'en enkele voorgedefinieerde window manager die niet werkt zoals |
1337 |
we het willen (we kunnen immers altijd een andere kiezen of |
we het willen (we kunnen immers altijd een andere kiezen of |
1338 |
schrijven). Bovendien kunnen verschillende applicaties er verschillend |
schrijven). Bovendien kunnen verschillende applicaties er verschillend |
1339 |
uitzien en mogen ze de interactie met de gebruiker regelen zoals het |
uitzien en mogen ze de interactie met de gebruiker regelen zoals het |
1340 |
hun goeddunkt (waardoor we weer een grotere keuze hebt en de |
hun goeddunkt (waardoor we weer een grotere keuze hebben en de |
1341 |
applicatie kunnen kiezen die het beste bij ons past). Als nadeel hebben we |
applicatie kunnen kiezen die het beste bij ons past). Als nadeel hebben we |
1342 |
al opgemerkt dat de consistentie verloren gaat en dat daardoor de |
al opgemerkt dat de consistentie verloren gaat en dat daardoor de |
1343 |
complexiteit van het werken met deze programma's verhoogt. |
complexiteit van het werken met deze programma's verhoogt. |
1350 |
biedt een desktop environment meestal ook een window manager aan. |
biedt een desktop environment meestal ook een window manager aan. |
1351 |
|
|
1352 |
Onder \gl\ zijn de \begrip{K Desktop Environment} |
Onder \gl\ zijn de \begrip{K Desktop Environment} |
1353 |
(\url{http://www.kde.org/}) (\begrip{KDE}) en \begrip{GNU Network |
(\url{http://www.kde.org/}) (\begrip{KDE}) en \Begrip{GNU Network |
1354 |
Object Model Environment} (\url{http://www.gnome.org/}) |
Object Model Environment} (\url{http://www.gnome.org/}) |
1355 |
(\begrip{GNOME}) de bekendste en ook meest volwassen desktop |
(\begrip{GNOME}) de bekendste en ook meest volwassen desktop |
1356 |
environments. Er zijn echter ook andere zoals GNUStep |
environments. Er zijn echter ook andere zoals GNUStep |
1368 |
omgekeerd! Meer nog, het is zelfs mogelijk om meerdere X sessies |
omgekeerd! Meer nog, het is zelfs mogelijk om meerdere X sessies |
1369 |
tegelijk te gebruiken! |
tegelijk te gebruiken! |
1370 |
|
|
|
%% dit stukje wordt overgeslagen voorlopig moet korter |
|
|
|
|
1371 |
\chapter{\linux\ filesystems} |
\chapter{\linux\ filesystems} |
1372 |
|
|
1373 |
\citaatnn{You can tune a piano, but you can't tuna fish. You can tune |
\citaatnn{You can tune a piano, but you can't tuna fish. You can tune |
1382 |
\url{http://nfs.sourceforge.net/}. |
\url{http://nfs.sourceforge.net/}. |
1383 |
\end{urlbox} |
\end{urlbox} |
1384 |
|
|
1385 |
Zoals we reeds gezien hebben in het hoofdstuk \ref{ontstaan} is \linux\ |
Zoals we reeds gezien hebben in hoofdstuk \ref{ontstaan} is \linux\ |
1386 |
ontstaan uit het Minix besturingssysteem waardoor de eerste versies |
ontstaan uit het Minix besturingssysteem waardoor de eerste versies |
1387 |
van \linux\ alleen het Minix \begrip{filesystem} ondersteunde. Het |
van \linux\ alleen het Minix \begrip{filesystem} ondersteunden. Het |
1388 |
Minix filesystem bevatte twee tekortkomingen: blok adressen werden |
Minix filesystem bevatte twee tekortkomingen: blok adressen werden |
1389 |
opgeslaan in 16 bit integers, dus de maximale grootte van het |
opgeslaan in 16 bit integers, dus de maximale grootte van het |
1390 |
bestandssysteem was beperkt tot $2^{16}$ bits of $64$ megabyte, en een |
bestandssysteem was beperkt tot $2^{16}$ bits of $64$ megabyte, en een |
1391 |
bestandsnaam kon maximum $14$ karakters lang zijn. |
bestandsnaam kon maximum $14$ karakters bevatten. |
1392 |
|
|
1393 |
In dit hoofdstuk bespreken we dat geschiedenis van het \linux\ |
In dit hoofdstuk hebben we het eerst over de geschiedenis van het \linux\ |
1394 |
filesystem. We bespreken kort de fundamentele concepten die |
filesystem. Dan bespreken we kort de fundamentele concepten die |
1395 |
ge\"implementeerd zijn in het \unix\ filesystem. Alsook geven we een |
ge\"implementeerd zijn in het \unix\ filesystem en de |
1396 |
implementatie van Virtual File System laag in \linux\ en bespreken we |
implementatie van een Virtual File System laag in \linux. Tenslotte overlopen |
1397 |
de meest gebruikte filesystems. |
de meest gebruikte filesystemen. |
1398 |
|
|
1399 |
\section{Geschiedenis van het \linux\ filesystem} |
\section{Geschiedenis van het \linux\ filesystem} |
1400 |
|
|
1401 |
Wanneer \linux\ ontwikkeld werd onder het Minix besturingssysteem was |
Wanneer \linux\ ontwikkeld werd onder het Minix besturingssysteem, was |
1402 |
het eenvoudiger om harde schrijven te delen tussen twee systemen dan |
het eenvoudiger om harde schijven te delen tussen twee systemen dan |
1403 |
een nieuw filesystem te ontwerpen. Daarom besloot Linus Torvalds |
een nieuw filesystem te ontwerpen. Daarom besloot Linus Torvalds |
1404 |
ondersteuning voor het Minix filesystem in \linux\ in te bouwen. Het |
ondersteuning voor het Minix filesystem in \linux\ in te bouwen. Het |
1405 |
Minix filesystem was een effici\"ent en relatief bug-vrij stuk |
Minix filesystem was een effici\"ent en relatief bug-vrij stuk |
1406 |
software. |
software. |
1407 |
|
|
1408 |
Omwille van de beperkingen dat het Minix filesystem met zich meebracht |
Omwille van de beperkingen die het Minix filesystem met zich meebracht, |
1409 |
werd er gewerkt aan een implementatie voor een nieuw filesystem in |
werd er gewerkt aan een implementatie voor een nieuw filesystem in |
1410 |
\linux. |
\linux. |
1411 |
|
|
1412 |
Om de toevoeging van nieuwe filesystems in de \linux\ kernel |
Om de toevoeging van nieuwe filesystems in de \linux\ kernel |
1413 |
eenvoudiger te maken werd een \begrip{Virtual File System} (VFS) laag |
eenvoudiger te maken werd een \begrip{Virtual File System} (VFS) laag |
1414 |
ontwikkeld. De VFS laag wordt besproken in \ref{vfs}. |
ontwikkeld. De VFS laag wordt besproken in sectie \ref{vfs}. |
1415 |
|
|
1416 |
Achter de integratie van de VFS laag in de kernel werd een nieuw |
Achter de integratie van de VFS laag in de kernel werd een nieuw |
1417 |
filesysteem ge\"integreerd: het \begrip{Extended File System}. Dit |
filesysteem ge\"integreerd: het \begrip{Extended File System}. Dit |
1430 |
File System}. Het Xia filesystem was voornamelijk gebaseerd op de |
File System}. Het Xia filesystem was voornamelijk gebaseerd op de |
1431 |
Minix filesystem kernel code en voegde alleen een paar verbeteringen |
Minix filesystem kernel code en voegde alleen een paar verbeteringen |
1432 |
toe ten opzichte van dit filesystem. Kort gezegd zorgde het voor |
toe ten opzichte van dit filesystem. Kort gezegd zorgde het voor |
1433 |
ondersteuning naar lange bestandsnamen toe, grotere partities. Het |
ondersteuning naar lange bestandsnamen toe en grotere partities. Het |
1434 |
\begrip{Ext2fs} was gebaseerd op de Extfs code met vele reorganisaties |
\begrip{ext2fs} was gebaseerd op de Extfs code met vele reorganisaties |
1435 |
en vele verbeteringen. Het werd ontworpen met de vooruitgang in |
en vele verbeteringen. Het werd ontworpen met de vooruitgang in |
1436 |
gedachte in bevatte ruimte voor verdere verbeteringen. We bespreken |
gedachte en bevatte ruimte voor verdere verbeteringen. We bespreken |
1437 |
het in detail in \ref{ext2fs}. |
het in detail in \ref{ext2fs}. |
1438 |
|
|
1439 |
Wanneer de twee filesystems voor het eerst werden verspreid hadden ze |
Wanneer de twee filesystems voor het eerst werden verspreid, hadden ze |
1440 |
dezelfde functionaliteit. Omwille van het minimale ontwerp was het |
dezelfde functionaliteit. Omwille van het minimale ontwerp was het |
1441 |
Xia filesystem meer stabieler dan Ext2fs. Door het verdere gebruik |
Xia filesystem stabieler dan Ext2fs. Door het verdere gebruik |
1442 |
van beide filesystems werden de bugs opgelost in Ext2fs en werden vele |
van beide filesystems werden de bugs opgelost in Ext2fs en werden vele |
1443 |
verbeteringen en nieuwe opties toegevoegd. Ext2fs is nu heel stabiel |
verbeteringen en nieuwe opties toegevoegd. Ext2fs is nu heel stabiel |
1444 |
en is de de-facto standaard \linux\ filesystem geworden. |
en is de de-facto standaard \linux\ filesystem geworden. |
1453 |
|
|
1454 |
\subsection{Inodes} |
\subsection{Inodes} |
1455 |
|
|
1456 |
Ieder bestand wordt voorgesteld door een structuur, een \begrip{inode} |
Ieder bestand wordt voorgesteld door een structuur, een \Begrip{inode} |
1457 |
genoemd. Iedere inode bevat een beschrijving van dat bestand: |
genoemd. Iedere inode bevat een beschrijving van dat bestand: |
1458 |
bestandstype, toegansrechten, eigenaars, timestamps, grootte, pointers |
bestandstype, toegansrechten, eigenaars, timestamps, grootte, pointers |
1459 |
naar datablokken. De adressen van gealloceerde datablokken aan |
naar datablokken. De adressen van gealloceerde datablokken aan |
1461 |
I/O operatie aanvraagt op dat bestand, converteert de kernelcode de |
I/O operatie aanvraagt op dat bestand, converteert de kernelcode de |
1462 |
huidige offset naar een bloknummer, gebruikt dat nummer als een index |
huidige offset naar een bloknummer, gebruikt dat nummer als een index |
1463 |
in het blokadres en leest of schrijft de fysieke blok. |
in het blokadres en leest of schrijft de fysieke blok. |
1464 |
Figuur \ref{blokken} representeert de structuur van een inode. |
Figuur \ref{blokken} stelt de structuur van een inode voor. |
1465 |
|
|
1466 |
\begin{figure} |
\begin{figure} |
1467 |
\centering |
\centering |
1468 |
\includegraphics{inleiding/inode.png} |
\includegraphics[angle=90,width=10cm]{inleiding/inode.png} |
1469 |
\caption{De structuur van een inode.} |
\caption{De structuur van een inode.} |
1470 |
\label{blokken} |
\label{blokken} |
1471 |
\end{figure} |
\end{figure} |
1472 |
|
|
1473 |
\subsection{Directories} |
\subsection{Directories} |
1474 |
|
|
1475 |
Directories worden gestructureerd in een hi\"erarchische boom (zie |
Directories worden gestructureerd in een hi\"erarchische boom (zie sectie |
1476 |
\ref{fhs}). Iedere directory kan bestanden of subdirectories |
\ref{fhs}). Iedere directory kan bestanden of subdirectories |
1477 |
bevatten. |
bevatten. |
1478 |
|
|
1480 |
Eigenlijk is een directory een bestand dat verschillende records |
Eigenlijk is een directory een bestand dat verschillende records |
1481 |
bevat. Iedere record bevat een inode nummer en een bestandsnaam. |
bevat. Iedere record bevat een inode nummer en een bestandsnaam. |
1482 |
Wanneer een proces een padnaam gebruikt zoekt de kernel in de |
Wanneer een proces een padnaam gebruikt zoekt de kernel in de |
1483 |
directories tot het het overeenkomstige inode nummer vindt. Nadat de |
directories tot het hij het overeenkomstige inode nummer vindt. Nadat de |
1484 |
naam naar zijn inode nummer geconverteerd wordt, wordt de inode in het |
naam naar zijn inode nummer geconverteerd is, wordt de inode in het |
1485 |
geheugen geladen en gebruikt door het proces. Figuur \ref{directory} |
geheugen geladen en gebruikt door het proces. Figuur \ref{directory} |
1486 |
stelt een directory voor. |
stelt een directory voor. |
1487 |
|
|
1488 |
\begin{figure} |
\begin{figure} |
1489 |
\includegraphics{inleiding/directory.png} |
\centering |
1490 |
|
\includegraphics[angle=90,width=8cm]{inleiding/directory.png} |
1491 |
\caption{De structuur van een directory.} |
\caption{De structuur van een directory.} |
1492 |
\label{directory} |
\label{directory} |
1493 |
\end{figure} |
\end{figure} |
1499 |
een veld dat een nummer bevat dat overeenkomt met het bestand. Een |
een veld dat een nummer bevat dat overeenkomt met het bestand. Een |
1500 |
link toevoegen bestaat uit het cre\"eren van een directory toegang, |
link toevoegen bestaat uit het cre\"eren van een directory toegang, |
1501 |
waar het inode nummer verwijst naar de inode, en de links-teller wordt |
waar het inode nummer verwijst naar de inode, en de links-teller wordt |
1502 |
verhoogd. Wanneer de link wordt verwijderd vermindert de kernel de |
verhoogd. Wanneer de link wordt verwijderd, vermindert de kernel de |
1503 |
links-teller en dealloceert de inode wanneer de teller nul wordt. |
links-teller en dealloceert de inode wanneer de teller nul wordt. |
1504 |
|
|
1505 |
Dit type link wordt een \begrip{hard link} genoemd en kan alleen |
Dit type link wordt een \begrip{hard link} genoemd en kan alleen |
1507 |
cross-filesystem hard links te construeren. Alsook kunnen hard links |
cross-filesystem hard links te construeren. Alsook kunnen hard links |
1508 |
alleen verwijzen naar bestanden. |
alleen verwijzen naar bestanden. |
1509 |
|
|
1510 |
Er bestaat nog een ander soort links. \begrip{Symbolische links} zijn |
Er bestaat nog een ander soort links. \Begrip{Symbolische links}\index{symbolic link} zijn |
1511 |
bestanden die een ander bestand bevatten. Wanneer de kernel een |
bestanden die een ander bestand bevatten. Wanneer de kernel een |
1512 |
symbolische link tegenkomt tijdens een padnaam naar inode conversie, |
symbolische link tegenkomt tijdens een padnaam naar inode conversie, |
1513 |
vervangt het de naam van de link door zijn inhoud. Omdat een |
vervangt hij de naam van de link door zijn inhoud. Omdat een |
1514 |
symbolische link niet verwijst naar een inode is het mogelijke |
symbolische link niet verwijst naar een inode is het mogelijke |
1515 |
cross-filesystems symbolische links aan te maken. Ze kunnen ook |
cross-filesystems symbolische links aan te maken. Ze kunnen ook |
1516 |
verwijzen naar eender welk type van bestand, zelfs onbestaand. Ze |
verwijzen naar eender welk type van bestand, zelfs onbestaand. Ze |
1525 |
een device driver. |
een device driver. |
1526 |
|
|
1527 |
Er bestaan twee soorten types speciale bestanden: karakter en blok |
Er bestaan twee soorten types speciale bestanden: karakter en blok |
1528 |
speciale speciale bestanden. De eerste laat I/O bewerkingen toe in |
speciale bestanden. De eerste laat I/O bewerkingen toe in |
1529 |
karakter mode terwijl de andere vereist dat data geschreven wordt in |
karakter mode terwijl de andere vereist dat data geschreven wordt in |
1530 |
blokken via de buffer cache functies. Wanneer een I/O aangevraagd |
blokken via de buffer cache functies. Wanneer een I/O aangevraagd |
1531 |
wordt op een speciaal bestand wordt het doorgestuurd naar een (pseudo) |
wordt op een speciaal bestand wordt het doorgestuurd naar een (pseudo) |
1551 |
Wanneer een proces een bestandsge\"orienteerde systeemaanroep |
Wanneer een proces een bestandsge\"orienteerde systeemaanroep |
1552 |
behandelt, roept de kernel een functie van de VFS aan. Deze functie |
behandelt, roept de kernel een functie van de VFS aan. Deze functie |
1553 |
behandelt deze structuur onafhankelijke manipulaties en herverwijst de |
behandelt deze structuur onafhankelijke manipulaties en herverwijst de |
1554 |
aanroep naar een functie die bevat zit in de fysieke filesystem code, |
aanroep naar een functie die vervat zit in de fysieke filesystem code, |
1555 |
die dan verantwoordelijk is voor het afhandelen van de stuctuur |
die dan verantwoordelijk is voor het afhandelen van de stuctuur |
1556 |
afhankelijke operaties. Filesystem code gebruikt de buffer cache |
afhankelijke operaties. Filesystem code gebruikt de buffer cache |
1557 |
functies om I/O aan te vragen aan devices. Het schema in |
functies om I/O aan te vragen aan devices. Het schema in |
1559 |
|
|
1560 |
\begin{figure} |
\begin{figure} |
1561 |
\centering |
\centering |
1562 |
\includegraphics{inleiding/vfs.png} |
\includegraphics[height=10cm]{inleiding/vfs.png} |
1563 |
\caption{Redirectie door de VFS.} |
\caption{Redirectie door de VFS.} |
1564 |
\label{fig:vfs} |
\label{fig:vfs} |
1565 |
\end{figure} |
\end{figure} |
1573 |
De VFS kent de filesystems die ondersteund worden in de kernel. Het |
De VFS kent de filesystems die ondersteund worden in de kernel. Het |
1574 |
gebruikt een tabel die gedefini\"eerd werd tijdens de kernel |
gebruikt een tabel die gedefini\"eerd werd tijdens de kernel |
1575 |
configuratie. Iedere cel in deze tabel beschrijft een filesystem |
configuratie. Iedere cel in deze tabel beschrijft een filesystem |
1576 |
type: het bevat de naam van het filesystem type en een pointer naar |
type: het bevat de naam van het filesystem en een pointer naar |
1577 |
een functie die opgeroepen wordt tijdens de \begrip{mount} operatie. |
een functie die opgeroepen wordt tijdens de \begrip{mount} operatie. |
1578 |
Wanneer een filesystem gemount zal worden, wordt de geschikte mount |
Wanneer een filesystem gemount zal worden, wordt de geschikte mount |
1579 |
functie aangeroepen. Deze functie is verantwoordelijk voor het lezen |
functie aangeroepen. Deze functie is verantwoordelijk voor het lezen |
1585 |
|
|
1586 |
Een gemounte filesystem descriptor bevat verschillende soorten |
Een gemounte filesystem descriptor bevat verschillende soorten |
1587 |
informatie: algemene filesystem informatie, pointers naar functies van |
informatie: algemene filesystem informatie, pointers naar functies van |
1588 |
de fysieke filesystem kernel code en private date onderhouden door de |
de fysieke filesystem kernel code en private date onderhouden voor de |
1589 |
fysieke filesystem code. De functie pointers in de filesystem |
fysieke filesystem code. De functie pointers in de filesystem |
1590 |
descriptors laten toegang toe van de VFS tot de interne filesystem |
descriptors laten toegang toe van de VFS tot de interne filesystem |
1591 |
routines. |
routines. |
1592 |
|
|
1593 |
\section{ext2} |
\section{ext2} |
1594 |
\label{ext2fs} |
\label{ext2fs} |
1595 |
Zoals reeds gezien werd het ``Second Extended File System'' ontworpen |
Zoals reeds gezien, werd het Second Extended File System ontworpen |
1596 |
en ge\"implementeerd om problemen die zich voordeden bij het eerste |
en ge\"implementeerd om problemen die zich voordeden bij het eerste |
1597 |
Extended File System op te lossen. |
Extended File System op te lossen. |
1598 |
|
|
1599 |
Ext2fs heeft een excellente performantie en is ook een robust |
Ext2fs heeft een uitstekende performantie en is ook een robust |
1600 |
filesystem die de kans op data verlies vermindert bij intensief |
filesystem die de kans op data verlies vermindert bij intensief |
1601 |
gebruik. Ten laatste, maar niet het minste, heeft Ext2fs ruimte |
gebruik. Ten laatste, maar niet het minste, heeft Ext2fs ruimte |
1602 |
voor uitbreiding op een manier die gebruikers toelaat deze nieuwe |
voor uitbreiding op een manier die gebruikers toelaat deze nieuwe |
1609 |
Ext2fs zorgt voor een limiet van $4$ TB in grootte van het filesystem |
Ext2fs zorgt voor een limiet van $4$ TB in grootte van het filesystem |
1610 |
en voor een maximale bestandsnaamlengte van $255$ karakters. Ext2fs |
en voor een maximale bestandsnaamlengte van $255$ karakters. Ext2fs |
1611 |
reserveert ook enkele blokken voor de super user (root). Meestal is |
reserveert ook enkele blokken voor de super user (root). Meestal is |
1612 |
dit $5\% |
dit $5\%$ van de blokken, dit laat de administrator toe het filesystem |
|
$ van de blokken, dit laat de administrator toe het filesystem |
|
1613 |
te repareren in situaties waar een user proces het filesystem opvult. |
te repareren in situaties waar een user proces het filesystem opvult. |
1614 |
|
|
1615 |
Ext2fs bevat ook nog andere eigenschappen maar dit valt buiten het |
Ext2fs bevat ook nog andere eigenschappen maar dit valt buiten het |
1631 |
het overschrijven is kan het bestand stukken van beide versies hebben |
het overschrijven is kan het bestand stukken van beide versies hebben |
1632 |
wanneer het schrijven stopt. Wat we dan overhouden is een bestand dat |
wanneer het schrijven stopt. Wat we dan overhouden is een bestand dat |
1633 |
niet geopend kan worden omdat de interne formatering van het bestand |
niet geopend kan worden omdat de interne formatering van het bestand |
1634 |
inconsistent is met wat hetgene het programma verwacht. |
inconsistent is met hetgene het programma verwacht. |
1635 |
|
|
1636 |
Dit wordt zelfs erger als de schijf metadatas aan het schrijven was, |
Dit wordt zelfs erger als de schijf metadata aan het schrijven was, |
1637 |
zoals een directory. Nu hebben we een corrupt filesystem in plaats |
zoals een directory. Nu hebben we een corrupt filesystem in plaats |
1638 |
van een corrupt bestand. Met andere woorden we kunnen een volledige |
van een corrupt bestand. Met andere woorden: we kunnen een volledige |
1639 |
directory verliezen of zelfs alle data op een harde schijf partitie. |
directory verliezen of zelfs alle data op een partitie. |
1640 |
|
|
1641 |
De meeste PC besturingssystemen hebben geen goede manier om het |
De meeste PC besturingssystemen hebben geen goede manier om het |
1642 |
verlies van een enkel bestand te voorkomen bij het schrijven tijdens |
verlies van een enkel bestand te voorkomen bij het schrijven tijdens |
1643 |
een crash. Moderne systemen, zoals de \linux\ kernel, doen wel een |
een crash. Moderne systemen, zoals de \linux\ kernel, doen wel een |
1644 |
poging om deze verliezen te voorkomen en te repareren. Om dit te doen |
poging om deze verliezen te voorkomen en te repareren. Om dit te doen |
1645 |
voert het systeem een grondige controle door tijdens het opstarten. |
voert het systeem een grondige controle door tijdens het opstarten. |
1646 |
Goed ontworpen filesystems houden dikwijls backups bij van metadata, zo |
Goed ontworpen filesystems houden dikwijls backups bij van metadata, |
1647 |
dat het verlies van alle data onwaarschijnlijker wordt. Het systeem |
zodat het verlies van alle data onwaarschijnlijker wordt. Het systeem |
1648 |
zoekt dan uit waar de corrupte data zich bevindt en repareert de |
zoekt dan uit waar de corrupte data zich bevinden en repareert de |
1649 |
schade enerzijds door de originele metadata te kopi\"eren of door ze |
schade enerzijds door de originele metadata te kopi\"eren of door ze |
1650 |
te verwijderen. Wanneer we zo bestanden verliezen is het nog altijd |
te verwijderen. Wanneer we zo bestanden verliezen is het nog altijd |
1651 |
beter dan een ganse partitie te verliezen. |
beter dan een hele partitie te verliezen. |
1652 |
|
|
1653 |
Helaas neemt zo'n grondige test veel tijd in beslag, zelfs op een zeer |
Helaas neemt zo'n grondige test veel tijd in beslag. Zelfs op een zeer |
1654 |
snel systeem met een grote en hevig gebruikte partitie kan dit enkele |
snel systeem met een grote en hevig gebruikte partitie kan dit enkele |
1655 |
minuten innemen. Gelukkig is deze test niet altijd nodig omdat de |
minuten innemen. Gelukkig is deze test niet altijd nodig omdat de |
1656 |
computer meestal correct wordt afgesloten. Om onnodige vertragingen |
computer meestal correct wordt afgesloten. Om onnodige vertragingen |
1664 |
|
|
1665 |
\section{Journaled Filesystem} |
\section{Journaled Filesystem} |
1666 |
|
|
1667 |
Moderne filesystem ontwerpen, zoals \linux's populaire ext2, doen een |
Moderne filesystems, zoals \linux's populaire ext2, doen een |
1668 |
goeie job bij de implementatie van de dingen hiervoor besproken. Als |
goeie job bij de implementatie van de dingen hiervoor besproken. Als |
1669 |
ons systeem crasht dan kan het een tijdje duren om de metadata te |
ons systeem crasht dan kan het een tijdje duren om de metadata te |
1670 |
controleren tijdens het booten, maar de kans is groot dat we |
controleren tijdens het booten, maar de kans is groot dat we |
1671 |
nadien nog al onze bestanden hebben. Door de complexere applicaties, |
nadien nog al onze bestanden terugvinden. Door de complexere applicaties, |
1672 |
grotere servers en nood aan kleinere downtime is er een nood een |
grotere servers en nood aan kleinere downtime is er vraag naar een |
1673 |
ingewikkeldere filesystems die een betere job doen bij het beschermen |
effici\"enter filesystems dat een betere job doen bij het beschermen |
1674 |
van onze data en metadate. Het \begrip{journaled filesystem} dat |
van onze data en metadate. Het \begrip{journaled filesystem} dat |
1675 |
beschikbaar is heeft de oplossing hiervoor. |
beschikbaar is heeft de oplossing hiervoor. |
1676 |
|
|
1677 |
Er zijn verschillende journaled filesystems (zie \ref{reiserfs} en |
Er zijn verschillende journaled filesystems (zie sectie \ref{reiserfs} en |
1678 |
\ref{ext3}) maar ze zijn allemaal gebaseerd op hetzelfde principe. |
sectie \ref{ext3}) maar ze zijn allemaal gebaseerd op hetzelfde principe. |
1679 |
De term ``journaled'' wil zeggen dat het filesystem een log bijhoudt |
De term ``journaled'' wil zeggen dat het filesystem een log bijhoudt |
1680 |
van wat het aan het doen is op de centrale data gebieden op de schijf. |
van wat het aan het doen is op de centrale data gebieden op de schijf. |
1681 |
Wanneer het systeem de metadata zal veranderen, maakt het eerst een |
Wanneer het systeem de metadata zal veranderen, maakt het eerst een |
1682 |
aantekening in de log van wat er zal gebeuren. Dan maakt hij de |
aantekening in de log van wat er zal gebeuren. Dan maakt het de |
1683 |
verandering en gaat tenslotte terug naar de journal (de log) en |
verandering en gaat tenslotte terug naar de journal (de log) en |
1684 |
markeert dat de verandering correct gebeurd is. |
markeert dat de verandering correct gebeurd is. |
1685 |
|
|
1702 |
\subsection{Reiserfs} |
\subsection{Reiserfs} |
1703 |
\label{reiserfs} |
\label{reiserfs} |
1704 |
|
|
1705 |
Nu dat we de basis begrijpen van journaled filesystems kunnen we een |
Nu dat we de basis begrijpen van journaled filesystems, kunnen we een |
1706 |
specifiek geval bekijken, \begrip{Reiserfs} genaamd, en oorspronkelijk |
specifiek geval bekijken, \Begrip{Reiserfs}\index{reiserfs} genaamd, en oorspronkelijk |
1707 |
ontwikkeld door Hans Reiser. Reiserfs maakt gebruik van de analogie |
ontwikkeld door Hans Reiser. Reiserfs maakt gebruik van de analogie |
1708 |
tussen databanken en filesystems. In feite aanschouwt Reiserfs een |
tussen databanken en filesystems. In feite aanschouwt Reiserfs een |
1709 |
volledige harde schijf partitie als een enkele databank tabel. |
volledige harde schijf partitie als een enkele databanktabel. |
1710 |
Directories, bestanden en bestand metadata worden georganiseerd in een |
Directories, bestanden en bestandsmetadata worden georganiseerd in een |
1711 |
effici\"ente datastructuur, een ``gebalanceerde boom'' (zoals B* |
effici\"ente datastructuur, een ``gebalanceerde boom'' (zoals B* |
1712 |
bomen). Dit verschilt van de traditionele filesystems, maar zorgt |
bomen). Dit verschilt van de traditionele filesystems, maar zorgt |
1713 |
voor grote snelheidswinsten voor verschillende applicaties, vooral |
voor grote snelheidswinsten voor verschillende applicaties, vooral |
1729 |
|
|
1730 |
Ext3 is een journaling filesystem ontworpen door Stephen Tweedie. Het |
Ext3 is een journaling filesystem ontworpen door Stephen Tweedie. Het |
1731 |
is compatibel met ext2 filesystems; in feite kunnen we het beschouwen |
is compatibel met ext2 filesystems; in feite kunnen we het beschouwen |
1732 |
als een ext2 filesystem met een journal bestand. Wat het meest |
als een ext2 filesystem met een journal bestand. Merkwaardig is dat |
1733 |
merkwaardig is dat we kunnen verwisselen tussen ext2 en ext3 op een |
we kunnen wisselen tussen ext2 en ext3 op een |
1734 |
partitie zonder enig probleem. Het is dus backwards compatibel, wat |
partitie zonder te moeten herformateren. Het is dus backwards compatibel, wat |
1735 |
Reiserfs niet is. |
Reiserfs niet is. |
1736 |
|
|
1737 |
Voor verdere informatie over ext3 verwijzen we naar |
Voor verdere informatie over ext3 verwijzen we naar |
1757 |
\citaatnnn{Never use ``etc.'' -- it makes people think there is more |
\citaatnnn{Never use ``etc.'' -- it makes people think there is more |
1758 |
where there is not or that there is not space to list it all, etc.} |
where there is not or that there is not space to list it all, etc.} |
1759 |
|
|
1760 |
Wie vertrouwd is met het eerder antieke MS-DOS, kent waarschijnlijk de |
Wie vertrouwd is met het antieke MS-DOS, kent waarschijnlijk de |
1761 |
verschillende opdrachten om zijn dagelijkse taken te vervullen in die |
verschillende opdrachten om zijn dagelijkse taken te vervullen in die |
1762 |
omgeving. Onder \gl\ kunnen we een aantal van deze commando's blijven |
omgeving. Onder \gl\ kunnen we een aantal van deze commando's blijven |
1763 |
gebruiken, andere zijn helemaal nieuw of hebben een gewijzigde vorm. |
gebruiken, andere zijn helemaal nieuw of hebben een gewijzigde vorm. |
1764 |
De opdrachten die we moeten kennen staan verderop. Om de weg niet kwijt |
De opdrachten die we moeten kennen staan verderop. Om de weg niet kwijt |
1765 |
te geraken in de \begrip{directorystructuur} van \linux\ volgt hier eerst een |
te raken in de \begrip{directorystructuur} van \linux\ volgt hier eerst een |
1766 |
kort overzichtje van de voornaamste directory's en hoe die stukjes van |
kort overzichtje van de voornaamste directory's en hoe die stukjes van |
1767 |
de \linux-puzzel samen vallen. |
de \linux-puzzel samen vallen. |
1768 |
|
|
1769 |
\section{/} |
\section{/} |
1770 |
|
|
1771 |
Een \begrip{\linux-bestandssysteem} heeft \'e\'en root-directory |
Een \Begrip{\linux-bestandssysteem} heeft \'e\'en root-directory |
1772 |
(/-directory); de directory die het hoogste niveau vormt. Het |
(/-directory); de directory die het hoogste niveau vormt. Het |
1773 |
\linux-bestandssysteem heeft een boomvorm, waarbij de |
\linux-bestandssysteem heeft een boomvorm, waarbij de |
1774 |
\begrip{root-directory} de stam is. |
\begrip{root-directory} de stam is. |
1799 |
te plaatsen. De /-directory moet namelijk gemount worden om het |
te plaatsen. De /-directory moet namelijk gemount worden om het |
1800 |
systeem te kunnen booten. Als er dan iets mis loopt met het systeem, |
systeem te kunnen booten. Als er dan iets mis loopt met het systeem, |
1801 |
kan de administrator nog steeds inloggen en beschikken over de |
kan de administrator nog steeds inloggen en beschikken over de |
1802 |
(config-)files in zijn home dir\ldots De home directory's van de |
(config-)files in zijn home dir\ldots\ De home directory's van de |
1803 |
gebruikers kunnen dan eventueel op een andere partitie staan en die |
gebruikers kunnen dan eventueel op een andere partitie staan en die |
1804 |
hoeft dan niet noodzakelijk gemount te zijn. |
hoeft dan niet noodzakelijk gemount te zijn. |
1805 |
|
|
1806 |
\item[/bin] In de directory \begrip{/bin} slaat \linux\ programma's |
\item[/bin] In de directory \begrip{/bin} slaat \linux\ programma's op |
1807 |
\footnote{de zogenoemde binaries} waarmee we belangrijke |
\footnote{de zogenaamde binaries} waarmee we belangrijke |
1808 |
opdrachten uitvoeren. Voorbeelden van dergelijke commando's vinden |
opdrachten uitvoeren. Voorbeelden van dergelijke commando's vinden |
1809 |
we in hoofdstuk \ref{basiscommandos}. |
we in hoofdstuk \ref{basiscommandos}. |
1810 |
|
|
1816 |
hardware van de computer. De files die we hier vinden zijn eigenlijk |
hardware van de computer. De files die we hier vinden zijn eigenlijk |
1817 |
geen echte files, maar worden aangemaakt wanneer het systeem |
geen echte files, maar worden aangemaakt wanneer het systeem |
1818 |
opstart. Wanneer we bijvoorbeeld een stukje willen inlezen van de |
opstart. Wanneer we bijvoorbeeld een stukje willen inlezen van de |
1819 |
floppy-drive, kunnen we hier uit de file ``fd0'' lezen en krijgen we |
floppy-drive, kunnen we hier uit de file \file{fd0} lezen en krijgen we |
1820 |
de (binaire) inhoud van de diskette te zien. Hier bevinden zich de |
de (binaire) inhoud van de diskette te zien. Hier bevinden zich de |
1821 |
device special files. |
device special files. |
1822 |
|
|
1823 |
\item[/etc] \linux\ slaat in \begrip{/etc} de configuratiebestanden op |
\item[/etc] \linux\ slaat in \begrip{/etc} de configuratiebestanden op |
1824 |
die systemwide gelden. Dit geldt zowel voor configuratiefiles van |
die in heel het systeem gelden. Dit geldt zowel voor configuratiebestanden van |
1825 |
bepaalde programmatjes als voor configuratiefiles van het systeem |
bepaalde programmatjes als voor configuratiebestanden van het systeem |
1826 |
zelf. Zo vinden we in de file \file{/etc/passwd} alle gegevens van |
zelf. Zo vinden we in de file \file{/etc/passwd} alle gegevens van |
1827 |
de gebruikers terug. Vroeger vonden we hier ook alle commando's die |
de gebruikers terug. |
1828 |
voor het systeembeheer nodig waren terug, maar dat is verleden tijd. |
|
1829 |
|
Vroeger vonden we in deze directory ook alle commando's die |
1830 |
|
voor het systeembeheer nodig waren, maar dat is verleden tijd. |
1831 |
In speciale subdirectory's vinden we hier wel nog alle scripts en |
In speciale subdirectory's vinden we hier wel nog alle scripts en |
1832 |
directory's terug die nodig zijn op het systeem correct op te |
directory's terug die nodig zijn op het systeem correct op te |
1833 |
starten. |
starten. |
1834 |
|
|
1835 |
\item[/home] |
\item[/home] |
1836 |
Hier vinden we de ``werkplekjes'' van de gebruikers. Iedere gebruiker |
Hier vinden we de ``werkplekjes'' van de gebruikers. Iedere gebruiker |
1837 |
heeft zijn eigen directory, waar hij alle privileges bezit, nl. zijn |
heeft zijn eigen directory, waar hij alle privileges bezit, namelijk zijn |
1838 |
homedirectory. Bij het inloggen komt hij hier terecht. |
homedirectory. Bij het inloggen komt hij hier terecht. |
1839 |
|
|
1840 |
\item[/lib] |
\item[/lib] |
1841 |
De systeembibliotheken bevinden zich in de \begrip{/lib} directory en |
De systeembibliotheken bevinden zich in de \begrip{/lib} directory en |
1842 |
worden gemeenschappelijk gebruikt wat een optimaal gebruik van de |
worden gemeenschappelijk gebruikt wat besparing aan hardeschijfruimte oplevert. |
|
diskspace ten goede komt. |
|
1843 |
|
|
1844 |
\item[/sbin] Net als in de directory /bin vinden we in deze directory |
\item[/sbin] Net als in de directory /bin vinden we in deze directory |
1845 |
verschillende programma's. \begrip{/sbin} bevat echter alleen |
verschillende programma's. \begrip{/sbin} bevat echter alleen |
1852 |
\item[/proc] \linux\ maakt in de directory \begrip{/proc} een soort |
\item[/proc] \linux\ maakt in de directory \begrip{/proc} een soort |
1853 |
virtueel spiegelbeeld van alle processen die op dat moment aan het |
virtueel spiegelbeeld van alle processen die op dat moment aan het |
1854 |
draaien zijn. Naast deze informatie kunnen we er nog heel wat meer |
draaien zijn. Naast deze informatie kunnen we er nog heel wat meer |
1855 |
vinden, maar het zou ons veel te ver leiden indien we daar nu op |
vinden, maar het zou ons veel te ver leiden indien we daarop |
1856 |
ingaan. |
ingaan. |
1857 |
|
|
1858 |
\item[/tmp] |
\item[/tmp] Alle gebruikers hebben in \begrip{/tmp} schrijfrechten en kunnen hier |
|
Alle gebruikers hebben in \begrip{/tmp} schrijfrechten en kunnen hier |
|
1859 |
hun tijdelijke bestanden plaatsen. Deze directory wordt niet zo zeer |
hun tijdelijke bestanden plaatsen. Deze directory wordt niet zo zeer |
1860 |
door de users zelf, maar veel eerder door de processen van de users |
door de users zelf, maar eerder door de processen van de users |
1861 |
gebruikt. |
gebruikt. |
1862 |
|
|
1863 |
\item[/usr] |
\item[/usr] In de directory \begrip{/usr} en de subdirectory's ervan slaat \linux\ |
|
In de directory \begrip{/usr} en de subdirectory's ervan slaat \linux\ |
|
1864 |
verschillende programma's op die belangrijk zijn voor het starten van |
verschillende programma's op die belangrijk zijn voor het starten van |
1865 |
het systeem. De subdirectory's van usr hebben daarentegen totaal |
het systeem. De subdirectory's van usr hebben daarentegen totaal |
1866 |
verschillende ingangen. In /usr/man vindt u bijvoorbeeld de zogeheten |
verschillende ingangen. In \file{/usr/man} vinden we bijvoorbeeld de zogeheten |
1867 |
man pages, waar we verder nog op terug komen. In /usr/X11R6 |
man pages, waar we verder nog op terug komen. In \file{/usr/X11R6} |
1868 |
daarentegen bevindt zich het X Window system met al zijn programma's. |
daarentegen bevindt zich het X Window system met al zijn programma's. |
1869 |
Onder /usr/src wordt de broncode van uw zelf-gecompileerde programma's |
Onder \file{/usr/src} wordt de broncode van onze zelf-gecompileerde programma's |
1870 |
of kernels opgeslagen en tenslotte worden in de directory /usr/local |
of kernels opgeslaan en tenslotte worden in de directory \file{/usr/local} |
1871 |
de systeem-specifieke programma's van een gebruiker opgeslagen als de |
de systeem-specifieke programma's van een gebruiker opgeslagen als de |
1872 |
computer in een netwerk wordt gebruikt. |
computer in een netwerk wordt gebruikt. |
1873 |
|
|
1874 |
\item[/var] |
\item[/var] In deze directory slaat \linux\ bestanden op die regelmatig gewijzigd worden. |
1875 |
In deze directory slaat \linux\ variabele, dus zich wijzigende |
We vinden er bijvoorbeeld de inhoud van het |
|
bestanden op. We vinden er bijvoorbeeld de inhoud van het |
|
1876 |
cache-geheugen, lockfiles\footnote{files die verhinderen dat we een |
cache-geheugen, lockfiles\footnote{files die verhinderen dat we een |
1877 |
programma meerdere malen tegelijk starten.}, logfiles, wachtrijen voor |
programma meerdere malen tegelijkertijd starten.}, logfiles, wachtrijen voor |
1878 |
printers of mail, pids of process-id files en nog zoveel meer |
printers of mail, pids of process-id files en nog zoveel meer. |
1879 |
|
|
1880 |
\item[/mnt] |
\item[/mnt] Als we naast de harde schijf ook nog andere gegevensdragers willen |
1881 |
Als we naast de harde schijf ook nog andere gegevensdragers willen |
aanspreken is de \begrip{/mnt} directory behoorlijk belangrijk. Hier worden andere gegevensdragers gemount. Verderop wordt |
|
aanspreken is de \begrip{/mnt} directory behoorlijk belangrijk. Onder |
|
|
\linux\ wordt dat trouwens \begrip{mounten} genoemd. Verderop wordt |
|
1882 |
dit in detail besproken. Als we voorlopig onthouden dat een gemount |
dit in detail besproken. Als we voorlopig onthouden dat een gemount |
1883 |
medium hier te vinden zou moeten zijn, zitten we wel |
medium hier te vinden zou moeten zijn, zitten we wel |
1884 |
goed. \emph{Opmerking!} Het moet echter niet in deze directory zijn, |
goed. Opmerking: het moet echter niet in deze directory zijn, |
1885 |
maar het is een aanvaarde ``gewoonte'' om hier cdrom en floppy te |
maar het is een aanvaarde gewoonte om hier cdrom en floppy te |
1886 |
mounten. Andere harddisk-partities worden op de plaatsen gemount waar |
mounten. Andere harddisk-partities worden op de plaatsen gemount waar |
1887 |
ze nodig zijn. |
ze nodig zijn. |
1888 |
|
|
1895 |
}{Discussion on the intuitiveness of commands, especially Emacs } |
}{Discussion on the intuitiveness of commands, especially Emacs } |
1896 |
|
|
1897 |
|
|
1898 |
\section{Vi(m)} |
\section{Vi(m)} \index{vim}\index{vi} |
1899 |
|
|
1900 |
\begin{urlbox} |
\begin{urlbox} |
1901 |
\url{http://www.vim.org} |
\url{http://www.vim.org} |
1902 |
\end{urlbox} |
\end{urlbox} |
1903 |
|
|
1904 |
\begrip{Vim} is gebaseerd op de populaire editor \begrip{vi} die op |
\begin{figure} |
1905 |
|
\center |
1906 |
|
\includegraphics[angle=90,width=11cm]{inleiding/viminsert.png} |
1907 |
|
\caption{Vim in insert modus} |
1908 |
|
\end{figure} |
1909 |
|
|
1910 |
|
\Begrip{Vim} is gebaseerd op de populaire editor \begrip{vi} die op |
1911 |
elke \unix/\gl\ PC te vinden is. Daarom is het noodzakelijk dat men de |
elke \unix/\gl\ PC te vinden is. Daarom is het noodzakelijk dat men de |
1912 |
basis kent van deze editor. Want het kan gebeuren dat als we een |
basis kent van deze editor. Want het kan gebeuren dat als we een |
1913 |
bestand willen bewerken we geen keuze hebben uit verschillende |
bestand willen bewerken we geen keuze hebben uit verschillende |
1914 |
editors, we zullen dan verplicht worden vi te gebruiken. |
editors en we verplicht worden vi te gebruiken. |
1915 |
|
|
1916 |
Vi is te vinden in elke configuratie omdat het weinig geheugen vereist |
Vi is te vinden in elke configuratie omdat het weinig geheugen vereist |
1917 |
en snel opstart. Vim is een uitbreiding van vi. Wie meer over Vim te |
en snel opstart. Vim is een uitbreiding en verbetering\footnote{Er wordt wel eens gezegd dat \engels{vi} staat voor \engels{Vim Imitation}} van vi. Wie meer over Vim te |
1918 |
weten wil komen kan de Vim documentatie doornemen. |
weten wil komen kan de Vim documentatie doornemen. |
1919 |
|
|
1920 |
We starten Vim op door \com{vim} in te tikken. Met \com{vim file} |
We starten Vim op door \com{vim} in te tikken. Met \com{vim file} |
1921 |
openen we het bestand \file{file} of maken we dit bestand aan. |
openen we het bestand \file{file} of maken we dit bestand aan. |
1922 |
|
|
1923 |
Het volgende dienen we goed te onthouden: Vim heeft twee modi, nl.: |
Het volgende dienen we goed te onthouden: Vim heeft twee modi: |
|
|
|
|
\begin{figure} |
|
|
\center |
|
|
\includegraphics{inleiding/viminsert.png} |
|
|
\caption{Vim in insert modus} |
|
|
\end{figure} |
|
1924 |
|
|
1925 |
\begin{itemize} |
\begin{itemize} |
1926 |
\item de Command-mode; |
\item de Command-mode; |
1928 |
\end{itemize} |
\end{itemize} |
1929 |
|
|
1930 |
In de Command-mode kunnen we de cursorpositie beheren, tekens |
In de Command-mode kunnen we de cursorpositie beheren, tekens |
1931 |
verwijderen, bestanden opslaan,\ldots In de Insert-mode kunnen we |
verwijderen, bestanden opslaan,\ldots\ In de Insert-mode kunnen we |
1932 |
tekens invoegen. In het begin is het onderscheid verwarrend, maar we |
tekens invoegen. In het begin is het onderscheid verwarrend, maar we |
1933 |
zullen ontdekken dat de snelheid van Vim en de trouwe aanwezigheid |
zullen ontdekken dat de snelheid van Vim en de trouwe aanwezigheid |
1934 |
opwegen tegen de ``beperkte'' interface van het programma. |
opwegen tegen de ``beperkte'' interface van het programma. |
1935 |
|
|
|
\begin{figure} |
|
|
\center |
|
|
\includegraphics{inleiding/vim2sch.png} |
|
|
\caption{In Vim kun je meerdere documenten tegelijkertijd bewerken} |
|
|
\end{figure} |
|
|
|
|
1936 |
Standaard starten we Vim op in Command-mode. Willen we naar |
Standaard starten we Vim op in Command-mode. Willen we naar |
1937 |
Insert-mode, dan drukken we de i-toets in. Terug overschakelen naar |
Insert-mode, dan drukken we de i-toets in. Terug overschakelen naar |
1938 |
de Command-mode gebeurt door de escape-toets in te drukken. |
de Command-mode gebeurt door de escape-toets in te drukken. |
1940 |
Hier volgt een bespreking van enkele commando's die we zeker zullen |
Hier volgt een bespreking van enkele commando's die we zeker zullen |
1941 |
moeten beheersen. |
moeten beheersen. |
1942 |
|
|
1943 |
|
\begin{figure} |
1944 |
|
\center |
1945 |
|
\includegraphics[angle=90,width=11cm]{inleiding/vim2sch.png} |
1946 |
|
\caption{In Vim kun je meerdere documenten tegelijkertijd bewerken} |
1947 |
|
\end{figure} |
1948 |
|
|
1949 |
Commando-modus |
Commando-modus |
1950 |
\begin{description} |
\begin{description} |
1951 |
\item [\emph{:help}] De helppagina's van Vim bekijken. |
\item [\emph{:help}] De helppagina's van Vim bekijken. |
1956 |
\item [\emph{x}] Het teken onder de cursor verwijderen. |
\item [\emph{x}] Het teken onder de cursor verwijderen. |
1957 |
\item [Tweemaal \emph{d}] Een hele regel verwijderen. |
\item [Tweemaal \emph{d}] Een hele regel verwijderen. |
1958 |
\item [\emph{A}] Naar het einde van de regel gaan en overschakelen naar insert |
\item [\emph{A}] Naar het einde van de regel gaan en overschakelen naar insert |
1959 |
mode zetten. |
mode. |
1960 |
\item [\emph{i}] Overschakelen naar insert-mode voor het teken onder de |
\item [\emph{i}] Overschakelen naar insert-mode voor het teken onder de |
1961 |
cursor. |
cursor. |
1962 |
\item [\emph{a}] Overschakelen naar insert-mode na het teken |
\item [\emph{a}] Overschakelen naar insert-mode na het teken |
1971 |
gaan door dit commando te geven. Hierbij kunnen we gemakkelijk zien of |
gaan door dit commando te geven. Hierbij kunnen we gemakkelijk zien of |
1972 |
we in insert-mode zijn of in command-mode en kunnen zaken als syntax |
we in insert-mode zijn of in command-mode en kunnen zaken als syntax |
1973 |
highlighting gebruikt worden. |
highlighting gebruikt worden. |
1974 |
\item [\emph{:syntax on[enter]}] Zorgt ervoor dat bij bvb source code keywords |
\item [\emph{:syntax on[enter]}] Zorgt ervoor dat bij bijvoorbeeld source code keywords |
1975 |
gekleurd worden = syntax highlighting. |
gekleurd worden = syntax highlighting. |
1976 |
\end{description} |
\end{description} |
1977 |
|
|
1978 |
\begin{figure} |
\begin{figure} |
1979 |
\center |
\center |
1980 |
\includegraphics{inleiding/vimsynh.png} |
\includegraphics[angle=90,width=11cm]{inleiding/vimsynh.png} |
1981 |
\caption{Syntax highlighting in Vim} |
\caption{Syntax highlighting in Vim} |
1982 |
\end{figure} |
\end{figure} |
1983 |
|
|
1995 |
\emph{r1,r2opdracht} |
\emph{r1,r2opdracht} |
1996 |
r1 en r2 geven het bereik aan van de opdracht. V.b. 1,5 wat wil zeggen |
r1 en r2 geven het bereik aan van de opdracht. V.b. 1,5 wat wil zeggen |
1997 |
van regel 1 tot regel 5. We kunnen ook een \emph{\$} ingeven, dit |
van regel 1 tot regel 5. We kunnen ook een \emph{\$} ingeven, dit |
1998 |
betekent laatste regel. |
staat voor de laatste regel. |
1999 |
|
|
2000 |
\begin{description} |
\begin{description} |
2001 |
\item [\emph{r1,r2mr3}] verplaatst lijnen r1 tot r2 naar de plaats na lijn r3. |
\item [\emph{r1,r2mr3}] verplaatst lijnen r1 tot r2 naar de plaats na lijn r3. |
2007 |
\end{description} |
\end{description} |
2008 |
|
|
2009 |
Aan de hand van reguliere expressies kunnen we complexere vervangingen |
Aan de hand van reguliere expressies kunnen we complexere vervangingen |
2010 |
doen. In hoofdstuk \ref{bash} nemen we dit onder de loep. |
doen. |
2011 |
|
|
2012 |
\section{Pico en \gnu\ nano} |
\section{Pico en \gnu\ nano}\index{pico} |
2013 |
|
|
2014 |
\begin{urlbox} |
\begin{urlbox} |
2015 |
\url{http://www.washington.edu/pine/}\\ |
\url{http://www.washington.edu/pine/}\\ |
2016 |
\url{http://www.gnu.org/software/nano/} |
\url{http://www.gnu.org/software/nano/} |
2017 |
\end{urlbox} |
\end{urlbox} |
2018 |
|
|
2019 |
\begrip{Pico} is een schermge\"orienteerde teksteditor gebaseerd op de \emph{Pine |
\Begrip{Pico} is een schermge\"orienteerde teksteditor gebaseerd op de \emph{Pine |
2020 |
message system composer}. Zoals bij Pine zijn de commando's onderaan |
message system composer}. Zoals bij Pine zijn de commando's onderaan |
2021 |
het scherm weergegeven. Tekst kan onmiddellijk ingetikt worden. |
het scherm weergegeven. Tekst kan onmiddellijk ingetikt worden. |
2022 |
|
|
2023 |
Daar Pico geen vrije software is werd er vlug een vrije variant |
Daar Pico geen vrije software is werd er vlug een vrije variant |
2024 |
ontwikkeld: \begrip{\gnu\ nano}. |
ontwikkeld: \Begrip{\gnu\ nano}\index{nano}. |
2025 |
|
|
2026 |
Commando's om de tekst te bewerken worden voorafgegaan door gebruik te |
Commando's om de tekst te bewerken worden voorafgegaan door gebruik te |
2027 |
maken van de control-toets combinaties. De control-toets wordt |
maken van de control-toets combinaties. De control-toets wordt |
2032 |
|
|
2033 |
\begin{figure} |
\begin{figure} |
2034 |
\center |
\center |
2035 |
\includegraphics{inleiding/nano.png} |
\includegraphics[angle=90,width=11cm]{inleiding/nano.png} |
2036 |
\caption{nano} |
\caption{Nano} |
2037 |
\end{figure} |
\end{figure} |
2038 |
|
|
2039 |
\begin{description} |
\begin{description} |
2055 |
|
|
2056 |
\begin{figure} |
\begin{figure} |
2057 |
\center |
\center |
2058 |
\includegraphics{inleiding/nano2.png} |
\includegraphics[angle=90,width=11cm]{inleiding/nano2.png} |
2059 |
\caption{nano na te indrukken van Control-o} |
\caption{Nano na het intypen van Control-o.} |
2060 |
\end{figure} |
\end{figure} |
2061 |
|
|
2062 |
Om nano te starten tikken we op de commandolijn gewoon \com{nano} |
Om nano te starten tikken we op de commandolijn gewoon \com{nano} |
2063 |
in. Geven we \com{nano file} in, dan wordt het bestand \file{file} geopend, |
in. Geven we \com{nano file} in, dan wordt het bestand \file{file} geopend. |
2064 |
indien het nog niet bestaat wordt het aangemaakt. De volgende opties |
Indien het bestand nog niet bestaat, wordt het aangemaakt. De volgende opties |
2065 |
zijn mogelijk bij nano: |
zijn mogelijk bij nano: |
2066 |
|
|
2067 |
\begin{description} |
\begin{description} |
2072 |
\item [-e] Zorgt ervoor dat bestandsnamen automatisch aangevuld worden. |
\item [-e] Zorgt ervoor dat bestandsnamen automatisch aangevuld worden. |
2073 |
\item [-m] Zet de muisondersteuning aan. Dit werkt alleen als nano gestart werd |
\item [-m] Zet de muisondersteuning aan. Dit werkt alleen als nano gestart werd |
2074 |
vanuit een X Windows System ``xterm'' venster. |
vanuit een X Windows System ``xterm'' venster. |
2075 |
\item [-v] Hiermee kunt u alleen het bestand bekijken, aanpassingen maken is |
\item [-v] Hiermee kunnen we alleen het bestand bekijken, aanpassingen maken is |
2076 |
onmogelijk. |
onmogelijk. |
2077 |
\end{description} |
\end{description} |
2078 |
|
|
2103 |
\section{Inloggen} |
\section{Inloggen} |
2104 |
|
|
2105 |
De login prompt is altijd het eerste wat we zien als we met een \gl\ |
De login prompt is altijd het eerste wat we zien als we met een \gl\ |
2106 |
systeem werken. Daar moet de username en wachtwoord ingetypt |
systeem werken. Daar moet een username en wachtwoord ingetypt |
2107 |
worden. Als de username en wachtwoord kloppen, komt er een |
worden. Als de username en wachtwoord kloppen, komt er een |
2108 |
welkomst-melding op ons scherm, mislukt het aanmelden dan krijgen we |
welkomst-melding op ons scherm, mislukt het aanmelden dan krijgen we |
2109 |
na enkele seconden opnieuw de kans om in te loggen. |
na enkele seconden opnieuw de kans om in te loggen. |
2135 |
\section{Uitloggen} |
\section{Uitloggen} |
2136 |
|
|
2137 |
Als we klaar zijn met werken, geven we het commando \com{logout} in. Of |
Als we klaar zijn met werken, geven we het commando \com{logout} in. Of |
2138 |
\com{exit}, wat hetzelfde effect heeft. Dit heet uitloggen. Daarna |
\com{exit}, wat hetzelfde effect heeft. Dit heet uitloggen. De login prompt |
2139 |
verschijnt de login prompt weer in beeld en kunnen we, of een andere |
verschijnt weer en er kan opnieuw ingelogd worden. |
|
persoon, weer inloggen. |
|
2140 |
|
|
2141 |
\section{De computer uitzetten} |
\section{De computer uitzetten} |
2142 |
|
|
2143 |
Als we de computer uit willen gaan zetten, zijn er een aantal dingen |
Als we de computer uit willen zetten, zijn er een aantal dingen |
2144 |
die heel anders gaan dan in DOS (maar wel vergelijkbaar met |
die heel anders gaan dan in DOS (maar wel vergelijkbaar met |
2145 |
\win-varianten). Als we zijn aangesloten op een lokaal netwerk (dat |
\win-varianten). Als we zijn aangesloten op een lokaal netwerk (dat |
2146 |
zelf eventueel aan Internet `hangt'), kunnen er op elk willekeurig |
zelf eventueel aan Internet `hangt'), kunnen er op elk willekeurig |
2147 |
moment (ook als er niemand op de console ingelogd is!) vele |
moment (ook als er niemand op de console ingelogd is!) vele |
2148 |
verbindingen zijn met jouw computer. |
verbindingen zijn met onze computer. |
2149 |
|
|
2150 |
Zoals al opgemerkt in \ref{sshuitleg}, kunnen er mensen via het |
Zoals te lezen is in hoofdstuk \ref{sshuitleg}, kunnen mensen via het |
2151 |
netwerk ingelogd zijn op/werken met onze computer, maar ook zijn |
netwerk ingelogd zijn op onze computer. Daarnaast kunnen er |
2152 |
verbindingen voor bestandsoverdracht mogelijk. Voor de computer |
verbindingen voor bestandsoverdracht aangemaakt zijn. Voor de computer |
2153 |
uitgezet wordt, moeten al deze verbindingen netjes worden afgesloten, |
uitgezet wordt, moeten al deze verbindingen netjes worden afgesloten, |
2154 |
anders ontstaat er een kleine chaos op het netwerk. |
anders ontstaat er een kleine chaos op het netwerk. |
2155 |
|
|
2169 |
harde schijf geschreven; de tijd die daarvoor nodig is, is praktisch |
harde schijf geschreven; de tijd die daarvoor nodig is, is praktisch |
2170 |
gelijk aan die voor het schrijven van één klein stukje. De cache wordt |
gelijk aan die voor het schrijven van één klein stukje. De cache wordt |
2171 |
helemaal door de \linux\ kernel geregeld, zelfs de cache-grootte, die |
helemaal door de \linux\ kernel geregeld, zelfs de cache-grootte, die |
2172 |
aangepast wordt aan het geheugengebruik van andere programma's---met |
aangepast wordt aan het geheugengebruik van andere programma's --- met |
2173 |
64 MB werkgeheugen kan er gemakkelijk 50 MB gebruikt worden voor |
64 MB werkgeheugen kan er gemakkelijk 50 MB gebruikt worden voor |
2174 |
cache. |
cache. |
2175 |
|
|
2178 |
verloren gaan. Dat zijn de twee belangrijkste redenen waarom nooit |
verloren gaan. Dat zijn de twee belangrijkste redenen waarom nooit |
2179 |
een computer die \gl\ draait zomaar mag uitgezet worden. Voor |
een computer die \gl\ draait zomaar mag uitgezet worden. Voor |
2180 |
de shutdown is een speciale procedure ontwikkeld, die voor allerlei |
de shutdown is een speciale procedure ontwikkeld, die voor allerlei |
2181 |
afsluit-bezigheden zorgdraagt. |
afsluit-bezigheden zorg draagt. |
2182 |
|
|
2183 |
Die procedure is te starten door de Control, Alt en Delete toetsen |
Die procedure is te starten door de Control, Alt en Delete toetsen |
2184 |
tegelijkertijd in te drukken (aangeduid met Ctrl-Alt-Del). Niet alle |
tegelijkertijd in te drukken (aangeduid met Ctrl-Alt-Del). Niet alle |
2190 |
meldingen over het scherm komen en zal het systeem tenslotte |
meldingen over het scherm komen en zal het systeem tenslotte |
2191 |
rebooten. Na die reboot kunnen we de computer uitzetten, bijvoorbeeld |
rebooten. Na die reboot kunnen we de computer uitzetten, bijvoorbeeld |
2192 |
tijdens het testen van het geheugen. Trouwens, als we de computer |
tijdens het testen van het geheugen. Trouwens, als we de computer |
2193 |
niet netjes uitzetten, zul je dat merken ook\ldots Als we dan |
niet netjes uitzetten, zul we dat merken ook\ldots\ Wanneer we |
2194 |
weer opnieuw starten, krijgen we een melding als \Begrip{/dev/hda5 was |
weer opstarten, krijgen we een melding als \Begrip{/dev/hda5 was |
2195 |
not cleanly unmounted, check forced} en dan wordt de hele harde |
not cleanly unmounted, check forced} en dan wordt de hele harde |
2196 |
schijf getest op fouten, die zouden kunnen zijn ontstaan omdat de |
schijf getest op fouten, die zouden kunnen zijn ontstaan omdat de |
2197 |
schrijf-cache nog niet was geleegd. En dat testen kan bij grotere |
schrijf-cache nog niet was geleegd. En dat testen kan bij grotere |
2253 |
directory. |
directory. |
2254 |
|
|
2255 |
\begin{opgave} |
\begin{opgave} |
2256 |
Geef het commando \com{ls /} om dat te bekijken. |
Geef het commando \com{ls /} om de rootdirectory te bekijken. |
2257 |
\end{opgave} |
\end{opgave} |
2258 |
|
|
2259 |
\input{inleiding/lsroot} |
\input{inleiding/lsroot} |
2260 |
|
|
2261 |
Aan de meeste commando's kunnen we extra parameters (switches) |
Aan de meeste commando's kunnen we extra parameters (switches) |
2262 |
meegeven. Laten we eens een paar switches proberen, met |
meegeven. Laten we eens een paar switches proberen, met |
2263 |
het commando \com{ls -a -l -F /}. Daarmee krijgen we opeens een |
het commando \com{ls -a -l -F}. Daarmee krijgen we opeens een |
2264 |
heleboel meer informatie. Meestal mogen we die switches achter elkaar |
heleboel meer informatie. Meestal mogen we die switches achter elkaar |
2265 |
plakken, zoals in \com{ls -alF /} . Dat is het standaardcommando om in |
plakken, zoals in \com{ls -alF}. Dat is het standaardcommando om in |
2266 |
\gl\ een directory te bekijken. Het werkt trouwens in elke \unix\ |
\gl\ een directory te bekijken. Het werkt trouwens in elke \unix\ |
2267 |
variant, omdat het in een standaard is vastgelegd. |
variant, omdat het in een standaard is vastgelegd. |
2268 |
|
|
2271 |
besproken directories uit \ref{sec:verschdirs} herkent. |
besproken directories uit \ref{sec:verschdirs} herkent. |
2272 |
\end{opgave} |
\end{opgave} |
2273 |
|
|
2274 |
De uitgebreide directory-listing van \com{ls -alF} bestaat uit de |
De uitgebreide directory-listing van \com{ls -alF /} bestaat uit de |
2275 |
volgende velden (kolommen, fields), we komen later uitgebreid op alle |
volgende velden (kolommen, fields), we komen later uitgebreid op alle |
2276 |
aspecten terug: |
aspecten terug: |
2277 |
|
|
2284 |
groepen van drie letters zijn de read, write en execute (uitvoer) |
groepen van drie letters zijn de read, write en execute (uitvoer) |
2285 |
rechten (permissions) voor respectievelijk de eigenaar, de groep en |
rechten (permissions) voor respectievelijk de eigenaar, de groep en |
2286 |
`alle anderen'. Als een bepaald recht niet is verleend, staat er een |
`alle anderen'. Als een bepaald recht niet is verleend, staat er een |
2287 |
`-'. Bij directory's betekent het execute bit dat er toestemming is |
`-'. Bij directory's betekent de execute bit dat er toestemming is |
2288 |
om naar die directory toe te gaan (met het commando \com{cd}). |
om naar die directory toe te gaan (met het commando \com{cd}). |
2289 |
\item Het aantal hard links naar het bestand (vergeet dat maar even); |
\item Het aantal hard links naar het bestand (vergeet dat maar even); |
2290 |
\item De eigenaar van het bestand; |
\item De eigenaar van het bestand; |
2293 |
\item De datum en tijd waarop het bestand voor het laatst is |
\item De datum en tijd waarop het bestand voor het laatst is |
2294 |
gewijzigd; |
gewijzigd; |
2295 |
\item De bestandsnaam zelf; |
\item De bestandsnaam zelf; |
2296 |
\item Aan de bestandsnaam vast een teken wat `specialiteiten' |
\item Aan de bestandsnaam plakt een teken wat `specialiteiten' |
2297 |
duidelijk maakt, bijvoorbeeld een `/' achter een directorynaam en |
duidelijk maakt, bijvoorbeeld een `/' achter een directorynaam en |
2298 |
een `*' achter een uitvoerbaar bestand (programma). |
een `*' achter een uitvoerbaar bestand (programma). |
2299 |
\end{itemize} |
\end{itemize} |
2300 |
|
|
2301 |
We kunnen ook naar de / directory toe gaan, met het commando \com{cd |
We kunnen ook naar de / directory gaan, met het commando \com{cd |
2302 |
/}. |
/}. |
2303 |
|
|
2304 |
\begin{opgave} |
\begin{opgave} |
2307 |
|
|
2308 |
Nu kunnen we met \com{ls -alF} (zonder de /) de inhoud van de / |
Nu kunnen we met \com{ls -alF} (zonder de /) de inhoud van de / |
2309 |
directory bekijken. We zouden weer terug kunnen gaan met \com{cd |
directory bekijken. We zouden weer terug kunnen gaan met \com{cd |
2310 |
/home/$<$username$>$}, maar alleen \com{cd} heeft hetzelfde resultaat. |
/home/$<$username$>$}, \com{cd} heeft hetzelfde resultaat. |
2311 |
Met \com{pwd} kunnen we het resultaat weer bekijken. |
Met \com{pwd} kunnen we het resultaat weer bekijken. |
2312 |
|
|
2313 |
\begin{opgave} |
\begin{opgave} |
2315 |
\end{opgave} |
\end{opgave} |
2316 |
|
|
2317 |
\begin{opgave} |
\begin{opgave} |
2318 |
Geef ook eens in onze home directory het commando \com{ls -alF} in . |
Geef ook eens in onze home directory het commando \com{ls -alF} in. |
2319 |
\end{opgave} |
\end{opgave} |
2320 |
|
|
2321 |
Dan blijken er opeens bestanden in die directory te staan die beginnen |
Dan blijken er opeens bestanden in die directory te staan die beginnen |
2355 |
gebruiken. |
gebruiken. |
2356 |
|
|
2357 |
\begin{opgave} |
\begin{opgave} |
2358 |
Doe \com{cat /etc/motd}, om \begrip{the message of the day} te zien. |
Doe \com{cat /etc/motd}, om \Begrip{the message of the day} te zien. |
2359 |
\end{opgave} |
\end{opgave} |
2360 |
|
|
2361 |
\begin{opgave} |
\begin{opgave} |
2402 |
|
|
2403 |
We zien een typische \gl\ beveiliging: we hebben geen toestemming om |
We zien een typische \gl\ beveiliging: we hebben geen toestemming om |
2404 |
dit bestand te lezen. Er kunnen namelijk geheimen in staan, in dit |
dit bestand te lezen. Er kunnen namelijk geheimen in staan, in dit |
2405 |
geval de ge\"encrypteerde wachtwoorden van ons \gl\ systeem en het is |
geval de ge\"encrypteerde paswoorden van ons \gl\ systeem en het is |
2406 |
niet de bedoeling dat elke willekeurige gebruiker die wachtwoorden te |
niet de bedoeling dat elke willekeurige gebruiker die paswoorden kan lezen. |
|
weten komt. |
|
2407 |
|
|
2408 |
Daarom is dat bestand alleen leesbaar voor de root gebruiker, en voor |
Daarom is dat bestand alleen leesbaar voor de root gebruiker, en voor |
2409 |
niemand anders en dan is er voor jou als gewone gebruiker totaal geen |
niemand anders en dan is er voor jou als gewone gebruiker totaal geen |
2445 |
de TAB toets. |
de TAB toets. |
2446 |
\end{opgave} |
\end{opgave} |
2447 |
|
|
2448 |
Dan wordt de commandline aangevuld met het ganse woord. Hadden we |
Dan wordt de commandline aangevuld met het hele woord. Hadden we |
2449 |
aangevuld met een 'd' dan hadden we terug het commando dat we |
aangevuld met een 'd' dan hadden we terug het commando dat we |
2450 |
daarjuist ingevoerd hadden. |
daarjuist ingevoerd hadden. |
2451 |
|
|
2477 |
\section{Bestanden kopi\"eren, verplaatsen en verwijderen} |
\section{Bestanden kopi\"eren, verplaatsen en verwijderen} |
2478 |
|
|
2479 |
Veel gebruikte commando's hebben in \gl\ vaak korte namen, om zo |
Veel gebruikte commando's hebben in \gl\ vaak korte namen, om zo |
2480 |
typewerk te besparen en efficiency te vergroten. Kopi\"eren en |
typewerk te besparen en efficiëntie te vergroten. Kopi\"eren en |
2481 |
verplaatsen gaat met de commando's \com{cp} en \com{mv}, afkortingen |
verplaatsen gaat met de commando's \com{cp} en \com{mv}, afkortingen |
2482 |
van `copy' en `move'. Verwijderen gaat met \com{rm}, van `remove'. |
van `copy' en `move'. Verwijderen gaat met \com{rm}, van `remove'. |
2483 |
Laten we weer eens wat proberen. |
Laten we weer eens wat proberen. |
2573 |
Het is geen uitvoerbaar bestand (programma) dus er staat nergens een |
Het is geen uitvoerbaar bestand (programma) dus er staat nergens een |
2574 |
x. Merk trouwens op dat onze groepnaam momenteel gelijk is aan onze |
x. Merk trouwens op dat onze groepnaam momenteel gelijk is aan onze |
2575 |
username, maar dat kan eventueel ook anders. Om het bestand voor |
username, maar dat kan eventueel ook anders. Om het bestand voor |
2576 |
jezelf niet meer leesbaar te maken, doen we \com{chmod u-r |
onszelf niet meer leesbaar te maken, doen we \com{chmod u-r |
2577 |
modetestfile} (gebruik de TAB toets!). Met \com{ls -alF} blijkt dat |
modetestfile} (gebruik de TAB toets!). Met \com{ls -alF} blijkt dat |
2578 |
de mode bits nu op \verb!--w-r--r--! staan, en dat was ook de |
de mode bits nu op \verb!--w-r--r--! staan, en dat was ook de |
2579 |
bedoeling. |
bedoeling. |
2607 |
mode bits aan te geven, namelijk met drie cijfers van 0 tot 7. Elk bit |
mode bits aan te geven, namelijk met drie cijfers van 0 tot 7. Elk bit |
2608 |
heeft namelijk een gewicht, zoals hieronder aangegeven. |
heeft namelijk een gewicht, zoals hieronder aangegeven. |
2609 |
|
|
2610 |
|
\begin{minipage}{\textwidth} |
2611 |
\begin{verbatim} |
\begin{verbatim} |
2612 |
cijfer 1 2 3 |
cijfer 1 2 3 |
2613 |
/ \ / \ / \ |
/ \ / \ / \ |
2615 |
mode bit - r w x r w x r w x |
mode bit - r w x r w x r w x |
2616 |
special user group others |
special user group others |
2617 |
\end{verbatim} |
\end{verbatim} |
2618 |
|
\end{minipage} |
2619 |
|
|
2620 |
Om een combinatie van permissies toe te kennen (zoals rx, maar geen w), |
Om een combinatie van permissies toe te kennen (zoals rx, maar geen w), |
2621 |
tellen we de gewichten gewoon bij elkaar op (in het voorbeeld 4+1=5). |
tellen we de gewichten gewoon bij elkaar op (in het voorbeeld 4+1=5). |
2633 |
|
|
2634 |
\section{Links} |
\section{Links} |
2635 |
|
|
2636 |
Een bestand wordt opgeslagen op een bepaalde plaats op de harde |
Een bestand wordt opgeslaan op een bepaalde plaats op de harde |
2637 |
schijf. In de directory staat niet veel meer dan de naam van dat |
schijf. In de directory staat niet veel meer dan de naam van dat |
2638 |
bestand en de plaats waar het op de harde schijf te vinden is. In \gl\ |
bestand en de plaats waar het op de harde schijf te vinden is. In \gl\ |
2639 |
is het ook mogelijk om twee directory-items naar dezelfde plaats op de |
is het ook mogelijk om twee directory-items naar dezelfde plaats op de |
2640 |
harde schijf te laten wijzen---dan zijn er dus twee namen voor |
harde schijf te laten wijzen --- dan zijn er dus twee namen voor |
2641 |
\'e\'en bestand. We zeggen dan dat er twee links zijn naar dat |
\'e\'en bestand. We zeggen dat er twee links zijn naar dat |
2642 |
bestand. Het commando dat daarvoor gebruikt wordt, is \com{ln}, van |
bestand. Het commando dat daarvoor gebruikt wordt, is \com{ln}, van |
2643 |
link. |
link. |
2644 |
|
|
2651 |
Als \com{ls -al} ingegeven wordt, lijkt het alsof er gewoon |
Als \com{ls -al} ingegeven wordt, lijkt het alsof er gewoon |
2652 |
gekopieerd is. Wanneer we echter naar de tweede kolom van de listing |
gekopieerd is. Wanneer we echter naar de tweede kolom van de listing |
2653 |
kijken, zien we daar 2 staan. Er zijn blijkbaar twee links en dat |
kijken, zien we daar 2 staan. Er zijn blijkbaar twee links en dat |
2654 |
klopt ook. |
klopt. |
2655 |
|
|
2656 |
\begin{opgave} |
\begin{opgave} |
2657 |
Verander nu met een editor naar voorkeur iets in secondfile |
Verander nu met een editor naar voorkeur iets in secondfile |
2675 |
hard link. |
hard link. |
2676 |
|
|
2677 |
Om toch naar `het bestand met de naam origfile' te verwijzen, is er |
Om toch naar `het bestand met de naam origfile' te verwijzen, is er |
2678 |
een andere soort link, namelijk de symbolic link of symlink (enigszins |
een andere soort link, namelijk de symbolic link of \begrip{symlink} (enigszins |
2679 |
te vergelijken met de snelkoppeling in Windows 95/98). Zo'n link maken |
te vergelijken met de snelkoppeling in Windows 95/98). Zo'n link maken |
2680 |
gaat met de switch -s van ln. |
gaat met de switch -s van ln. |
2681 |
|
|
2704 |
\end{opgave} |
\end{opgave} |
2705 |
|
|
2706 |
Op deze manier is het mogelijk om nieuwe versies van bestanden en |
Op deze manier is het mogelijk om nieuwe versies van bestanden en |
2707 |
programma's te installeren, zonder de links te hoeven veranderen. |
programma's te installeren, zonder de links te veranderen. |
2708 |
Zolang de naam van het geupdate bestand hetzelfde blijft, wijst de |
Zolang de naam van het geupdate bestand hetzelfde blijft, wijst de |
2709 |
symlink naar de geupdate versie. |
symlink naar de geupdate versie. |
2710 |
|
|
2712 |
|
|
2713 |
Met het commando \com{mkdir testdirectory} (van make directory) kunnen |
Met het commando \com{mkdir testdirectory} (van make directory) kunnen |
2714 |
we een nieuwe subdirectory aanmaken (bekijk met \com{ls -alF}). Met |
we een nieuwe subdirectory aanmaken (bekijk met \com{ls -alF}). Met |
2715 |
\com{cd testdirectory} `duiken' we erin en met \com{cd ..} ga we weer |
\com{cd testdirectory} `duiken' we erin en met \com{cd ..} (let op de spatie tussen ``cd'' en ``..'') gaan we weer |
2716 |
terug. Het weghalen van een lege(!) directory gaat met \com{rmdir |
terug. Het weghalen van een lege(!) directory doen we met \com{rmdir |
2717 |
testdirectory} (van remove directory). Als we de directory niet |
testdirectory} (van remove directory). Als we de directory niet |
2718 |
zelf helemaal willen leeghalen (bijvoorbeeld als er veel |
zelf helemaal willen leeghalen (bijvoorbeeld als er veel |
2719 |
subdirectories zijn) kunnen we \com{rm -rf testdirectory} gebruiken. |
subdirectories zijn) kunnen we \com{rm -rf testdirectory} gebruiken. |
2733 |
daarvan gebruik te maken, zijn de virtuele consoles. |
daarvan gebruik te maken, zijn de virtuele consoles. |
2734 |
|
|
2735 |
\begin{opgave} |
\begin{opgave} |
2736 |
Zorg dat we ingelogd zijn, doe iets als \com{less /etc/fb.modes} |
Zorg dat je ingelogd bent, doe iets als \com{less /etc/fb.modes} |
2737 |
en blader er een stukje doorheen. Toets dan LinkseAlt-F2, zo ga je |
en blader er een stukje doorheen. Toets dan LinkseAlt+F2, zo ga je |
2738 |
naar de tweede virtuele console. De tekst die we aan het bekijken |
naar de tweede virtuele console. De tekst die je aan het bekijken |
2739 |
waren verdwijnt en er verschijnt een login prompt. Als we weer |
bent, verdwijnt en er verschijnt een login prompt. Als je weer de |
2740 |
LinkseAlt-F1 toetsen, verschijnt de tekst weer---op de eerste |
LinkseAlt+F1 toetsen induwd, verschijnt de tekst weer --- op de eerste |
2741 |
virtuele console. Ga met LinkseAlt-F2 weer naar de tweede virtuele |
virtuele console. Ga met LinkseAlt+F2 weer naar de tweede virtuele |
2742 |
console en geef gewoon onze eigen username en wachtwoord (let ook op |
console en geef je eigen gebruikersnaam en wachtwoord (let ook op |
2743 |
`tty2' net boven de login prompt---dat is de naam van die virtuele |
`tty2' net boven de login prompt --- dat is de naam van die virtuele |
2744 |
console. We krijgen gewoon weer een shell gepresenteerd. Type daar |
console. Je krijgt weer een shell gepresenteerd. Type daar |
2745 |
bijvoorbeeld \com{ls -al /}. En we hebben een directory-listing |
bijvoorbeeld \com{ls -al /}. En je krijgt een directory-listing |
2746 |
gekregen terwijl we (op de andere virtuele console) een bestand aan |
terwijl je (op de andere virtuele console) een bestand aan |
2747 |
het bekijken was: dat is multi-tasking. |
het bekijken was: dat is multi-tasking. |
2748 |
\end{opgave} |
\end{opgave} |
2749 |
|
|
2750 |
Met LinkseAlt-F3 t/m LinkseAlt-F6 kunnen we nog vier andere virtuele |
Met LinkseAlt-F3 t/m LinkseAlt-F6 kunnen we nog vier andere virtuele |
2751 |
consoles bereiken; dat zou voldoende moeten zijn voor relatief zware |
consoles bereiken; dat zou voldoende moeten zijn voor relatief zware |
2752 |
multi-tasking (je kunt later eventueel meer toevoegen). We kunnen |
multi-tasking (we kunnen later eventueel meer consoles toevoegen). We kunnen |
2753 |
zien wie er allemaal ingelogd zijn met het commando \com{who}, of wat |
zien wie er allemaal ingelogd is met het commando \com{who}, of wat |
2754 |
uitgebreider met \com{who -HTi}. |
uitgebreider met \com{who -HTi}. |
2755 |
|
|
2756 |
\begin{opgave} |
\begin{opgave} |
2765 |
proces krijgt een uniek nummer, genoemd process identification, |
proces krijgt een uniek nummer, genoemd process identification, |
2766 |
process ID of (meestal) pid. Elk proces draait op één bepaalde |
process ID of (meestal) pid. Elk proces draait op één bepaalde |
2767 |
terminal (bijvoorbeeld een virtuele console. |
terminal (bijvoorbeeld een virtuele console. |
2768 |
|
|
2769 |
Met het commando \com{ps} kunnen we een lijst krijgen van processen die wij |
Met het commando \com{ps} kunnen we een lijst krijgen van processen die wij |
2770 |
hebben draaien. Daarop zien we bijvoorbeeld de shell(s) en ook ps |
hebben draaien. Daarop zien we bijvoorbeeld de shell(s) en ook ps |
2771 |
zelf. In de kolom `PID' staat het proces-nummer en onder `TT' staat de |
zelf. In de kolom `PID' staat het proces-nummer en onder `TT' staat de |
2772 |
terminal (plak /dev/tty ervoor voor de complete naam). Als er een |
terminal (plak /dev/tty ervoor voor de complete naam). Als er een |
2773 |
vraagteken (`?') onder `TT' staat, is er geen controlling terminal en |
vraagteken (`?') onder `TT' staat, is er geen controlling terminal en |
2774 |
draait het programma `in de achtergrond'. |
draait het programma `in de achtergrond'. |
2775 |
|
|
2776 |
Gebruik \com{ps aux} om een uitgebreide lijst te zien van alle |
Gebruik \com{ps aux} om een uitgebreide lijst te zien van alle |
2777 |
processen die op dit moment draaien (de aux is een switch, maar dan |
processen die op dit moment draaien (de aux is een switch, maar dan |
2779 |
hier niet allemaal behandelen, maar neem aan dat ze allemaal nodig |
hier niet allemaal behandelen, maar neem aan dat ze allemaal nodig |
2780 |
zijn om het systeem correct te laten functioneren. In ieder geval is |
zijn om het systeem correct te laten functioneren. In ieder geval is |
2781 |
er een proces met de naam init, dat pid 1 heeft. Dat is het programma |
er een proces met de naam init, dat pid 1 heeft. Dat is het programma |
2782 |
/sbin/init dat als eerste door de kernel is gestart. Init heeft er |
\file{/sbin/init} dat als eerste door de kernel is gestart. Init heeft er |
2783 |
bijvoorbeeld voor gezorgd dat er zes virtuele consoles beschikbaar |
bijvoorbeeld voor gezorgd dat er zes virtuele consoles beschikbaar |
2784 |
zijn gekomen. Niet alle processen doen trouwens altijd iets. Sterker |
kwamen. Niet alle processen doen trouwens altijd iets. Sterker |
2785 |
nog, de meeste processen `liggen te slapen' en wachten tot ze `wakker' |
nog, de meeste processen `liggen te slapen' en wachten tot ze `wakker' |
2786 |
gemaakt worden. De shell bash doet niets anders dan wachten tot we |
gemaakt worden. De shell bash doet niets anders dan wachten tot we |
2787 |
eens een toets in gaan drukken, of wachten tot het programma wat |
eens een toets indrukken, of wachten tot het programma wat |
2788 |
erdoor gestart is, is afgelopen. Dit slapen kunnen we zien aan de |
erdoor gestart is, is afgelopen. Dit slapen kunnen we zien aan de |
2789 |
letter `S' (van sleep) in de kolom `STAT' (van state of status, |
letter `S' (van sleep) in de kolom `STAT' (van state of status, |
2790 |
toestand). De `R' daar is van running, dan is een proces dat ook echt |
toestand). De `R' daar is van running, dan is een proces dat ook echt |
2791 |
iets aan het doen is---zoals ps zelf, die de lijst van processen aan het |
iets aan het doen is --- zoals ps zelf, die de lijst van processen aan het |
2792 |
presenteren is. Onder `TIME' staat het aantal minuten:seconden dat een |
presenteren is. Onder `TIME' staat het aantal minuten:seconden dat een |
2793 |
programma totaal al heeft gerund sinds het gestart is (kolom |
programma al heeft gerund sinds het gestart is (kolom |
2794 |
`START'), en meestal is dat niet zo lang. |
`START'), en meestal is dat niet zo lang. |
2795 |
|
|
2796 |
\section{Process en job control} |
\section{Process en job control} |
2813 |
|
|
2814 |
Juist, het proces more is be\"eindigd, (terminated) ofwel gekilled. Als |
Juist, het proces more is be\"eindigd, (terminated) ofwel gekilled. Als |
2815 |
we geen signaal specific\"eren, stuurt kill standaard het TERM signaal |
we geen signaal specific\"eren, stuurt kill standaard het TERM signaal |
2816 |
(van terminate, ofwel beëindigen -- daar komt de naam `kill' |
(van terminate, ofwel beëindigen --- daar komt de naam `kill' |
2817 |
vandaan). Het be\"eindigen van een programma kan ook vanaf dezelfde |
vandaan). Het be\"eindigen van een programma kan ook vanaf dezelfde |
2818 |
virtuele console gebeuren en wel met Ctrl-C. |
virtuele console gebeuren en wel met Ctrl-C. |
2819 |
|
|
2960 |
|
|
2961 |
Stel voor dat we het commando \com{cat /usr/bin/* $|$ gzip $|$ od $|$ |
Stel voor dat we het commando \com{cat /usr/bin/* $|$ gzip $|$ od $|$ |
2962 |
gzip $|$ od $|$ gzip $|$ md5sum $>$ /tmp/testchecksum} zouden willen |
gzip $|$ od $|$ gzip $|$ md5sum $>$ /tmp/testchecksum} zouden willen |
2963 |
geven (waarom doet er trouwens niet toe). Dat commando doet er flink |
geven (waarom doet er niet toe). Dat commando doet er flink |
2964 |
lang over, zeker een paar minuten. En ondertussen willen we wel |
lang over, zeker een paar minuten. En ondertussen willen we wel |
2965 |
doorwerken. Dan zouden we het natuurlijk op een aparte virtuele |
doorwerken. Dan zouden we het natuurlijk op een aparte virtuele |
2966 |
console kunnen doen, maar dan moeten we daar ook weer inloggen. Er is |
console kunnen doen, maar dan moeten we daar ook weer inloggen. Er is |
2970 |
Dat kan, omdat het programma toch geen schermuitvoer heeft, alles |
Dat kan, omdat het programma toch geen schermuitvoer heeft, alles |
2971 |
wordt omgeleid naar een bestand. E\'en manier om dat te doen, is het |
wordt omgeleid naar een bestand. E\'en manier om dat te doen, is het |
2972 |
programma gewoon starten door het in te typen. Suspend het dan (als we |
programma gewoon starten door het in te typen. Suspend het dan (als we |
2973 |
het te lang vinden gaan duren) met Ctrl-Z. Geef dan het commando |
het te lang vinden gaan duren) met Ctrl-Z. We geven dan het commando |
2974 |
\com{bg} (van background, vergelijk \com{fg}) en we krijgen een melding dat |
\com{bg} (van background, vergelijk met \com{fg}) en we krijgen een melding dat |
2975 |
het tijdrovende commando weer is gestart. Maar tegelijk krijgen we de |
het tijdrovende commando weer is gestart. Maar tegelijk krijgen we de |
2976 |
prompt weer terug en kunen we andere nuttige dingen gaan doen. Vragen we |
prompt terug en kunen we andere nuttige dingen doen. Vragen we |
2977 |
bijvoorbeeld de jobs op en dan zien we dat de job `Running' is. Als de |
bijvoorbeeld de jobs op en dan zien we dat de job `Running' is. Als de |
2978 |
job klaar is, wacht de shell totdat er weer een prompt op het scherm |
job klaar is, wacht de shell totdat er weer een prompt op het scherm |
2979 |
gezet moet worden (bijvoorbeeld als we op Enter drukken), en dan wordt |
gezet moet worden (bijvoorbeeld als we op Enter drukken), en dan wordt |
2981 |
|
|
2982 |
Als we van tevoren weten, dat het commando lang gaat duren, dan |
Als we van tevoren weten, dat het commando lang gaat duren, dan |
2983 |
plakken we er een ampersand (`\&', en-teken) achter, dus |
plakken we er een ampersand (`\&', en-teken) achter, dus |
2984 |
....testchecksum \&. De job wordt dan meteen in de achtergrond gestart. |
\commando{....testchecksum \&}. De job wordt dan meteen in de achtergrond gestart. |
2985 |
Het jobnummer wordt afgedrukt en de pid van het eerste proces in de job. |
Het jobnummer wordt afgedrukt en de pid van het eerste proces in de job. |
2986 |
De rest gaat zoals boven beschreven. Ook een job die in de achtergrond |
De rest gaat zoals boven beschreven. Ook een job die in de achtergrond |
2987 |
draait, kun je met \com{\%1} of \com{fg} weer in de voorgrond halen; |
draait, kun je met \com{\%1} of \com{fg} weer in de voorgrond halen; |
2988 |
met Ctrl-Z en bg weer terug in de achtergrond. |
met Ctrl-Z en bg weer terug in de achtergrond. |
2989 |
|
|
2990 |
Om te zien wat er op het systeem gebeurt, wordt vaak het commando |
Om te zien wat er op het systeem gebeurt, wordt vaak het commando |
2991 |
\com{top} gebruikt. Dat commando geeft elke paar seconden een lijst |
\com{top} gebruikt. Dat commando geeft elke paar seconden een lijst |
2992 |
zoals \com{ps}, maar dan gesorteerd op processor-belasting. Tijdens ons |
zoals \com{ps}, maar dan gesorteerd op processor-belasting. Tijdens ons |
2993 |
voorbeeld-commando blijkt dat de gzip's het meeste "CPU- tijd vreten", |
voorbeeld-commando blijkt dat de gzip's het meeste "CPU- tijd vreet", |
2994 |
zie de kolom `\%CPU'. We kunnen de update-snelheid van top veranderen |
zie de kolom `\%CPU'. We kunnen de update-snelheid van top veranderen |
2995 |
door de `s' in te typen, gevolgd door een aantal seconden (probeer |
door de `s' in te typen, gevolgd door een aantal seconden (probeer |
2996 |
eens 0.01 en kijk naar de `\%CPU' van top zelf). We kunnen top afsluiten |
eens 0.01 en kijk naar de `\%CPU' van top zelf). We kunnen top afsluiten |
3023 |
\end{opgave} |
\end{opgave} |
3024 |
|
|
3025 |
Als we nu met \com{ls -alF /tmp} de directory bekijken, zien we dat er |
Als we nu met \com{ls -alF /tmp} de directory bekijken, zien we dat er |
3026 |
een bestand testtarfile.tar.gz staat---gzip plakt namelijk altijd .gz |
een bestand testtarfile.tar.gz staat --- gzip plakt namelijk altijd .gz |
3027 |
achter de naam van het ingepakte bestand. De naam kunnen we eventueel |
achter de naam van het ingepakte bestand. De naam kunnen we eventueel |
3028 |
met mv veranderen, bijvoorbeeld in testtarfile.tgz. In \gl\ kunnen we |
met \com{mv} veranderen, bijvoorbeeld in testtarfile.tgz. In \gl\ kunnen we |
3029 |
de twee stappen ook in \'e\'en keer doen, omdat gzip `ingebakken' zit |
de twee stappen ook in \'e\'en keer doen, omdat gzip `ingebakken' zit |
3030 |
in tar. |
in tar. |
3031 |
|
|
3054 |
Met gzip kunnen we slechts \'e\'en bestand per keer compressen (en dat is af |
Met gzip kunnen we slechts \'e\'en bestand per keer compressen (en dat is af |
3055 |
en toe ook heel handig), daarom moeten we eerst tar gebruiken als we |
en toe ook heel handig), daarom moeten we eerst tar gebruiken als we |
3056 |
meerdere bestanden in \'e\'en archief willen krijgen. gzip zonder |
meerdere bestanden in \'e\'en archief willen krijgen. gzip zonder |
3057 |
bestandsnaam compresst de standard input en geeft het resultaat aan de |
bestandsnaam compresseert de standard input en geeft het resultaat aan de |
3058 |
standard output, ideaal om `om te leiden'; tar met een min (`-') als |
standard output, ideaal om `om te leiden'; tar met een min (`-') als |
3059 |
bestandsnaam leest danwel schrijft van/naar standard input en |
bestandsnaam leest/schrijft van/naar standard input en |
3060 |
output. |
output. |
3061 |
|
|
3062 |
We kunnen ze dus ook `aan elkaar koppelen': \com{tar cvf - /etc/* $|$ |
We kunnen ze dus ook `aan elkaar koppelen': \com{tar cvf - /etc/* $|$ |
3066 |
Dat zijn handige manieren om op andere \unix\ systemen met |
Dat zijn handige manieren om op andere \unix\ systemen met |
3067 |
.tgz-bestanden te werken, omdat tar daar meestal geen compressie heeft |
.tgz-bestanden te werken, omdat tar daar meestal geen compressie heeft |
3068 |
ingebouwd. We zien trouwens, dat hier \file{etc/} in de bestandsnamen |
ingebouwd. We zien trouwens, dat hier \file{etc/} in de bestandsnamen |
3069 |
wordt meegenomen (en hiervoor niet)---die hebben we immers ook |
wordt meegenomen (en hiervoor niet) --- die hebben we immers ook |
3070 |
opgegeven! Let wel: dat eerste pad-stuk wordt ook meegenomen bij het |
opgegeven! Let wel: dat eerste pad-stuk wordt ook meegenomen bij het |
3071 |
uitpakken, en dat hoeft niet altijd te zijn wat je bedoelt; daar |
uitpakken, en dat hoeft niet altijd te zijn wat je bedoelt; daar |
3072 |
moeten we dus bij het inpakken al rekening mee houden. |
moeten we dus bij het inpakken al rekening mee houden. |
3075 |
vooral tekstbestanden aanzienlijk kleiner inpakt. Het grote nadeel is |
vooral tekstbestanden aanzienlijk kleiner inpakt. Het grote nadeel is |
3076 |
echter dat bzip2 langzamer werkt en (ook tijdens het uitpakken) enorme |
echter dat bzip2 langzamer werkt en (ook tijdens het uitpakken) enorme |
3077 |
hoeveelheden geheugen gebruikt (enkele megabytes); het is daarom |
hoeveelheden geheugen gebruikt (enkele megabytes); het is daarom |
3078 |
minder geschikt voor oudere computers. Gebruik van bzip2 en bunzip2 is |
minder geschikt op oudere computers. Gebruik van bzip2 en bunzip2 is |
3079 |
identiek aan gzip en gunzip, de extensie is .bz2. |
identiek aan gzip en gunzip, de extensie is .bz2. |
3080 |
|
|
3081 |
In combinatie met tar wordt dat .tar.bz2 of .tbz2, voor directe |
In combinatie met tar wordt dat .tar.bz2 of .tbz2, voor directe |
3091 |
|
|
3092 |
\section{Meer hulp} |
\section{Meer hulp} |
3093 |
|
|
3094 |
\subsection{Programma-hulp} |
\subsection{Programma-hulp} \index{man} |
3095 |
|
|
3096 |
De behandelde commando's kunnen veel meer dan we hier uit de doeken |
De behandelde commando's kunnen veel meer dan we hier uit de doeken |
3097 |
hebben gedaan. Het voert ons echter te ver om dat allemaal te gaan |
hebben gedaan. Het voert ons echter te ver om dat allemaal te gaan |
3117 |
De manual pages zijn onderverdeeld in een aantal secties (of |
De manual pages zijn onderverdeeld in een aantal secties (of |
3118 |
hoofdstukken), genummerd van 1 tot 9. Wat in welke sectie thuishoort |
hoofdstukken), genummerd van 1 tot 9. Wat in welke sectie thuishoort |
3119 |
kunnen we lezen in de manpage van man zelf (met \com{man man} dus). Het |
kunnen we lezen in de manpage van man zelf (met \com{man man} dus). Het |
3120 |
komt voor dat er in twee secties een manpage met dezelfde naam staat---% |
komt voor dat er in twee secties een manpage met dezelfde naam staat --- |
3121 |
bijvoorbeeld van man zelf, in sectie 1 en sectie 7. Om de juiste te |
bijvoorbeeld van man zelf, in sectie 1 en sectie 7. Om de juiste te |
3122 |
kunnen bekijken, geven we \com{man 1 man} en/of \com{man 7 man}, in |
kunnen bekijken, geven we \com{man 1 man} en/of \com{man 7 man}, in |
3123 |
het algemeen \com{man $<$sectie$>$ $<$programmanaam$>$}. Gebruik de `/'-toets |
het algemeen \com{man $<$sectie$>$ $<$programmanaam$>$}. Gebruik de `/'-toets |
3140 |
zomaar met man kunt bekijken. Gebruik in dat geval de -l switch, |
zomaar met man kunt bekijken. Gebruik in dat geval de -l switch, |
3141 |
bijvoorbeeld \com{man -l /usr/share/man/man1/bash.1.gz}. |
bijvoorbeeld \com{man -l /usr/share/man/man1/bash.1.gz}. |
3142 |
|
|
3143 |
\subsection{Texinfo \label{inleiding:info}} |
\subsection{Texinfo \label{inleiding:info}}\index{texinfo} |
3144 |
Wat uitgebreidere manual pages staan in een ander formaat, het Texinfo |
Wat uitgebreidere manual pages staan in een ander formaat, het Texinfo |
3145 |
("tech-info") formaat. |
("tech-info") formaat. |
3146 |
|
|
3149 |
of alleen info voor een lijst. |
of alleen info voor een lijst. |
3150 |
\end{opgave} |
\end{opgave} |
3151 |
|
|
3152 |
\begrip{Texinfo} is een `hypertext'-systeem, wat wil zeggen dat er in de tekst |
\Begrip{Texinfo} is een `hypertext'-systeem, wat wil zeggen dat er in de tekst |
3153 |
links zijn naar andere punten in de tekst. Meestal komen we binnen in |
links zijn naar andere punten in de tekst. Meestal komen we binnen in |
3154 |
een inhoudsopgave-pagina; met de pijltjestoetsen kunnen we naar een |
een inhoudsopgave-pagina; met de pijltjestoetsen kunnen we naar een |
3155 |
item lopen, en met Enter spring je daarheen. Links staan meestal |
item lopen, en met Enter springen we binnen. Links staan meestal |
3156 |
tussen een sterretje en twee dubbele punten, bijvoorbeeld "*note: More |
tussen een sterretje en twee dubbele punten, bijvoorbeeld "*note: More |
3157 |
Features::"; als de link-tekst over meerdere regels doorloopt, werkt |
Features::"; als de link-tekst over meerdere regels doorloopt, werkt |
3158 |
de Enter alleen op de eerste regel. Met de `L'-toets springen we terug |
de Enter alleen op de eerste regel. Met de `L'-toets springen we terug |
3159 |
naar de vorige pagina. Als we een voetnoot tegenkomen die het halve |
naar de vorige pagina. Als we een voetnoot tegenkomen die het halve |
3160 |
scherm in beslag neemt, Ctrl-X 1 (\^{}X 1 dus). Je kunt een heel Texinfo |
scherm in beslag neemt: Ctrl-X 1 (\^{}X 1 dus). We kunnen een heel Texinfo |
3161 |
document ook in volgorde van voor naar achter doorlezen door steeds |
document ook in volgorde van voor naar achter doorlezen door steeds |
3162 |
aan het einde van een pagina op de spatiebalk te drukken. |
aan het einde van een pagina op de spatiebalk te duwen. |
3163 |
|
|
3164 |
Zoeken gaat met Ctrl-S; de zoekterm wordt gezocht terwijl we hem |
Zoeken gaat met Ctrl-S; de zoekterm wordt gezocht terwijl we hem |
3165 |
intypten, weer Ctrl-S zoekt de volgende, Escape stopt het zoekproces. In |
intypten, weer Ctrl-S zoekt de volgende, Escape stopt het zoekproces. In |
3170 |
Verlaat info met `q' of Ctrl-X Ctrl-C (\^{}X\^{}C). |
Verlaat info met `q' of Ctrl-X Ctrl-C (\^{}X\^{}C). |
3171 |
|
|
3172 |
\chapter{SSH}\label{sshuitleg} |
\chapter{SSH}\label{sshuitleg} |
3173 |
|
|
3174 |
Om een verbinding te maken met een andere machine, bestaan er protocols zoals |
Om een verbinding te maken met een andere machine, bestaan er protocols zoals |
3175 |
rsh, telnet, rlogin, rcp, \ldots Deze geven, na eventueel inloggen als dat vereist is, een |
rsh, telnet, rlogin, rcp, \ldots\ Deze geven, na eventueel inloggen als dat vereist is, een |
3176 |
command prompt, waarmee we op een andere machines commando's en programma's kunnen |
command prompt, waarmee we op een andere machines commando's en programma's kunnen |
3177 |
laten uitvoeren. Binnen sommige netwerken is dat inloggen niet nodig, omdat om tot |
laten uitvoeren. Binnen sommige netwerken is dat inloggen niet nodig, omdat om tot |
3178 |
het netwerk zelf toegang te krijgen al een login nodig was. |
het netwerk zelf toegang te krijgen al een login vereist is. |
3179 |
|
|
3180 |
Nadeel van deze procedures is dat alle gegevens tussen de machines rechtstreeks |
Nadeel van deze procedures is dat alle gegevens tussen de machines rechtstreeks |
3181 |
worden doorgegeven. Nadeel? Jazeker, ook paswoorden en dergelijke worden gewoon |
worden doorgegeven. Nadeel? Jazeker, ook paswoorden en dergelijke worden gewoon |
3182 |
rechtstreeks uitgewisseld zonder enige vorm van bescherming. Wanneer er een buitenstaander |
rechtstreeks uitgewisseld zonder enige vorm van bescherming. Wanneer er een buitenstaander |
3183 |
ergens op de verbindingslijn meeluistert, kan die alle gegevens die tussen de machines |
ergens op de verbindingslijn meeluistert, kan die alle gegevens die tussen de machines |
3184 |
worden uitgewisseld, gewoon meevolgen. Dat betekent dat die persoon dus ook gewoon de |
worden uitgewisseld, meevolgen. Dat betekent dat die persoon de |
3185 |
paswoorden letter voor letter voor zijn/haar neus ziet passeren. Deze techniek (``luistervinken'') |
paswoorden letter voor letter voor zijn/haar neus ziet passeren. Deze techniek (``luistervinken'') |
3186 |
was een bekende zwakte van de oudere systemen. |
was een bekende zwakte van de oudere systemen. |
3187 |
|
|
3188 |
Als antwoord op dat probleem is \begrip{ssh} ontstaan, de zogenaamde Secure SHell. |
Als antwoord op dat probleem is \begrip{ssh} ontstaan, de zogenaamde Secure SHell. |
3189 |
Dit protocol biedt de mogelijkheid om de verbinding tussen twee machines te versleutelen, en |
Dit protocol biedt de mogelijkheid om de verbinding tussen twee machines te versleutelen, en |
3190 |
zo het ``luistervinken'' onmogelijk maakt. Wat een derde partij die probeert wachtwoorden |
zo het ``luistervinken'' onmogelijk te maken. Wat een derde partij die probeert wachtwoorden |
3191 |
te onderscheppen nu ziet, is een reeks betekenisloze tekens. De luisteraar kan natuurlijk |
te onderscheppen, nu ziet, is een reeks betekenisloze tekens. De luisteraar kan natuurlijk |
3192 |
proberen deze codering te kraken, maar de versleuteling is van die aard dat het vrijwel |
proberen deze codering te kraken, maar de versleuteling is van die aard dat het vrijwel |
3193 |
onmogelijk is de code te kraken. |
onmogelijk is de code te kraken. |
3194 |
|
|
3197 |
willen maken (SSHD, komt vaak mee met UNIX-achtige OS'en, maar niet altijd). Wanneer we via SSH |
willen maken (SSHD, komt vaak mee met UNIX-achtige OS'en, maar niet altijd). Wanneer we via SSH |
3198 |
inloggen, is de toegang tussen de gebruiker en de host veilig van in het begin. |
inloggen, is de toegang tussen de gebruiker en de host veilig van in het begin. |
3199 |
|
|
3200 |
Een SSH sessie begint via zogenaamde \emph{public key cryptography} om een willekeurige sleutel \ |
Een SSH sessie begint via zogenaamde \emph{public key cryptography} om een willekeurige sleutel |
3201 |
(\emph{key}) te genereren voor deze sessie. Deze sleutel is de basis voor een private sleutel |
(\emph{key}) te genereren voor deze sessie. Deze sleutel is de basis voor een private sleutel |
3202 |
algoritme. Bij cryptografie met een private sleutel cryptografie zijn de sleutel om de coderen en |
algoritme. Bij cryptografie met een private sleutel zijn de sleutel om de coderen en |
3203 |
de sleutel om te ontcijferen dezelfde. Bij cryptografie met een publieke sleutel zijn de |
de sleutel om te ontcijferen dezelfde. Bij cryptografie met een publieke sleutel zijn de |
3204 |
de coderings- en de ontcijferingssleutel verschillend. Men spreekt over een publieke sleutel, omdat |
de coderings- en de ontcijferingssleutel verschillend. Men spreekt over een publieke sleutel, omdat |
3205 |
deze mag bekend zijn voor de buitenwereld, zonder dat men daarmee de inhoud van het bericht of |
deze mag bekend zijn voor de buitenwereld, zonder dat men daarmee de inhoud van het bericht of |