Systèmes de fichiers
Un système de fichiers est une façon d'organiser et de stocker une arborescence sur un
support (disque, disquette, cd ...). Chaque OS propriétaire a développé
sa propre organisation.On peut faire cohabiter plusieurs systèmes dans des partitions
d'un même disque.
Linux possède son système appelé ext2 mais
peut en gérer d'autres. La liste en est donnée dans /proc/filesystems
L'utilisateur peut donc accéder sous Linux à d'autres systèmes de
fichiers, comme DOS, Vfat,..provenant d'un périphérique ou importé par
le réseau.
Comme pour l'utilisateur tout est fichier, tous les
systèmes de fichiers quels que soient leur emplacement physique doivent
être intégrés dans l'UNIQUE arborescence logique du système Linux.
Cette arborescence peut donc être construite (et évoluer) à partir de
diverses partitions qui peuvent être situées sur plusieurs disques.
Cela réalise une intégration et une abstraction plus poussée que dans
le monde Windows où les partitions et lecteurs auquels sont affectées
les lettres A: C: D: ... demeurent des entités séparées.
Naturellement la partition sur laquelle est situé le répertoire racine
joue un rôle particulier.
Le processus de montage, avec sa commande mount,
décrite plus loin, est le moyen de faire correspondre parties de
l'arborescence et partitions physiques de disque. Il permet de plus
d'affecter tout système extérieur (disquette, cdrom, dk zip, rép.
réseau ...) à un répertoire créé pour cela dans l'arborescence.
Il suffira ensuite de se déplacer à ce répertoire, appelé point de montage, en fait un répertoire "d'accrochage", pour accéder à ses fichiers (bien sûr, conformément aux permissions que possède l'utilisateur )
Les différentes catégories de fichiers
- fichiers normaux
* texte : courrier, sources des programmes, scripts, configuration ...
* exécutables : programmes en code binaire
- fichiers répertoires
ce sont des fichiers conteneurs qui contiennent des références à d'autres fichiers.
véritable charpente de l'arborescence, ils permettent d'organiser les fichiers par catégories
- fichiers spéciaux
situés dans /dev, ce sont les points d'accès préparés par le système aux périphériques.
Le montage va réaliser une correspondance de ces fichiers spéciaux vers leur répertoire "point de montage".
par exemple, le fichier /dev/hda permet l'accès et le chargement du 1er disque IDE
- fichiers liens symboliques
Ce sont des fichiers qui ne contiennent qu'une référence (un pointeur) à un autre fichier.
Cela permet d'utiliser un même fichier sous plusieurs noms sans avoir à le dupliquer sur le disque.
Arborescence du système Linux
La racine est le sommet de la hiérarchie des répertoires.
Il s'agit d'une arborescence logique, indépendante de l'implantation
physique des divers sous-répertoires, qui peut s'étendre sur plusieurs
partitions incluses sur un ou plusieurs disques, et même sur des
disques réseaux.
Sa structure est standard, avec des extensions imposées par
les distributions.
Toute modification est de la compétence exclusive de l'administrateur,
à l'exception des répertoires personnels situés dans
/home.
Il est recommandé de respecter cette architecture standard.
Liste des répertoires principaux et leur rôle :
/ le répertoire racine
-
/bin les fichiers exécutables
(en binaire) (initialisation du système + commandes "essentielles")
-
/boot le noyau
vmlinuz (distribution testing intégre le noyau vmlinuz-2.2.20)
et les fichiers de démarrage
- /dev répertoire de fichiers spéciaux, qui servent de canaux de
communication avec les périphériques (disques, adaptateur réseau,
cartes son etc...)
-
/etc les fichiers de configuration
du système et les principaux scripts de paramétrage
- /etc/rc.d scripts de démarrage du système
- /etc/X11 scripts de configuration du serveur X
- /etc/init.d script de controle des serveurs
- /etc/cron.d description des tâches périodiques à effectuer
- /etc/skel fichiers recopiés dans le rép. personnel d'un nouvel utilisateur
-
/home la racine des répertoires personnels des
utilisateurs
-
/lib les bibliothèques
et les modules du noyau
-
/mnt la racine des points de montage des périphériques.
(cd, disquette, nfs ..) (sous Debian : il y a /cdrom et /floppy, placés directement à la racine).
-
/opt lieu d'installation d'applications supplémentaires (comme starOffice, java ..)
-
/root répertoire personnel du super-utilisateur
root
-
/sbin les fichiers exécutables pour
l'administration du système
-
/tmp stockage des fichiers temporaires
-
/usr programmes accessibles à
tout utilisateur; sa structure reproduit celle de la racine /
-
/var données variables liées
à la machine (fichiers d'impression, traces de connexions http,
smb .. dans /var/log)
-
/proc ce pseudo-répertoire contient une "image" du système (
/proc/kcore est l'image de la RAM)
Essais : cat /proc/cpuinfo, cat /proc/net/arp, cat /proc/interrupts
Complément
Les inodes
Chaque système de fichiers tient à jour une table des descripteurs
des fichiers qu'utilise le système d'exploitation pour accéder
aux fichiers.
Cette table se compose pour chaque fichier, d'une entrée appelée
inode,
repérée par un index appelé le
numéro d'inode
La liste des systèmes de fichiers gérés par Linux
est visible sur
/proc/filesystems
Il existe un outil de vérification et de réparation des
systèmes :
fsck, qui s'effectue sur un système ou
sous-systèmes, un rép.
obligatoirement démonté.
Par exemple, pour vérifier le rép. des users :
fsck /home
Les liens symboliques
Les liens sont utiles pour faire
apparaître un même fichier dans plusieurs répertoires, ou sous des noms
différents. Ils évitent les duplications et assurent la cohérence des
mises à jour
Syntaxe :
ln -s fichier lien
Exemple :
ln -s /var/www/index.html /home/stage/accueil.html crée un fichier lien symbolique nommé
accueil.html dans le répertoire
/home/stage/
Celui-ci pointe sur la page d'accueil du serveur web,
index.html (ainsi, une requête sur
accueil.html, ouvrira
index.html)
La suppression du fichier source entraînera un changement de
comportement du fichier lien qui sera considéré comme "cassé"
("broken").