Filesystem Hierarchy Standard (« norme de la hiérarchie des systèmes de fichiers », abrégé en FHS) définit l'arborescence et le contenu des principaux répertoires des systèmes de fichiers des systèmes d'exploitation GNU/Linux et de la plupart des systèmes Unix.
La version actuelle est la 2.3, publiée en janvier 2004.
La standardisation d'une hiérarchie de système de fichiers a commencé en août 1993. Le FSSTND (Filesystem Standard) est un standard sur la hiérarchie de système de fichiers spécifique à GNU/Linux ; la première version date du 14 février 1994. Les versions suivantes datent du 9 octobre 1994 et 28 mars 1995.
En 1996, la définition de ce standard a été généralisée aux différents Unix et à leurs dérivés (voir Unix-like), en accord avec les membres de la communauté de développeurs BSD. Ce standard est alors renommé en Filesystem Hierarchy Standard.
Le FHS est maintenu par le Free Standards Group (en) qui compte parmi ses membres Hewlett-Packard, Red Hat, IBM, Dell, etc.
La vaste majorité des distributions GNU/Linux ne respectent pas strictement le standard, même celle développée par des membres du Free Standards Group (par exemple, le répertoire /srv/). De plus, d'autres versions d'Unix ont une approche complètement différente :
Répertoire | Description | Exemple d'implémentation de la norme |
---|---|---|
| Commandes de base pour tous les utilisateurs (par exemple : cat, ls, cp) (abréviation de binaries, en français : binaires) | |
| Chargeur d'amorçage Exemple de fichiers :
|
|
| Fichiers correspondant (directement ou non) avec un périphérique (abréviation de device)
| Exemple d'implémentation
|
| Fichiers de configuration (abréviation de editing text configuration, en français : configuration éditable en mode texte) | |
| Fichiers de configuration pour les applications installées dans /opt | |
| Ce répertoire contient les fichiers de configuration pour X11. | NB : Le client et le serveur X11 peuvent être sur deux ordinateurs différents. Le serveur peut ne pas avoir de carte graphique.
|
| Fichiers de configuration pour SGML. | Sans objet le plus souvent |
| Fichiers de configuration pour XML. | |
| Répertoires des utilisateurs (exemple : /home/dupont) | |
| Bibliothèques logicielles nécessaires pour les exécutables de /bin/ et /sbin/ (abréviation de libraries) | |
| Point de montage pour les fs (systèmes de fichiers) temporaires (abréviation de mount) | |
| Point de montage pour les médias amovibles (apparu dans FHS-2.3) | Parmi les media amovibles, il y a notamment les CD-ROM et les clés USB |
| Logiciels optionnels | Logiciels non inclus dans la distribution, installés manuellement |
| Système de fichiers virtuel documentant le noyau et les différents processus (abréviation de processes) | |
| Répertoire de l'Utilisateur root | |
| Exécutables pour les administrateurs (abréviation de system binaries, en français : binaires système) | |
| Données pour les services hébergés par le système, comme du contenu http/ftp (l'arborescence complète d'un site web), une base de données... | |
| Fichiers temporaires (voir aussi /var/tmp) (abréviation de temporary). Est vidé à chaque démarrage et possède le sticky bit | |
| Contient certains dossiers semblables à ceux présents à la racine mais qui ne sont pas nécessaires au fonctionnement minimal du système (usr comme unix system resources) | |
| Binaires exécutables en complément de /bin | |
| Entêtes des bibliothèques partagées | |
| Bibliothèques partagées | |
| Binaires pour l'administrateur (complément de /sbin) | |
| Fichiers indépendants de la plateforme (non binaires) | La documentation :
|
| Sources du noyau | |
| X Window System, X11 version 6. | |
| Hiérarchie tertiaire pour les données locales, spécifiques à l'ordinateur | |
| Fichiers variables, tels que
| |
| Fichiers de verrouillage, permettant de connaître quelles ressources sont en cours d'utilisation | |
| Fichiers de journalisation | Exemple sous GNU/Linux : syslog, XFree86.0.log, kern.log, mysql, gdm/:0.log |
| Boîtes aux lettres utilisateurs | |
| Fichiers temporaires des logiciels en cours d'exécution | Exemples : PIDs ou statut des services |
| Files d'attente des services | File d'attente de fichiers à imprimer par CUPS |
| Mails en cours de transit sur la machine | Mails en attente d'envoi vers d'autres serveurs, ou en attendant de délivrance aux utilisateurs locaux |
| Fichiers temporaires. Préféré à /tmp lorsqu'on est au niveau d'init multiutilisateur | |
| Répertoire web par défaut d'Apache |