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 |
26 |
het ook hebben over de evolutie dat \gl\ doorgemaakt heeft van een |
het ook hebben over de evolutie die \gl\ doorgemaakt heeft van een |
27 |
moeilijk besturingssysteem tot een besturingssysteem dat niet meer |
moeilijk besturingssysteem tot een besturingssysteem dat niet meer |
28 |
voor gurus alleen is. |
voor guru's alleen is. |
29 |
|
|
30 |
Daarnaast zullen we ook de verschillen bespreken tussen \gl\ en \win, |
Daarnaast zullen we ook de verschillen bespreken tussen \gl\ en \win, |
31 |
aan wat u begint als nieuwe \gl gebruiker, positieve kenmerken: |
waaraan u begint als nieuwe \gl gebruiker, positieve kenmerken: |
32 |
stabiliteit, flexibiliteit, ontwikkelingsmogelijkheden en uitdagende |
stabiliteit, flexibiliteit, ontwikkelingsmogelijkheden en uitdagende |
33 |
kenmerken (niet negatief): administrator versus gebruiker. |
kenmerken (niet negatief): administrator versus gebruiker. |
34 |
|
|
42 |
plaats opge\"eist tussen de andere besturingssystemen die algemeen |
plaats opge\"eist tussen de andere besturingssystemen die algemeen |
43 |
toegankelijk (maar niet altijd vrij) zijn. |
toegankelijk (maar niet altijd vrij) zijn. |
44 |
|
|
45 |
Zoals de naam ``\gl'' laat uitschijnen bestaat het uit twee delen: |
Zoals de naam ``\gl'' laat uitschijnen, bestaat het uit twee delen: |
46 |
\gnu\ en \linux. |
\gnu\ en \linux. |
47 |
|
|
48 |
\subsection{\gnu} |
\subsection{\gnu} |
52 |
\url{http://www.gnu.org} |
\url{http://www.gnu.org} |
53 |
\end{urlbox} |
\end{urlbox} |
54 |
|
|
55 |
\begrip{\gnu}, wat een recursief acroniem is, staat voor: ``\gnu's |
\begrip{\gnu}, is een recursieve afkorting voor ``\gnu's |
56 |
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 |
57 |
\unix-achtig besturingssysteem te ontwikkelen, maar dan als |
\unix-achtig besturingssysteem te ontwikkelen, maar dan als |
58 |
\begrip{vrije software} (\begrip{free software}). |
\begrip{vrije software} (\begrip{free software}). |
107 |
\end{urlbox} |
\end{urlbox} |
108 |
|
|
109 |
Ieder zichzelf respecterend project heeft een mascotte. De \gnu\ |
Ieder zichzelf respecterend project heeft een mascotte. De \gnu\ |
110 |
heeft een gnu als mascotte en \linux\ heeft penguin als mascotte. |
heeft een gnu als mascotte en \linux\ heeft een pingu\"\i n als mascotte. |
111 |
|
|
112 |
De offici\"ele \linux\ penguin werd gekozen door Linus Torvalds en |
De offici\"ele \linux\ pingu\"\i n werd gekozen door Linus Torvalds en |
113 |
zien we in figuur~\ref{tux}. De penguin werd ontworpen door Larry |
zien we in figuur~\ref{tux}. De pingu\"\i n werd ontworpen door Larry |
114 |
Ewing. |
Ewing. |
115 |
|
|
116 |
\begin{figure} |
\begin{figure} |
117 |
\center |
\center |
118 |
\includegraphics{inleiding/tux.png} |
\includegraphics{inleiding/tux.png} |
119 |
\caption{Tux, de \linux\ penguin} |
\caption{Tux, de \linux\ pingu\"\i n} |
120 |
\label{tux} |
\label{tux} |
121 |
\end{figure} |
\end{figure} |
122 |
|
|
123 |
Linus legt in de volgende tekst uit waarom hij juist een penguin heeft |
Linus legt in de volgende tekst uit waarom hij juist een pingu\"\i n heeft |
124 |
gekozen: |
gekozen: |
125 |
|
|
126 |
\begin{quote} |
\begin{quote} |
181 |
being used as an actor in some tableau. |
being used as an actor in some tableau. |
182 |
\end{quote} |
\end{quote} |
183 |
|
|
184 |
De \linux\ penguin werd genoemd naar: Torvalds \unix of \Begrip{Tux}. |
De \linux\ pingu\"\i n werd genoemd naar: Torvalds \unix of \Begrip{Tux}. |
185 |
|
|
186 |
\gnu\ heeft ook een mascotte, deze wordt afgebeeld in |
\gnu\ heeft ook een mascotte, deze wordt afgebeeld in |
187 |
figuur~\ref{gnulogo}, |
figuur~\ref{gnulogo}, |
895 |
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 |
896 |
als iemand \linux\ zegt als hij het over \gl\ heeft geen krediet |
als iemand \linux\ zegt als hij het over \gl\ heeft geen krediet |
897 |
wil geven aan het \gnu\ project. Zonder \gnu\ was er nooit een \linux\ |
wil geven aan het \gnu\ project. Zonder \gnu\ was er nooit een \linux\ |
898 |
kernel gekomen. Wij laten het niet toe dat \gnu\ vergeten wordt! |
kernel gekomen. Wij laten het niet toe dat \gnu\ vergeten wordt! |
899 |
|
|
900 |
\Begrip{Zonder \gnu\ was de hele filosofie omtrent vrije software er |
\Begrip{Zonder \gnu\ was de hele filosofie omtrent vrije software er |
901 |
nooit geweest.} |
nooit geweest.} |
929 |
|
|
930 |
``Free software'' (vrije software) slaat op vrijheid, niet op prijs. |
``Free software'' (vrije software) slaat op vrijheid, niet op prijs. |
931 |
Om het in context te zien: ``free speech'', in plaats van ``free |
Om het in context te zien: ``free speech'', in plaats van ``free |
932 |
beer.'' ``Vrije software'' slaat op het recht van de gebruiker om de |
beer''. ``Vrije software'' slaat op het recht van de gebruiker om de |
933 |
software te gebruiken, kopi\"eren, verspreiden, bestuderen, veranderen |
software te gebruiken, kopi\"eren, verspreiden, bestuderen, veranderen |
934 |
en verbeteren. Kort samengevat in vier punten: |
en verbeteren. Kort samengevat in vier punten: |
935 |
\begin{itemize} |
\begin{itemize} |
936 |
\item De vrijheid om het programma te gebruiken voor elk doel. (vrijheid 0) |
\item De vrijheid om het programma te gebruiken voor elk doel. (vrijheid 0) |
937 |
\item De vrijheid om de manier waarop het programma werkt te bestuderen, |
\item De vrijheid om de manier waarop het programma werkt te bestuderen, |
1044 |
|
|
1045 |
\subsection{Integriteit van de broncode van de auteur} |
\subsection{Integriteit van de broncode van de auteur} |
1046 |
De licentie mag de verspreiding van de aangepaste broncode alleen |
De licentie mag de verspreiding van de aangepaste broncode alleen |
1047 |
beperken als de licentie de verspreiding van "patch files" met de |
beperken als de licentie de verspreiding van ``patch files'' met de |
1048 |
broncode toestaat met als doel het programma aan te passen als het |
broncode toestaat met als doel het programma aan te passen als het |
1049 |
gebouwd wordt. De licentie moet verspreiding van software die met |
gebouwd wordt. De licentie moet verspreiding van software die met |
1050 |
aangepaste broncode is gebouwd expliciet toestaan. De licentie kan |
aangepaste broncode is gebouwd expliciet toestaan. De licentie kan |
1056 |
discrimineren. |
discrimineren. |
1057 |
|
|
1058 |
\subsection{Geen discriminatie van toepassingsgebieden} |
\subsection{Geen discriminatie van toepassingsgebieden} |
|
|
|
1059 |
De licentie mag niemand verbieden het programma te gebruiken voor een |
De licentie mag niemand verbieden het programma te gebruiken voor een |
1060 |
bepaald toepassingsgebied. Het mag het gebruik van het programma door |
bepaald toepassingsgebied. Het mag het gebruik van het programma door |
1061 |
bedrijven of voor genetisch onderzoek bijvoorbeeld niet verbieden. |
bedrijven of voor genetisch onderzoek bijvoorbeeld niet verbieden. |
1062 |
|
|
1063 |
\subsection{Verspreiding van licentie} |
\subsection{Verspreiding van licentie} |
|
|
|
1064 |
De rechten die aan het programma zijn verbonden moeten van toepassing |
De rechten die aan het programma zijn verbonden moeten van toepassing |
1065 |
zijn voor iedereen naar wie het programma wordt geherdistribueerd, |
zijn voor iedereen naar wie het programma wordt geherdistribueerd, |
1066 |
zonder de verplichting voor die partijen om een additionele licentie |
zonder de verplichting voor die partijen om een additionele licentie |
1067 |
uit te voeren. |
uit te voeren. |
1068 |
|
|
1069 |
\subsection{De licentie mag niet specifiek zijn voor een product} |
\subsection{De licentie mag niet specifiek zijn voor een product} |
1070 |
De rechten die aan het programma zijn verbonden mogen niet afhankelijk |
De rechten die aan het programma zijn verbonden mogen niet afhankelijk |
1071 |
zijn van een speciale softwaredistributie waar het programma deel van |
zijn van een speciale softwaredistributie waar het programma deel van |
1072 |
uitmaakt. Als het programma uit die distributie wordt gehaald en |
uitmaakt. Als het programma uit die distributie wordt gehaald en |
1073 |
wordt gebruikt of verspreid binnen de voorwaarden van de licentie van |
wordt gebruikt of verspreid binnen de voorwaarden van de licentie van |
1074 |
het programma, moeten alle partijen naar wie het programma is |
het programma, moeten alle partijen naar wie het programma is |
1075 |
geherdistribueerd dezelfde rechten hebben als zijn toegekend in |
geherdistribueerd dezelfde rechten hebben als zijn toegekend in |
1076 |
combinatie met de originele softwaredistributie. |
combinatie met de originele softwaredistributie. |
1077 |
|
|
1078 |
\subsection{De licentie mag andere software niet beperken} |
\subsection{De licentie mag andere software niet beperken} |
1079 |
De licentie mag geen beperkingen plaatsen op andere software die |
De licentie mag geen beperkingen plaatsen op andere software die |
1133 |
kunnen. In de console kunnen we opdrachten intikken, dit doen we op |
kunnen. In de console kunnen we opdrachten intikken, dit doen we op |
1134 |
de commandolijn. |
de commandolijn. |
1135 |
|
|
1136 |
Nu en dan wordt er gezegd dat de commando lijn uit de mode is, maar |
Nu en dan wordt er gezegd dat de commandolijn uit de mode is, maar |
1137 |
niets is minder waar. Inderdaad we kunnen met \gl\ werken zonder ooit |
niets is minder waar. Inderdaad we kunnen met \gl\ werken zonder ooit |
1138 |
maar de console aan te raken door de grafische interface te gebruiken |
maar de console aan te raken door de grafische interface te gebruiken |
1139 |
(het X Window System), maar wat als onze grafische interface het laat |
(het X Window System), maar wat als onze grafische interface het laat |
1168 |
grafische kaart, scherm, toetsenbord of muis we hebben om hun ding te |
grafische kaart, scherm, toetsenbord of muis we hebben om hun ding te |
1169 |
doen, maar moeten ze enkel met de server kunnen communiceren. Op die |
doen, maar moeten ze enkel met de server kunnen communiceren. Op die |
1170 |
manier vraagt een cli\"ent aan de server om ``een lijn van hier naar |
manier vraagt een cli\"ent aan de server om ``een lijn van hier naar |
1171 |
daar'' te tekenen of om ``deze tekst in dit font'' op het scherm te |
daar'' te tekenen of om ``deze tekst in dit lettertype'' op het scherm te |
1172 |
zetten. Voorts kan een cli\"ent aan de server vragen om verwittigd te |
zetten. Voorts kan een cli\"ent aan de server vragen om verwittigd te |
1173 |
worden wanneer er op de muis geklikt wordt. |
worden wanneer er op de muis geklikt wordt. |
1174 |
|
|
1187 |
moeten worden gesteld zodat cli\"entapplicaties geschreven kunnen |
moeten worden gesteld zodat cli\"entapplicaties geschreven kunnen |
1188 |
worden. Deze specificatie is het resultaat van het Athena project aan |
worden. Deze specificatie is het resultaat van het Athena project aan |
1189 |
het MIT\footnote{MIT staat voor ``Massachusetss Institute of |
het MIT\footnote{MIT staat voor ``Massachusetss Institute of |
1190 |
Technology'', wat een universiteit in America is.} en zag het |
Technology'', een Amerikaanse universiteit.} en zag het |
1191 |
levenslicht in 1984. In 1988 werd de ontwikkeling en distributie van X |
levenslicht in 1984. In 1988 werd de ontwikkeling en distributie van X |
1192 |
in handen gegeven van het zogenaamde \begrip{X consortium} |
in handen gegeven van het zogenaamde \begrip{X consortium} |
1193 |
die de X specificatie gratis verspreidt. Er bestaan |
die de X specificatie gratis verspreidt. Er bestaan |
1194 |
verschillende implementaties van X. Degene die onder \gl\ het |
verschillende implementaties van X. Degene die onder \gl\ het |
1195 |
meeste gebruikt wordt is \begrip{XFree86} (\url{http://www.xfree86.org/}). |
meeste gebruikt wordt is \begrip{XFree86} (\url{http://www.xfree86.org/}). |
1196 |
|
|
1197 |
\subsection{Window managers} |
\subsection{Window managers} |
1215 |
ook de mogelijkheid om ons bureaublad in verschillende |
ook de mogelijkheid om ons bureaublad in verschillende |
1216 |
\Begrip{desktops} in te delen. |
\Begrip{desktops} in te delen. |
1217 |
|
|
1218 |
Nogmaals, een Windows Manager is \Begrip{geen} deel van X maar is een |
Nogmaals, een window manager is \Begrip{geen} deel van X maar is een |
1219 |
speciaal cli\"ent programma. X biedt enkel manieren aan waarop Window |
speciaal cli\"ent programma. X biedt enkel manieren aan waarop window |
1220 |
Managers hun werk kunnen doen. |
managers hun werk kunnen doen. |
1221 |
|
|
1222 |
Er bestaan dan ook verscheidene window managers die verschillen in de |
Er bestaan dan ook verscheidene window managers die verschillen in de |
1223 |
manier waarop we de interactie met de vensters uitvoeren, de decoratie, |
manier waarop we de interactie met de vensters uitvoeren, de decoratie, |
1234 |
\emph{widgets} genoemd) voor te stellen. We kunnen er alleen de |
\emph{widgets} genoemd) voor te stellen. We kunnen er alleen de |
1235 |
basisdingen mee (lijnen, cirkels, rechthoeken, \ldots tekenen en |
basisdingen mee (lijnen, cirkels, rechthoeken, \ldots tekenen en |
1236 |
opvullen). Dat heeft als gevolg dat het elke cli\"ent applicatie |
opvullen). Dat heeft als gevolg dat het elke cli\"ent applicatie |
1237 |
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 |
1238 |
gedragen. |
gedragen. |
1239 |
|
|
1240 |
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 |
1257 |
\subsection{Desktop environments} |
\subsection{Desktop environments} |
1258 |
De verscheidenheid aan keuze in het X Windows Systeem is kan zeer |
De verscheidenheid aan keuze in het X Windows Systeem is kan zeer |
1259 |
zeker als een aanwinst bekeken worden. We zitten niet opgescheept met |
zeker als een aanwinst bekeken worden. We zitten niet opgescheept met |
1260 |
\'e\'en enkele voorgedefinieerde Windows Manager die niet werkt zoals |
\'e\'en enkele voorgedefinieerde window manager die niet werkt zoals |
1261 |
we het willen (we kunnen immers altijd een andere kiezen of |
we het willen (we kunnen immers altijd een andere kiezen of |
1262 |
schrijven). Bovendien kunnen verschillende applicaties er verschillend |
schrijven). Bovendien kunnen verschillende applicaties er verschillend |
1263 |
uitzien en mogen ze de interactie met de gebruiker regelen zoals het |
uitzien en mogen ze de interactie met de gebruiker regelen zoals het |
1346 |
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 |
1347 |
filesysteem ge\"integreerd: het \begrip{Extended File System}. Dit |
filesysteem ge\"integreerd: het \begrip{Extended File System}. Dit |
1348 |
nieuwe filesystem werkte de twee beperkingen van het Minix filesystem |
nieuwe filesystem werkte de twee beperkingen van het Minix filesystem |
1349 |
weg, zijn maximale grootte was $2$ giga bytes en de maximale |
weg, zijn maximale grootte was $2$ gigabytes en de maximale |
1350 |
bestandsnaamlengte was $255$ karakters. Het was een grote verbetering |
bestandsnaamlengte was $255$ karakters. Het was een grote verbetering |
1351 |
ten opzichte van het Minix filesystem maar sommige problemen bleven. |
ten opzichte van het Minix filesystem maar sommige problemen bleven. |
1352 |
Er was geen ondersteuning voor verschillende toegangen, inode |
Er was geen ondersteuning voor verschillende toegangen, inode |
1380 |
concepten afgeleid van het \unix\ besturingssysteem. Bestanden worden |
concepten afgeleid van het \unix\ besturingssysteem. Bestanden worden |
1381 |
voorgesteld door \begrip{inodes}, directories zijn simpele bestanden |
voorgesteld door \begrip{inodes}, directories zijn simpele bestanden |
1382 |
die een lijst van records bevatten en toegang tot apparaten kan |
die een lijst van records bevatten en toegang tot apparaten kan |
1383 |
verkregen worden door een I/0 aanvraag te doen aan speciale bestanden. |
verkregen worden door een I/O aanvraag te doen aan speciale bestanden. |
1384 |
|
|
1385 |
\subsection{Inodes} |
\subsection{Inodes} |
1386 |
|
|
1389 |
bestandstype, toegansrechten, eigenaars, timestamps, grootte, pointers |
bestandstype, toegansrechten, eigenaars, timestamps, grootte, pointers |
1390 |
naar datablokken. De adressen van een gealloceerde datablokken aan |
naar datablokken. De adressen van een gealloceerde datablokken aan |
1391 |
een bestand worden opgeslaan in zijn inode. Wanneer een gebruiker een |
een bestand worden opgeslaan in zijn inode. Wanneer een gebruiker een |
1392 |
I/0 operatie aanvraagt op dat bestand, converteert de kernelcode de |
I/O operatie aanvraagt op dat bestand, converteert de kernelcode de |
1393 |
huidige offset naar een bloknummer, gebruikt dat nummer als een index |
huidige offset naar een bloknummer, gebruikt dat nummer als een index |
1394 |
in het blokadres en leest of schrijft de fysieke blok. |
in het blokadres en leest of schrijft de fysieke blok. |
1395 |
Figuur~\ref{blokken} representeert de structuur van een inode. |
Figuur~\ref{blokken} representeert de structuur van een inode. |
1413 |
directories tot het het overeenkomstige inode nummer vindt. Nadat de |
directories tot het het overeenkomstige inode nummer vindt. Nadat de |
1414 |
naam naar zijn inode nummer geconverteerd werd wordt de inode in het |
naam naar zijn inode nummer geconverteerd werd wordt de inode in het |
1415 |
geheugen geladen en gebruikt door het proces. Figuur~\ref{directory} |
geheugen geladen en gebruikt door het proces. Figuur~\ref{directory} |
1416 |
stelt een directorie voor. |
stelt een directory voor. |
1417 |
|
|
1418 |
\begin{figure} |
\begin{figure} |
1419 |
\includegraphics{inleiding/directory.png} |
\includegraphics{inleiding/directory.png} |