1303 |
\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 |
1304 |
a filesystem, but you can't tuna fish.}{from the tunefs(8) man page} |
a filesystem, but you can't tuna fish.}{from the tunefs(8) man page} |
1305 |
|
|
|
|
|
|
|
|
1306 |
\begin{urlbox} |
\begin{urlbox} |
1307 |
\url{http://www.xenotime.net/linux/linux-fs.html}\\ |
\url{http://www.xenotime.net/linux/linux-fs.html}\\ |
1308 |
\url{http://e2fsprogs.sourceforge.net/ext2intro.html}\\ |
\url{http://e2fsprogs.sourceforge.net/ext2intro.html}\\ |
1312 |
\url{http://nfs.sourceforge.net/}. |
\url{http://nfs.sourceforge.net/}. |
1313 |
\end{urlbox} |
\end{urlbox} |
1314 |
|
|
1315 |
Zoals we reeds gezien hebben in hoofdstuk~\ref{ontstaan} is \linux\ |
Zoals we reeds gezien hebben in hoofdstuk \ref{ontstaan} is \linux\ |
1316 |
ontstaan uit het Minix besturingssysteem waardoor de eerste versies |
ontstaan uit het Minix besturingssysteem waardoor de eerste versies |
1317 |
van \linux\ alleen het Minix \begrip{filesystem} ondersteunde. Het |
van \linux\ alleen het Minix \begrip{filesystem} ondersteunde. Het |
1318 |
Minux filesystem bevatte twee tekortkomingen: blok adressen werden |
Minix filesystem bevatte twee tekortkomingen: blok adressen werden |
1319 |
opgeslaan in 16 bit integers, dus de maximale grootte van het |
opgeslaan in 16 bit integers, dus de maximale grootte van het |
1320 |
bestandssysteem was beperkt tot $2^{16}$ bits of $64$ megabyte, en een |
bestandssysteem was beperkt tot $2^{16}$ bits of $64$ megabyte, en een |
1321 |
bestandsnaam kon maximum $14$ karakters lang zijn. |
bestandsnaam kon maximum $14$ karakters lang zijn. |
1349 |
weg, zijn maximale grootte was $2$ gigabytes 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, het filesystem |
1353 |
aanpassingen en data modification timestamps. Het filesystem maakte |
maakte gebruik van gelinkte lijsten om de vrije blokken bij te houden |
1354 |
gebruik van gelinkte lijsten om de vrije blokken bij te houden en dit |
en dit zorgde voor slechte performantie: wanneer het filesystem werd |
1355 |
zorgde voor slechte performantie: wanneer het filesystem werd gebruikt |
gebruikt werden de lijsten ongesorteerd en het filesystem geraakte |
|
werden de lijsten ongesorteerd en het filesystem geraakte |
|
1356 |
gefragmenteerd. |
gefragmenteerd. |
1357 |
|
|
1358 |
Om de problemen op te lossen werden twee nieuwe filesystems |
Om de problemen op te lossen werden twee nieuwe filesystems |
1359 |
ge\"implementeerd: het Xia filesystem en het \begrip{Second Extended |
ge\"implementeerd: het Xia filesystem en het \begrip{Second Extended |
1360 |
File System}. Het Xia filesystem was voornamelijk gebaseerd op de |
File System}. Het Xia filesystem was voornamelijk gebaseerd op de |
1361 |
Minix filesystem kernel code en voegde alleen een paar verbeteringen |
Minix filesystem kernel code en voegde alleen een paar verbeteringen |
1362 |
toe ten opzichte van dit filesystem. Kort gezegd zorgde het voor |
toe ten opzichte van dit filesystem. Kort gezegd zorgde het voor |
1363 |
ondersteuning naar lange bestandsnamen toe, grotere partities en |
ondersteuning naar lange bestandsnamen toe, grotere partities. Het |
1364 |
\klad{three timestamps}. Het \begrip{Ext2fs} was gebaseerd op de |
\begrip{Ext2fs} was gebaseerd op de Extfs code met vele reorganisaties |
1365 |
Extfs code met vele reorganisaties en vele verbeteringen. Het werd |
en vele verbeteringen. Het werd ontworpen met de vooruitgang in |
1366 |
ontworpen met de vooruitgang in gedachte in bevatte ruimte voor verdere |
gedachte in bevatte ruimte voor verdere verbeteringen. We bespreken |
1367 |
verbeteringen. We bespreken het in detail in \ref{ext2fs}. |
het in detail in \ref{ext2fs}. |
1368 |
|
|
1369 |
Wanneer de twee filesystems voor het eerst werden verspreid hadden ze |
Wanneer de twee filesystems voor het eerst werden verspreid hadden ze |
1370 |
dezelfde functionaliteit. Omwille van het minimale ontwerp was het |
dezelfde functionaliteit. Omwille van het minimale ontwerp was het |
1386 |
Ieder bestand wordt voorgesteld door een structuur, een \begrip{inode} |
Ieder bestand wordt voorgesteld door een structuur, een \begrip{inode} |
1387 |
genoemd. Iedere inode bevat een beschrijving van dat bestand: |
genoemd. Iedere inode bevat een beschrijving van dat bestand: |
1388 |
bestandstype, toegansrechten, eigenaars, timestamps, grootte, pointers |
bestandstype, toegansrechten, eigenaars, timestamps, grootte, pointers |
1389 |
naar datablokken. De adressen van een gealloceerde datablokken aan |
naar datablokken. De adressen van gealloceerde datablokken aan |
1390 |
een bestand worden opgeslaan in zijn inode. Wanneer een gebruiker een |
een bestand worden opgeslaan in zijn inode. Wanneer een gebruiker een |
1391 |
I/O operatie aanvraagt op dat bestand, converteert de kernelcode de |
I/O operatie aanvraagt op dat bestand, converteert de kernelcode de |
1392 |
huidige offset naar een bloknummer, gebruikt dat nummer als een index |
huidige offset naar een bloknummer, gebruikt dat nummer als een index |
1393 |
in het blokadres en leest of schrijft de fysieke blok. |
in het blokadres en leest of schrijft de fysieke blok. |
1394 |
Figuur~\ref{blokken} representeert de structuur van een inode. |
Figuur \ref{blokken} representeert de structuur van een inode. |
1395 |
|
|
1396 |
\begin{figure} |
\begin{figure} |
1397 |
\includegraphics{inleiding/inode.png} |
\includegraphics{inleiding/inode.png} |
1411 |
Wanneer een proces een padnaam gebruikt zoekt de kernel in de |
Wanneer een proces een padnaam gebruikt zoekt de kernel in de |
1412 |
directories tot het het overeenkomstige inode nummer vindt. Nadat de |
directories tot het het overeenkomstige inode nummer vindt. Nadat de |
1413 |
naam naar zijn inode nummer geconverteerd werd wordt de inode in het |
naam naar zijn inode nummer geconverteerd werd wordt de inode in het |
1414 |
geheugen geladen en gebruikt door het proces. Figuur~\ref{directory} |
geheugen geladen en gebruikt door het proces. Figuur \ref{directory} |
1415 |
stelt een directory voor. |
stelt een directory voor. |
1416 |
|
|
1417 |
\begin{figure} |
\begin{figure} |
1435 |
cross-filesystem hard links te construeren. Alsook kunnen hard links |
cross-filesystem hard links te construeren. Alsook kunnen hard links |
1436 |
alleen verwijzen naar bestanden. |
alleen verwijzen naar bestanden. |
1437 |
|
|
1438 |
Er bestaat nog een ander soort link. \begrip{Symbolische links} zijn |
Er bestaat nog een ander soort links. \begrip{Symbolische links} zijn |
1439 |
bestanden die een ander bestand bevatten. Wanneer de kernel een |
bestanden die een ander bestand bevatten. Wanneer de kernel een |
1440 |
symbolische link tegenkomt tijdens een padnaam naar inode conversie, |
symbolische link tegenkomt tijdens een padnaam naar inode conversie, |
1441 |
vervangt het de naam van de link door zijn inhoud. Omdat een |
vervangt het de naam van de link door zijn inhoud. Omdat een |
1450 |
In de \unix-achtige besturingssystemen wordt toegang tot apparaten |
In de \unix-achtige besturingssystemen wordt toegang tot apparaten |
1451 |
bekomen via speciale bestanden. Een device speciaal bestand neemt |
bekomen via speciale bestanden. Een device speciaal bestand neemt |
1452 |
geen plaats in op de harde schijf, het is alleen een toegangspunt tot |
geen plaats in op de harde schijf, het is alleen een toegangspunt tot |
1453 |
een divice driver. |
een device driver. |
1454 |
|
|
1455 |
Er bestaan twee soorten types speciale bestanden: karakter en blok |
Er bestaan twee soorten types speciale bestanden: karakter en blok |
1456 |
speciale speciale bestanden. De eerste laat I/O bewerkingen toe in |
speciale speciale bestanden. De eerste laat I/O bewerkingen toe in |
1544 |
|
|
1545 |
\section{Corrupte filesystems} |
\section{Corrupte filesystems} |
1546 |
|
|
1547 |
We geven een voorbeeld hoe dit kan gebeuren: Veronderstel dat we een |
We geven een voorbeeld hoe dit kan gebeuren: veronderstel dat we een |
1548 |
tekstdocument hebben, dat we aan het bewerken zijn in een programma. |
tekstdocument hebben, dat we aan het bewerken zijn in een programma. |
1549 |
Als onze machine crasht voordat we het bestand opgeslaan hebben dan |
Als onze machine crasht voordat we het bestand opgeslaan hebben dan |
1550 |
zijn we al onze veranderingen kwijt. Als de machine crasht nadat we |
zijn we al onze veranderingen kwijt. Als de machine crasht nadat we |
1599 |
grotere servers en nood aan kleinere downtime is er een nood een |
grotere servers en nood aan kleinere downtime is er een nood een |
1600 |
ingewikkeldere filesystems die een betere job doen bij het beschermen |
ingewikkeldere filesystems die een betere job doen bij het beschermen |
1601 |
van onze data en metadate. Het \begrip{journaled filesystem} dat |
van onze data en metadate. Het \begrip{journaled filesystem} dat |
1602 |
beschikbaar heeft de oplossing hiervoor. |
beschikbaar is heeft de oplossing hiervoor. |
1603 |
|
|
1604 |
Er zijn verschillende journaled filesystems (zie \ref{reiserfs} en |
Er zijn verschillende journaled filesystems (zie \ref{reiserfs} en |
1605 |
\ref{ext3}) maar ze zijn allemaal gebaseerd op hetzelfde principe. |
\ref{ext3}) maar ze zijn allemaal gebaseerd op hetzelfde principe. |
1664 |
Voor verdere informatie over ext3 verwijzen we naar |
Voor verdere informatie over ext3 verwijzen we naar |
1665 |
\url{http://www.linuxplanet.com/linuxplanet/print/4136/} en |
\url{http://www.linuxplanet.com/linuxplanet/print/4136/} en |
1666 |
\url{http://www.zip.com.au/~akpm/linux/ext3/}. |
\url{http://www.zip.com.au/~akpm/linux/ext3/}. |
1667 |
|
|
1668 |
\section{NFS} |
\section{NFS} |
1669 |
Het \begrip{Network File System} (\begrip{NFS}) werd ontworpen om |
Het \begrip{Network File System} (\begrip{NFS}) werd ontworpen om |
1670 |
machines toe te laten een partitie op een remote machine te gebruiken |
machines toe te laten een partitie op een remote machine te gebruiken |
1738 |
\item[/boot] In de \begrip{/boot} directory staan alle gegevens die |
\item[/boot] In de \begrip{/boot} directory staan alle gegevens die |
1739 |
belangrijk zijn voor het starten van de \linux\ kernel. Hier vinden |
belangrijk zijn voor het starten van de \linux\ kernel. Hier vinden |
1740 |
we bijvoorbeeld de kernel-images terug die kunnen geboot worden. |
we bijvoorbeeld de kernel-images terug die kunnen geboot worden. |
1741 |
|
|
1742 |
\item[/dev] De \begrip{/dev} directory bevat informatie over de |
\item[/dev] De \begrip{/dev} directory bevat informatie over de |
1743 |
hardware van de computer. De files die we hier vinden zijn eigenlijk |
hardware van de computer. De files die we hier vinden zijn eigenlijk |
1744 |
geen echte files, maar worden aangemaakt wanneer het systeem |
geen echte files, maar worden aangemaakt wanneer het systeem |
1745 |
opstart. Wanneer we bijvoorbeeld een stukje willen inlezen van de |
opstart. Wanneer we bijvoorbeeld een stukje willen inlezen van de |
1746 |
floppy-drive, kunnen we hier uit de file ``fd0'' lezen en krijgen we |
floppy-drive, kunnen we hier uit de file ``fd0'' lezen en krijgen we |
1747 |
de (binaire) inhoud van de diskette te zien. |
de (binaire) inhoud van de diskette te zien. Hier bevinden zich de |
1748 |
|
device special files. |
1749 |
|
|
1750 |
\item[/etc] \linux\ slaat in \begrip{/etc} de configuratiebestanden op |
\item[/etc] \linux\ slaat in \begrip{/etc} de configuratiebestanden op |
1751 |
die systemwide gelden. Dit geldt zowel voor configuratiefiles van |
die systemwide gelden. Dit geldt zowel voor configuratiefiles van |
2010 |
De Emacs homepage (\url{http://www.gnu.org/software/emacs/}) bevat de |
De Emacs homepage (\url{http://www.gnu.org/software/emacs/}) bevat de |
2011 |
Emacs handleiding (\url{http://www.gnu.org/software/emacs/#Manuals}). |
Emacs handleiding (\url{http://www.gnu.org/software/emacs/#Manuals}). |
2012 |
|
|
|
%% tot hier overlezen |
|
|
|
|
2013 |
\chapter{Gebruik van een \gl\ systeem: basis} |
\chapter{Gebruik van een \gl\ systeem: basis} |
2014 |
\label{basiscommandos} |
\label{basiscommandos} |
2015 |
|
|