Files
ft_linux/docs/ft-linux/references/fhs.md
2026-10-23 11:31:19 +02:00

4.0 KiB
Raw Blame History

FHS 3.0 — le mot standards du sujet

Adresse du PDF : http://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html

Filesystem Hierarchy Standard, version 3.0, publié par le Linux Foundation. C’est une norme de rangement : quel répertoire existe, et quel genre de fichier a le droit d’y être. Elle ne dit pas comment compiler un paquet.

Le sujet n’écrit pas « FHS ». Il écrit « a filesystem hierarchy compliant with the standards », et le mot standards est le lien vers ce document. LFS, de son côté, dit suivre FHS 3.0.

L’idée en une phrase

Deux fichiers qui ont le même rôle sur deux distributions doivent avoir le même chemin. /bin/sh est un shell, /etc est de la configuration, /boot est ce que le bootloader lit. Un programme écrit pour une distribution en trouve un autre sans deviner.

Les répertoires que ft_linux va vraiment remplir

Chemin Rôle dans la norme Dans ce projet
/ Racine. Tout le reste est en dessous Une partition dédiée. Le sujet l’appelle root
/boot Noyau et fichiers du bootloader Une partition à part. Le fichier vmlinuz-<linux_version>-<student_login> vit ici, avec la config GRUB
/bin Commandes essentielles, utilisables même si /usr n’est pas monté sh, ls, mount. LFS y place les outils dont le boot a besoin
/sbin Commandes d’administration essentielles init, shutdown, fsck, souvent ip selon les versions
/lib Bibliothèques essentielles, et souvent les modules du noyau dans /lib/modules/<version> Le chargeur de modules cherche les .ko ici
/etc Configuration propre à cette machine /etc/hostname (le login), /etc/fstab (les partitions), /etc/passwd, scripts SysV
/dev Fichiers de périphériques Créés au boot par udev / devtmpfs, pas copiés à la main. /dev/sda, /dev/tty1
/proc Fenêtre sur le noyau, en mémoire ps, et plus tard /proc/mymounts de Little Penguin, lisent ici. Ce n’est pas un disque
/sys Fenêtre sur les périphériques et les modules udev écoute ce que le noyau y publie
/tmp Fichiers temporaires, effaçables Droit d’écriture pour tout le monde, souvent un tmpfs
/usr La partie partageable du système, programmes non essentiels au tout premier boot /usr/bin, /usr/lib, /usr/share
/usr/src Sources Le sujet y met le noyau : /usr/src/kernel-$(version). La norme prévoit ce répertoire pour du code source
/usr/include En-têtes C Vient de Glibc et des en-têtes du noyau. GCC les lit pour compiler
/var Données qui changent : journaux, caches, files syslog écrit dans /var/log
/home Répertoires des utilisateurs Pas exigé par une ligne du sujet. Utile dès qu’on se connecte autrement qu’en root
/root Répertoire personnel du superutilisateur Distinct de la partition racine /
/run Données d’exécution depuis le dernier boot PID files, socket udev. Remplace l’ancien /var/run
/opt Logiciels ajoutés en dehors du système de base Souvent vide dans un LFS minimal
/mnt, /media Points de montage temporaires Vides au départ

Le swap n’a pas de chemin FHS. C’est une partition que le noyau utilise comme mémoire, déclarée dans /etc/fstab avec le type swap. On ne crée pas de système de fichiers dessus.

Deux distinctions qui évitent des erreurs

Partition et répertoire. /boot est un répertoire. Le sujet demande aussi que ce répertoire soit une partition : un morceau de disque monté sur ce répertoire au boot. On peut avoir le répertoire /boot sans partition séparée. Le sujet veut les deux.

/bin et /usr/bin. Historiquement, /bin survit si /usr est sur un autre disque pas encore monté. Beaucoup de distributions récentes fusionnent les deux par des liens. LFS explique son choix dans le chapitre qui crée l’arborescence. Pour le sujet, l’arbre doit rester lisible selon cette table.