5. Systèmes de fichiers

5.1. Généralités

Un disque est une unité physique sur laquelle il est possible d'enregistrer des informations. Dans les systèmes on emploie généralement cette terminologie même quand il n'y a pas à proprement parler d'objet circulaire plat en jeu (ex.: clef USB).

Ces informations sont regroupées dans des systèmes de fichiers (en anglais FS, filesystems). Ces systèmes de fichiers peuvent occuper un disque entier (c'est le cas général pour les périphériques amovibles : disquettes, clef, CD/DVD...) ou bien être contenus dans une ou plusieurs partitions, lesquelles sont simplement des segment du disque (c'est généralement le cas pour les disques dur). Les partitions sont parfois appelées disques logiques et sont alors traitées par le système comme s'il s'agissait de disques différents. Préparer un disque pour y mettre un système de fichier, s'appelle formatage de bas niveau. Mettre un système de fichier sur une partition ou un disque est appelé formatage (ou formatage de haut niveau). Cette double terminologie, très largement en usage, ne se justifie plus vraiment aujourd'hui et est parfois source de confusions.

Les systèmes de fichiers sont des ressources parmi d'autres. On peut imaginer un système sans disque (OS des routeurs, p.ex.). À l'inverse, un OS donné peut gérer de nombreux types de systèmes de fichiers : tout dépend des gestionnaires intégrés au noyau. Ainsi les WindowsNT récents lisent les disques Macintosh (HFS). De même Linux lit tous les systèmes courrants (dont Macintosh et Windows). Les systèmes de fichiers Unix s'autodéfragmentent à l'utilisation. Les autres doivent être régulièrement remis "à neuf" (défragmentation voire reformattage).

La structure d'un système de fichiers est une arborescence : elle est constituée d'un dossier racine qui, lui-même, contient des dossiers ou répertoires qui eux-même contiennent etc. C'est, finalement, un arbre dont les "noeuds" sont les dossiers et les "feuilles" les fichiers (et autres nœuds spéciaux). Chaque dossier peut contenir des fichiers éventuellement de plusieurs types différents.

Pour que le système de fichier d'une partition soit utilisé par le système d'exploitation, il faut que cette partition soit montée. Cette opération est, le plus souvent automatique. En revanche, le démontage doit généralement être demandé manuellement pour les systèmes amovibles (clef USB, disquette etc.). Comme une information n'est pas toujours transmise immédiatement aux systèmes de fichiers montés par le système (c'est ce qu'on appelle un fonctionnement asynchrone), il est nécessaire de toujours éteindre un ordinateur par la procédure prévue, de façon que les systèmes soient correctement "démontés". Sinon, des erreurs peuvent apparaître.

Note pour Unix : Sous Unix, tous les systèmes de fichiers sont attachés (ou montés) en remplacement d'un dossier particulier de l'arborescence déjà montée ou directement à la racine. Attention : plusieurs chemins dans l'arbre peuvent désigner exactement le mêmes fichier (au même emplacement) sur un disque. On dit que ces chemins sont des liens physiques vers le même fichiers. Dans ce cas, l'arborescence n'est pas vraiment un arbre puisque deux "branches" convergent.

(à faire : schéma)

Note pour MacOS : Sous MacOS les systèmes de fichiers apparaissent généralement sous la forme d'un dossier sur le bureau (le plus souvent avec un icône de disque, par défaut).

Note pour Windows : Sous Windows les systèmes de fichiers apparaissent sous la forme d'une lettre sur le poste de travail : A: pour le système sur la disquette, C: pour le "disque" - en fait le système de fichiers - principal, D: pour le suivant, etc.

Sous les environnement de travail usuels un fichier peut se contenter de pointer vers un autre fichier (ou dossier), on parle de raccourci (ou alias sur MacOS). Sous Unix, il existe une possibilité supplémentaire : les liens symboliques. C'est une version renforcée de l'alias : éditer un lien symbolique revient à éditer son fichier cible (sauf précaution particulière). Ceci peut être particulièrement utile aux serveurs web et aux serveurs de fichiers (FTP),... à condition de prendre garde à ne pas confondre le lien avec sa cible.

Sur les serveurs en réseau, les utilisateurs ou les groupes d'utilisateurs se voient généralement imposer un quota d'utilisation des disques. Un disque leur apparaît plein quand le quota (en volume et/ou en nombre de fichiers) est atteint.

Les gros systèmes ou les ordinateurs qui demandent une forte sécurisation des données peuvent mettre en place un système de journalisation qui garde trace de toutes les opérations et permet de récupérer des fichiers "accidentés". Les ordinateurs serveurs sont, par ailleurs, souvent équipés de systèmes de réplication de disques (RAID) qui permet de conserver les données même quand l'un des disques durs tombe en panne.

5.2. La mémoire virtuelle

Quand une machine ne dispose plus d'assez de mémoire vive pour y placer tous les processus, elle peut utiliser une partie (délimitée) de l'espace disque appelée mémoire d'échange (en anglais swap). La combinaison de la mémoire vive et de la mémoire d'échange pour y placer les processus, de façon transparente pour eux, est appelée mémoire virtuelle. Attention : comme l'accès aux données sur un disque est considérablement plus long qu'en mémoire vive, cela peut ralentir beaucoup une machine. Ce ralentissement est particulièrement sensible quand plusieurs processus trop "volumineux" sont utilisés simultanément (et non consécutivement) : la machine passe alors son temps à transférer les processus depuis la mémoire d'échange vers la mémoire vive et inversement. Il faut donc veiller à dimensionner correctement la mémoire vive, la mémoire d'échange ne devant être qu'une roue de secours.

Ceci est d'autant plus important pour les serveurs web (ou de fichiers) tournant sous Unix. En effet, les systèmes Unix conservent un fichier lu récemment en mémoire vive (tant qu'il y en a de libre). Un serveur web a donc intérêt à avoir beaucoup de mémoire : dans ce cas les fichiers sont lus à partir de leur copie (cache) en mémoire vive et non à partir du disque. Cela limite les accès au disque et peut augmenter considérablement sa vitesse de traitement, même pour de gros sites.

5.3. Privilèges sous Unix

Sous Unix, cas le plus fréquent de serveurs web et FTP, les privilèges d'accès à chaque fichier et à chaque dossier se répartissent en trois catégories :

  • U - Les privilèges pour le compte utilisateur propriétaire du fichier. Généralement, le propriétaire d'un fichier est celui qui l'a créé.

  • G - Ceux pour un groupe d'utilisateurs bien défini appelé « groupe propriétaire ». Le groupe "propriétaire" est l'un des groupes d'utilisateur choisi par le propriétaire.

  • O - Ceux pour le reste des utilisateurs (o : other).

Pour chacune de ces catégories, sont définit trois bascules :

  • R - Autorisation de lire le fichier ou de lister le dossier.

  • W - Autorisation de modifier le fichier ou le dossier.

  • X - Pour un fichier : autorisation d'exécuter (c'est un logiciel). Pour un dossier : autorisation d'accéder au contenu.

Le propriétaire d'un fichier ou dossier, ou l'administrateur, peuvent donc régler neuf autorisations indépendantes.