Filesystem Hierarchy Standard

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

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[1].

Présentation générale[modifier | modifier le code]

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 des 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 celles développées par des membres du Free Standards Group (par exemple, le répertoire /srv/).

  • Un dossier /run est déjà utilisé et proposé[2] pour la prochaine version du FHS par plusieurs distributions majeures dont Fedora[3], SUSE, Debian[4], et Ubuntu[5], afin entre autres de centraliser les fichiers résidant en mémoire, de simplifier la séquence de démarrage, ainsi que l'utilisation d'un système monté en lecture seule.
    • Exemples de changements :
      • /dev/.*/run/*
      • /dev/shm/run/shm
      • /var/lock/run/lock
      • /var/run/run
      • /tmp/run/tmp

De plus, d'autres versions d'Unix ont une approche complètement différente :

  • GoboLinux.
  • Mac OS X utilise des noms plus explicites, tels que /Library/, /Applications/ et /Users/.

Arborescence des répertoires[modifier | modifier le code]

Répertoire Description Exemple d'implémentation de la norme
/bin/ Commandes de base pour tous les utilisateurs (par exemple : cat, ls, cp) (abréviation de binaries, en français : binaires)
/boot/ Chargeur d'amorçage

Exemple de fichiers :

  • Exemple d'implémentation : Si grub est le chargeur d'amorçage, il y aura le fichier de configuration correspondant grub.conf
/dev/ Fichiers correspondant (directement ou non) avec un périphérique (abréviation de device) Exemple d'implémentation
  • Les fichiers de périphériques :
    • Périphériques physiques
      • IDE (Exemple pour GNU/Linux : /dev/sda, /dev/sdb, /dev/sdc : En effet, dans les versions récentes du noyau Linux, les périphériques IDE ne se nomment plus hdX, mais bel et bien sdX , comme les périphériques SCSI)
      • SCSI ; sous GNU/Linux, cela inclut l'USB et le S-ATA ; exemple : /dev/sda, /dev/sdb, /dev/sdc
      • Les terminaux :
      • Carte réseau (sous GNU/Linux, cela correspond aux interfaces réseau eth0, eth1...)
      • Cartes son
      • Périphérique à bande
      • Périphérique série : par exemple modem
      • Disquette 3 pouces et demi : sous GNU/Linux, /dev/fd0
  • Liens symboliques
    • Cas typique sous GNU/Linux : /dev/cdrom est un lien symbolique vers le fichier de périphérique correspondant (par exemple : /dev/sr0)
/etc/ Fichiers de configuration (abréviation de editable text configuration, en français : configuration éditable en mode texte)
/etc/opt/ Fichiers de configuration pour les applications installées dans /opt
/etc/X11/ 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.

  • Pour les ordinateurs utilisant XFree86, le principal fichier de configuration est XF86Config-4 ou XF86Config selon la distribution
  • Pour les ordinateurs utilisant Xorg, le principal fichier de configuration est xorg.conf
/etc/sgml/ Fichiers de configuration pour SGML. Sans objet le plus souvent
/etc/xml/ Fichiers de configuration pour XML.
/home/ Répertoires des utilisateurs (exemple : /home/dupont)
/lib/ Bibliothèques logicielles nécessaires pour les exécutables de /bin/ et /sbin/ (abréviation de libraries)
/lib<qual>/ Bibliothèques logicielles essentielles dans un format alternatif. Ces répertoires sont optionnels, mais s'ils existent, il y a des exigences à respecter.
/mnt/ Point de montage pour les fs (systèmes de fichiers) temporaires (abréviation de mount)
/media/ 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
/opt/ Logiciels optionnels Logiciels non inclus dans la distribution, installés manuellement
/proc/ Système de fichiers virtuel documentant le noyau et les différents processus (abréviation de processes)
/root/ Répertoire de l'Utilisateur root
/sbin/ Exécutables pour les administrateurs (abréviation de system binaries, en français : binaires système)
/srv/ 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...
/tmp/ Fichiers temporaires (voir aussi /var/tmp et /run/tmp) (abréviation de temporary). Est vidé à chaque démarrage et possède le sticky bit
/usr/ 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)
/usr/bin/ Binaires exécutables en complément de /bin
/usr/include/ Entêtes des bibliothèques partagées
/usr/lib/ Bibliothèques partagées
/usr/lib<qual>/ Bibliothèques partagées dans un format alternatif (optionnel)
/usr/sbin/ Binaires pour l'administrateur (complément de /sbin)
/usr/share/ Fichiers indépendants de la plateforme (non binaires) La documentation :
  • répertoire man pour les man (sous GNU/Linux : document au format roff compressé)
  • répertoire doc : documentation au format HTML ou autre
/usr/src/ Sources du noyau
/usr/X11R6/ X Window System, X11 version 6.
/usr/local/ Hiérarchie tertiaire pour les données locales, spécifiques à l'ordinateur
/var/ Fichiers variables, tels que
/var/lock/ Fichiers de verrouillage, permettant de connaître quelles ressources sont en cours d'utilisation (voir aussi /run/lock)
/var/log/ Fichiers de journalisation Exemple sous GNU/Linux : syslog, XFree86.0.log, kern.log, mysql, gdm/:0.log
/var/mail/ Boîtes aux lettres utilisateurs
/var/run/ Fichiers temporaires des logiciels en cours d'exécution (voir aussi /run) Exemples : PIDs ou statut des services
/var/spool/ Files d'attente des services File d'attente de fichiers à imprimer par CUPS
/var/spool/mqueue/ 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
/var/tmp/ Fichiers temporaires. Préféré à /tmp lorsqu'on est au niveau d'init multiutilisateur

Notes et références[modifier | modifier le code]

Voir aussi[modifier | modifier le code]

  • hier(7) - Linux man page : La page de manuel qui décrit toute la hiérarchie (accessible aussi avec la commande shell man hier)

Liens externes[modifier | modifier le code]