Filesysteem

Een filesysteem is een opslagstructuur voor bestanden (files). In deze opslagstructuur worden zowel de filenamen als de inhoud van de files vastgelegd. Voor het vinden van de inhoud van een gegeven file en zaken zoals toegangsrechten worden extra gegevens bijgehouden. Bij unix-achtige operating systems zoals Linux is een filesysteem als een boomstructuur georganiseerd. De basiscomponenten zijn de directory (ook wel map of folder genoemd) en de file (bestand). Een directory bevat namen van bestanden en eventueel andere directories (subdirectories). In ieder geval bevat een directory een verwijzing naar zichzelf met als naam een enkele punt en een verwijzing naar de parentdirectory onder de naam punt-punt. De parentdirectory is de directory waar de huidige directory een subdirectory van is. Alleen de root-directory is de punt-punt verwijzing hetzelfde als naar punt, met ander woorden als je in de rootdirectory een commando cd .. uitvoert blijf je waar je bent.

Elke file of directory heeft een zogenoemde inode. Inodes bevatten de administratieve gegevens van files of directories. Zo is in de inode van een file onder meer te vinden wie de eigenaar is (UID ofwel user-id) en wat de permissies zijn, welke tijden (creatie, access etc.) met de file te maken hebben en welke diskblokken de feitelijke data van de file bevatten. Inodes zijn georganiseerd in een tabel (array) en worden ook op de disk in het filesysteem zelf opgeslagen. Inodes zijn te vinden met een indexnummer (inodenummer) in deze tabel.

Hoe zit zo'n filesysteem nu in elkaar? De directory geeft informatie over de filenaam en het bijbehorende inodenummer. Het is dus feitelijk een verzameling van naam-inodenummer paren. gegeven de naam vinden we de inode en met de inode weer alle gegevens die we nodig hebben. Merk op dat de filenaam dus niet in de inode zelf staat. Ook een directory heeft een inode en in de inode is weer te zien dat het om een directory gaat. met ls -i is het inodenummer van een bestand of directory te vinden. Een file wordt dus helemaal gekarakteriseerd door een inode. Als we in een ander directory een nieuwe naam aan dezelfde inode zouden koppelen dan hebben we een zogenoemde link gemaakt (om precies te zijn een hard-link). Er zijn dan twee referenties naar de inode. Met nog meer links kunnen we dit aantal nog hoger maken. Een file wordt pas echt weggegooid, dat wil zeggen, de inode zelf wordt vrijgegeven en de diskblokken die de file tot dan toe in gebruik had worden weer vrijgegeven, als er geen referentie meer naar de inode van de file is. Een directory heeft altijd minimaal twee referenties, namelijk de naam van de directory zoals die in de parent directory aangegeven is en de verwijzing punt in de directory zelf. Als een directory veel subdirectories heeft, dan zal het aantal referenties hoog zijn. Elke subdirectory heeft namelijk een verwijzing naar de parantdirectory (punt-punt).


Aangemaakt 2 januari 2004
Laatst bijgewerkt januari 2016