Filesystem Hierarchy Standard

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken
De opmaak van dit artikel is nog niet in overeenstemming met de conventies van Wikipedia. Mogelijk is ook de spelling of het taalgebruik niet in orde. Men wordt uitgenodigd deze pagina aan te passen.
Opgegeven reden: zeer technisch taalgebruik (z. overleg)

De Filesystem Hierarchy Standard of 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 Linuxdistributies gebruikt worden terug te vinden in de Filesystem Hierarchy Standard.

Voor het beheer van software op een UNIX-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.

Geschiedenis[bewerken]

De 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, die tot op heden, medio 2013, als standaard geldt.
  • De FHS v3.0 versie wordt ontwikkeld door The Linux Foundation.

Eigenschappen van bestanden[bewerken]

De 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[bewerken]

Kleurcode Eigenschappen
Statisch
De inhoud van een statische map of directory wordt meestal tijdens de installatie van het systeem in de directory geplaatst. Doorgaans kan de inhoud van een statische directory alleen door de systeembeheerder veranderd worden tijdens het installeren, updaten of upgraden van software.
Variabel
Een variabele map of directory is bedoeld voor de opslag van tijdelijke en variabele gegevens en bestanden. De directory's voor variabele bestanden hebben meestal de naam var of tmp.
Om een systeem te optimaliseren worden voor variabele directory's soms aparte, snel toegankelijke partities op een harde schijf aangemaakt. Tijdens het formatteren kunnen de cilinders op een harde schijf die het snelst toegankelijk zijn voor deze variabele directory's gereserveerd worden.

Essentieel vs. optioneel[bewerken]

Kleurcode Eigenschappen
Essentieel
In deze statische directory's bevinden zich essentiële onderdelen van het systeem die onder andere nodig zijn tijdens het opstarten en het werken in single user mode.
Optioneel
Optionele directory's hoeven niet aanwezig te zijn in een bestandssysteem dat aan de FSH-standaard voldoet. Deze mappen zijn binnen de FHS gedefinieerd om hun locaties binnen het bestandssysteem te reserveren en hun namen vast te leggen. De inhoud van een optionele directory kan zowel statisch als variabel zijn.

Bestanden delen[bewerken]

In 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
/usr/share/man
/opt
/boot
/etc
Variabel
/var/mail
/var/spool/news
/var/run
/var/lock

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[bewerken]

Behalve 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[bewerken]

De 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.

/[bewerken]

De slash, /, geeft de rootdirectory van het bestandssysteem op de host aan.

Directory Beschrijving, eigenschappen en eisen
/
Dit is de root directory voor het hele bestandssysteem.
  • Door gebruikers mogen geen directory's of bestanden in de root-directory aangemaakt worden.
/bin
Essentiële command-line binaries die door alle gebruikers en in single user mode gebruikt kunnen worden, zoals mount, cat, ls en cp.
  • Er mogen geen subdirectory's in /bin voorkomen.
  • De (harde of symbolische link naar de) Bourne-shell sh moet in de /bin-directory staan.
/boot
Bestanden voor de bootloader en het opstarten van het systeem, zoals gegevensbestanden voor GRUB of LILO en init.
  • De kernels moeten in / of in /boot staan.
/dev
Device files voor gegevensoverdracht via randapparatuur, zoals toetsenborden (tty), harde schijven (hda of sda) en de lege "vacuüm-" en null-devices /dev/null en /dev/zero.
  • In /dev moet (een link naar) een programma MAKEDEV staan waarmee device files aangemaakt kunnen worden.
/etc
Host-specifieke configuratiebestanden voor het hele systeem.
  • Onder de /etc-hiërarchie mogen geen binaries voorkomen.
  • Over het algemeen worden in /etc veel kleine configuratiebestanden opgeslagen.
/etc/opt
Bevat directory's met configuratiebestanden voor de applicaties in /opt.
/etc/sgml
Configuratiebestanden voor SGML.
/etc/X11
Configuratiebestanden voor het X Window System, versie 11.
  • In deze directory moet een Xconfig-, een XF86Config- of een Xmodmap-file staan.
  • In subdirectory's kunnen configuratiebestanden voor onder meer xinit, xdm en windowmanagers staan.
