Filesystem Hierarchy Standard
De Filesystem Hierarchy Standard (FHS) definieert een open standaard voor de directory-structuur voor UNIX-achtige besturingssystemen. De standaardisatie van de directory-structuur is onder meer belangrijk voor software-ontwikkeling en pakketbeheer op platforms met een Unix-achtig bestandssysteem. Daarom is de directory-structuur die door BSD en Linux gebruikt wordt terug te vinden in de Filesystem Hierarchy Standard.
Voor het systeembeheer op een Unixachtig-platform, zoals een pc met een Linux-desktop, is inzicht in de basisprincipes en de opbouw van de FHS vereist. De FHS maakt deel uit van de Linux Standard Base en wordt ontwikkeld op basis van de IEEE 1003.n POSIX-norm. De FHS wordt onderhouden door The Linux Foundation.
Inleiding
bewerkenHoe de 'schijfinhoud', de inhoud van een computer-systeem te zien is voor de gebruiker, is voor "MS-DOS-systemen" en "Unixachtige systemen" zeer verschillend. Op een Windows computer ziet men stationsletters (drive letters), C:\, D:\ enzovoorts met daarachter padnamen (path names) zoals C:\WINDOWS\SYSTEM32\ eindigend op de naam van een bestand, bijvoorbeeld NOTEPAD.EXE. Als een schijfeenheid zoals een harde schijf of USB-stick wordt toegevoegd, verschijnt een nieuwe stationsletter.
Op een 'Linux-achtig' systeem is een vaststaand systeem te zien. De top van de 'boom', de tophiërarchie is altijd een schuine streep (/) zonder toevoeging, ongeacht hoeveel schijven binnen de 'boom' vallen. De vaststaande directory's zijn /bin, /dev, /home, /lib enzovoorts, op alle POSIX-systemen is deze structuur terug te vinden. Deze structuur dient praktische doelen, elke directory heeft een functie. De vastgelegde afspraken over deze voorstelling van directory's en bestanden is waar FHS over gaat.
Geschiedenis
bewerkenDe Filesystem Hierarchy Standard is ontwikkeld op initiatief van de Filesystem Hierarchy Standard Group. Voordat de eerste versies van de Filesystem Hierarchy Standard opgesteld werden, bestonden al een aantal conventies over de indeling van Unix-bestandssystemen.[1][2] Voor de komst van package managers werd de installatie en het beheer van software op Unix-platforms vaak handmatig en op ad-hocbasis uitgevoerd.
- Op 14 februari 1994 werd FSSTND v1.0[3] gepubliceerd, waarna in ruim een jaar de 1.1[4] en 1.2[5] versies volgden.
- Op 26 oktober 1997 werd de FHS v2.0[6] gepubliceerd.
- Op 4 december 2000, werd FHS v2.1[7] gepubliceerd, ruim een half jaar later gevolgd door de 2.2-versie.[8]
- Op 29 januari 2004, werd de FHS v2.3[9] gepubliceerd.
- Op 3 juni 2015 werd de FHS v3.0 gepubliceerd.[10]
Eigenschappen van bestanden
bewerkenDe bestanden in het bestandssysteem worden afhankelijk van hun functie en eigenschappen binnen een overzichtelijk systeem ingedeeld. In de tabellen worden een paar eigenschappen van de directory's en bestanden met een kleurcode aangegeven.
Statisch vs. variabel
bewerkenKleurcode | Eigenschappen |
---|---|
|
|
|
|
Essentieel vs. optioneel
bewerkenKleurcode | Eigenschappen |
---|---|
|
|
|
|
Bestanden delen
bewerkenIn de Filesystem Hierarchy Standard staan alle bestanden en directory's (mappen) onder de root directory "/". Dat is zelfs het geval als de bestanden zich op een andere fysieke locatie bevinden (een andere computer), bijvoorbeeld bij een netwerkbestandssysteem. Bestanden kunnen via netwerken met andere hosts gedeeld worden als ze aan een aantal voorwaarden voldoen. Architectuur-onafhankelijke bestanden zijn meestal deelbaar tussen verschillende hosts terwijl configuratiebestanden over het algemeen niet deelbaar zijn. In onderstaande tabel worden een paar voorbeelden gegeven.
Deelbaar | Niet deelbaar | |
---|---|---|
Statisch |
|
|
Variabel |
|
|
Er is geen algemene regel waarmee in alle gevallen een onderscheid gemaakt kan worden tussen deelbare en niet-deelbare bestanden. Soms kan architectuur-afhankelijkheid een beperking zijn. Daardoor kan een bestand deelbaar zijn met een host met dezelfde architectuur terwijl dat bestand niet-deelbaar is met een host met een andere architectuur.
Secundaire en tertiaire hiërarchieën
bewerkenBehalve de primaire hiërarchie aan de basis van het bestandssysteem komen in de FHS secundaire en tertiaire hiërarchieën voor. De secundaire en tertiaire hiërarchieën zijn meestal afspiegelingen van de primaire hiërarchie. De secundaire en tertiaire hiërarchieën bevatten bestandssystemen met een speciale functie in relatie tot de bestanden in de primaire hiërarchie. Secundaire en tertiaire hiërarchieën zijn onder andere te vinden in /opt
, /usr
, /usr/local
, /var
en /var/opt
.
Bestandssysteem
bewerkenDe onderstaande omschrijvingen gelden voor de FHS-2.3-specificatie[9] die door The Linux Foundation gepubliceerd is. De omschrijvingen in onderstaande tabellen hoeven niet juist te zijn voor andere versies of voor afwijkende implementaties van de FHS.
/
bewerkenDe slash, /, geeft de rootdirectory van het bestandssysteem op de host aan.
Directory | Beschrijving, eigenschappen en eisen |
---|---|
/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/usr
bewerkenDe /usr
-directory is de op een na grootste directory in het bestandssysteem. De afkorting staat voor ""unix system resources"" en heeft niets te maken met ""user"". Het is een gedeelde directory voor alle gebruikers op het systeem en het bevat alleen read-only-gegevens. Dat houdt in dat de /usr
-directory gedeeld kan worden met verschillende hosts met een FHS-compliant bestandssysteem. Host-specifieke gegevens of veranderlijke gegevens dienen elders opgeslagen te worden.
Directory | Beschrijving, eigenschappen en eisen |
---|---|
/usr
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/usr/local
bewerkenTertiaire hiërarchie voor lokale, niet-deelbare gegevens en bestanden, specifiek voor deze host.
Directory | Beschrijving, eigenschappen en eisen |
---|---|
/usr/local
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/usr/share
bewerkenDe tertiaire hiërarchie voor deelbare gegevens en bestanden die toegankelijk zijn voor verschillende hosts op een netwerk.
Directory | Beschrijving, eigenschappen en eisen |
---|---|
/usr/share
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/var
bewerken/var
bevat variabele gegevensbestanden. Dit omvat onder meer spool directory's en logbestanden en tijdelijke bestanden.
- Sommige delen van
/var
zijn niet-deelbaar tussen verschillende hosts, zoals/var/log
,/var/lock
en/var/run
. - Andere bestanden kunnen wel worden gedeeld, met name de bestanden in
/var/mail
,/var/cache/man
,/var/cache/fonts
en/var/spool/news
.
Directory | Beschrijving, eigenschappen en eisen |
---|---|
/var
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Zie ook
bewerkenReferenties
bewerken- ↑ HIER(7) FreeBSD Miscellaneous Information Manual
- ↑ FILESYSTEM(7) FreeBSD Man Pages library
- ↑ FSSTND v1.0. Ibiblio.org. Geraadpleegd op 22 mei 2013.
- ↑ FSSTND v1.1. Ibiblio.org. Geraadpleegd op 22 mei 2013.
- ↑ FSSTND v1.2. Ibiblio.org. Geraadpleegd op 22 mei 2013.
- ↑ FHS v2.0. Gearchiveerd op 8 april 2023.
- ↑ Quinlan, Daniel, Filesystem Hierarchy Standard — Version 2.1, Filesystem Hierarchy Standard Group. Acadia Linux Tutorials. Gearchiveerd op 27 maart 2012. Geraadpleegd op 22 mei 2013.
- ↑ FHS v2.2 op pathname.com. Gearchiveerd op 2 juli 2023.
- ↑ a b FHS-2.3-specificaties. Gearchiveerd op 25 januari 2022.
- ↑ FHS Referenced Specifications. refspecs.linuxfoundation.org. Gearchiveerd op 20 september 2020. Geraadpleegd op 14 augustus 2020.