/etc/xml
Configuratiebestanden voor XML.
/home
Directory met daarin de home directory's van de gebruikers, waarin bestanden en persoonlijke configuratiebestanden opgeslagen worden.
/lib
Libraries met objectcode voor kernel-modules en drivers en de binaries in /bin/ en /sbin/.
  • Essentiële objectcode om het systeem te kunnen opstarten en programma's te laden en uit te voeren.
  • De (links naar de) libc.so-libraries en de linker/loader ld.so moeten in deze directory staan.
  • De (link naar de) C-preprocessor moet de naam /lib/cpp hebben.
/lib<qual>
Libraries met objectcode voor een specifieke computerarchitectuur zoals lib32 of lib64 voor 32- en 64-bits processoren.
/media
Mount points voor verwisselbare gegevensdragers zoals CD-ROMs, USB-sticks, etc.
/mnt
Tijdelijk mount point voor een bestandssysteem.
/opt
Directory's voor optionele add-ons en andere software-packages.
  • De subdirectory's in /opt moeten de naam van een softwarepakket (package) of een leverancier (provider) dragen, zoals /opt/<package> en /opt/<provider>. De provider moet een LANANA registratie hebben.
  • De directory's met de namen /opt/bin, /opt/doc, /opt/include, /opt/info, /opt/lib en /opt/man zijn gereserveerd voor systeembeheer.
  • Voor de specifieke bestanden voor add-ons kunnen subdirectory's als /opt/<package>/bin en /opt/<package>/man aangemaakt worden.
  • Configuratiebestanden en variabele bestanden moeten in hiërachieën als /etc/opt/<package> of /var/opt/<package> ondergebracht worden.
/proc
Een virtueel of pseudo-filesysteem dat dient als interface voor de uitwisseling van gegevens tussen de kernel en applicaties.
  • Via /proc kunnen applicaties datastructuren met de kernel uitgewisselen met informatie over onder meer de toestand van processen en het gebruik van het geheugen.
/root
Home directory van de root user.
/sbin
Essentiële systeem binaries voor root-only-systeembeheer, configuratie, booting en initialisatie, zoals init, ip en fdisk.
  • In /sbin moet (een link naar) shutdown staan.
/srv
Site-specifieke gegevens die door services op het systeem, zoals ftp en cvs, geleverd worden.
/tmp
Tijdelijke files (zie ook /var/tmp). Deze gegevens blijven vaak bestaan tussen reboots.
/usr
Root van de secundaire hiërarchie voor programma's en read-only gegevens van gebruikers.
  • Bevat de meeste (multi-)user utilities en applicaties.
/var
Root van de secundaire /var hiërarchie met bestanden voor de opslag van gegevens die frequent veranderen tijdens een sessie, zoals log- en spool-files en tijdelijke e-mail-files.

/usr[bewerken]

De /usr-directory is de op één na grootste directory in het bestandssysteem. 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
Root van de secundaire /usr-hiërarchie.
Om compatibiliteit met oudere configuraties te verwezenlijken bevat /usr vaak de volgende symbolische links:
/usr/spool -> /var/spool
/usr/tmp -> /var/tmp
/usr/spool/locks -> /var/lock
/usr/bin
Binaries en commando's die door alle gebruikers gedeeld worden, zoals de python-, perl- en tcl-interpreters.
/usr/games
Spelletjes en educatieve software.
/usr/include
Standaard header files voor algemene toepassingen.
/usr/lib
Libraries met objectcode voor programmeren, gebruikerssoftware en binaries in /usr/bin/ en /usr/sbin/.
/usr/lib<qual>
Libraries met objectcode voor een specifieke computerarchitectuur zoals lib32 of lib64 voor 32- en 64-bits processoren.
/usr/local
De tertiaire /usr/local hiërarchie voor lokale gegevens, specifiek voor deze host.
  • De bestanden in de /usr/local-directory zijn bedoeld voor gebruik op de lokale host zodat /usr/local niet op een netwerk gemount dient te worden.
/usr/sbin
Niet-essentiële systeem binaries, zoals daemons voor verschillende network-services.
/usr/share
De tertiaire /usr/share hiërarchie met architectuur-onafhankelijke deelbare bestanden, zoals documentatiebestanden.
/usr/src
Source code, zoals de kernel source code met header files.
/usr/X11R6
X Window System, Version 11, Release 6.
Als /usr/X11R6 bestaat dan moeten de volgende links aangemaakt worden:
/usr/bin/X11 -> /usr/X11R6/bin
/usr/lib/X11 -> /usr/X11R6/lib/X11
/usr/include/X11 -> /usr/X11R6/include/X11

/usr/local[bewerken]

Tertiaire hiërarchie voor lokale, niet-deelbare gegevens en bestanden, specifiek voor deze host.

Directory Beschrijving, eigenschappen en eisen
/usr/local
De /usr/local/-directory is bedoeld voor gebruik op de lokale host zodat ze niet op een netwerk gemount dient te worden.
/usr/local/bin
Lokale binaries
/usr/local/etc
Host-specifieke systeem-configuratiebestanden voor lokale binaries.
Mag als link: /usr/local/etc -> /etc/local
/usr/local/games
Lokale binaries van spelletjes en educatieve software
/usr/local/include
Lokale headers
/usr/local/lib
Binaire bibliotheek.
/usr/local/lib<qual>
Moet geïmplementeerd worden als /lib<qual> of /usr/lib<qual> bestaat.
/usr/local/man
Lokale manual pages
/usr/local/sbin
Lokale systeem binaries
/usr/local/share
Lokaal gedeelde bestanden
/usr/local/src
Broncode

/usr/share[bewerken]

De tertiaire hiërarchie voor deelbare gegevens en bestanden die toegankelijk zijn voor verschillende hosts op een netwerk.

Directory Beschrijving, eigenschappen en eisen
/usr/share
Architectuur-onafhankelijke gedeelde gegevensbestanden zoals documentatie.
/usr/share/dict
Woordenlijsten.
/usr/share/doc
Documentatie.
/usr/share/games
Statische gegevens voor spelletjes.
/usr/share/info
GNU Info systeem-directory's.
/usr/share/locale
Locale-informatie.
/usr/share/man
Manual man-pagina's.
/usr/share/misc
Diversen.
/usr/share/nls
Catalogi voor ondersteuning in de taal van de gebruiker.
/usr/share/sgml
Gedeelde SGML-bestanden.
/usr/share/terminfo
Directory's voor de terminfo database.
/usr/share/tmac
troff-macros die niet bij groff geleverd worden.
/usr/share/xml
Gedeelde XML-bestanden.
/usr/share/zoneinfo
Tijdzone-informatie.

/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
Root van de secundaire /var-hiërarchie.
  • Gebruikersapplicaties mogen geen bestanden in de root van de /var-directory aanmaken.
/var/account
De huidige actieve logs met process-gegevens.
/var/cache
Ruimte voor opslag van cache gegevens in software. De gegevens worden lokaal gegenereerd tijdens tijdrovende I/O-operaties of berekeningen.
/var/crash
Ruimte voor opslag van crash-dumpgegevens.
/var/games
Ruimte voor opslag van tijdelijke gegeven van spelletjes.
/var/lib
Hiërarchie met persistente informatie over de toestand van het systeem zoals:
  • gegevens die tijdens het uitvoering van programma's veranderen;
  • databases, packaging system-gegevens, etc.
/var/lock
Lock files. Bestanden die bijhouden welke middelen en files in gebruik zijn.
/var/log
Verschillende log-files.
/var/mail
Mailbox van gebruikers.
/var/opt
Variabele gegevens van de pakketten in /opt moeten worden opgeslagen in /var/opt/<subdir>, waar <subdir> de naam van de subdirectory in /opt is waar de statische gegevens van een add-on softwarepakket wordt opgeslagen
/var/run
Informatie over het systeem sinds de laatste boot, zoals gegevens over momenteel aangemelde gebruikers en actieve daemons.
/var/spool
Spool-taken die op verwerking wachten, zoals een print-queue en ongelezen mail.
/var/tmp
Tijdelijke bestanden die bewaard moeten blijven tussen opeenvolgende reboots.
/var/yp
Network Information Service (NIS) database.

Zie ook[bewerken]

Referenties[bewerken]

  1. HIER(7) FreeBSD Miscellaneous Information Manual
  2. FILESYSTEM(7) FreeBSD Man Pages library
  3. FSSTND v1.0. Ibiblio.org Geraadpleegd op 2013-05-22
  4. FSSTND v1.1. Ibiblio.org Geraadpleegd op 2013-05-22
  5. FSSTND v1.2. Ibiblio.org Geraadpleegd op 2013-05-22
  6. FHS v2.0
  7. Quinlan, Daniel. Filesystem Hierarchy Standard — Version 2.1, Filesystem Hierarchy Standard Group. Acadia Linux Tutorials Geraadpleegd op 22 mei 2013
  8. FHS v2.2 op pathname.com
  9. a b FSH-2.3-specificaties

Externe links[bewerken]