Les répertoires (directories)
l'accès aux fichiers
Répertoires
Le volume (l'unité logique de stockage de données) doit contenir une méthode pour accéder aux données qu'il contient (les fichiers).

Cet accès se fait par un ou plusieurs répertoires organisés de façon hiérarchique.

-

-

Répertoire ou directory

Répertoire   Fichier


L'organisation des fichiers dans un volume

Le répertoire contient une liste de fichiers. Chaque fichier peut être un fichier de données ou un nouveau répertoire. On obtient ainsi une structure hiérarchique, qui commence avec la racine (le répertoire de base) et peut s'étendre très loin.

Le but d'un répertoire est d'organiser les données en mettant ensenble les données qui forment un tout: toutes les photos de vacances, toutes les lettres au bureau des contributions, etc.

Le répertoire n'organise nullement le placement des données: elles sont généralement placées au premier endroit de libre sur le disque. Les données ne sont pas spécialement placées près du répertoire parent (sauf si le répertoire a été créé juste avant le placement des données). D'autres structures s'occupent de l'accès physique au fichier (adresse sur le disque): il s'agit du FAT ou du tableau d'inodes.

Quel est le répertoire de base?

L'utilisateur perçoit différemment la structure du système de données:
  • La "racine" pour l'utilisateur est le fichier "mes documents" ou "mes photos" ou "ma musique". L'endroit où ces fichiers sont placés dans l'arborescence ne joue aucun rôle.
  • Les programmes (Photoshop, Office) travaillent avec des chemins complets: à partir de la racine, en passant par tous les répertoires jusqu'au fichier final.
L'arborescence classique est en train de disparaitre: on est passé de
  • c:\documents\photos\2011\espagne-1
à
  • documents » photos » 2011 » espagne-1
L'emplacement des "photos" dans l'arborescence ne joue aucun rôle (jusqu'au moment où l'ordinateur se plante et il faut rechercher manuellement tous les fichiers...). Mais l'avantage est que les "photos" peuvent être placées sur un second disque dur sans que l'utilisateur n'aie à intervenir. Le système d'exploitation utilise pour cela des noms de répertoire génériques

Les applications ne connaissent pas le chemin effectif vers un fichier. Le gestionnaire se système prévoit un mécanisme de substitution d'un nom générique %HOMEPATH% vers (par exemple) c:\documents and settings\marc\. Cela permet aux applications d'accéder au répertoire de base de l'utilisateur. Ce répertoire dépend de l'utilisateur actif (cela évite que Jean ne modifie les fichiers de Marc), mais il dépend également de la version de windows utilisée: le répertoire est devenu c:\users\marc\ sous windows 7 (et de plus, on ne parle plus de répertoires, mais de dossiers (microsoft a copié la dénomination de apple)).

Plus le chemin jusqu'à un fichier est long, et moins l'accès au fichier sera rapide, mais on ne remarque pas de différences en pratique pour un fichier qui se trouve quelques niveaux plus loin que la racine. Par contre il y a une nette différence de vitesse d'accès pour les fichiers qui se trouvent dans un répertoire qui contiennent de nombreux fichiers (plusieurs milliers). Cela est valable avec le système de fichier FAT et EXT, moins avec NTFS.

Le premier système de fichiers pour micro-ordinateurs était MS-DOS. Il n'y avait qu'un seul répertoire (flat file system: pas d'arborescence) qui avait de plus une longueur fixe (le nombre de fichiers était donc limité). Cela n'était pas considéré comme un inconvénient, car une disquette ne pouvait pas contenir de nombreux fichiers et les utilisateurs avaient l'habitude de placer les fichiers d'un même projet sur une disquette, et chaque disquette dans une boite contenant un groupe de projets.

Notez que l'arborescence des systèmes Linux ne correspond en rien à celle des systèmes DOS et windows qui démarre à partir du répertoire racine du disque (c:\). Au contraire des systèmes DOS destinés à l'utilisateur individuel, Linux permet plusieurs utilisateurs simultanés. Les utilisateurs individuels n'ont pas accès aux répertoires du système, mais par contre on leur offre une racine synthétique (qui n'existe qu'en mémoire) et qui reprend les répertoires auquel l'utilisateur a accès. le disque physique existe dans l'arborescence (/dev/hda/), mais il faut des droits spéciaux pour y accéder.


Contenu d'un répertoire
Espagne-1 est "read only"
Classé est un répertoire
.. est le répertoire parent.

Répertoire

Le répertoire est considéré comme un fichier ordinaire, comme une application, une feuille de calcul ou un fichier mp-3. La seule différence est qu'un répertoire contient des liens vers d'autres fichiers au lieu de données pour l'utilisateur.

Un répertoire se compose d'enregistrements (records). Chaque enregistrement contient un nombre identique de champs (fields):

  • Le nom du fichier. Le système limite la longueur du nom et les caractères utilisables (cela dépend du système de fichiers utilisé).
  • La date de création et éventuellement la date de modification
  • La longueur du fichier (pour un répertoire il s'agit généralement d'un multiple d'une unité d'allocation (cluster))
  • Un lien vers l'emplacement effectif du fichier sur le disque
  • Un nombre d'indicateurs ou flags
Je n'indique qu'un nombre d'indicateurs:
  • Read-only (le fichier ne peut qu'être lu)
  • caché (Hidden: le fichier n'apparait pas dns un listing)
  • répertoire (Directory: le fichier est un répertoire et non un fichier de données ou de programme)
  • Back-up (cet indicateur est utilisé par des programmes de sauvegarde)
Il s'agit des champs les plus utilisés. On les retrouve dans les systèmes FAT et NTFS. Les champs plus spécifiques (droits d'accès) sont repris dans le MFT et non dans le répertoire. Le système de fichiers EXT place tous les champs dans le inode (le répertoire ne contenant que le nom et un numéro de inode).

Chaque répertoire contient une référence vers son parent (..).

Les répertoires peuvent s'aggrandir, mais pas se réduire. Un enregistrement invalidé contient un code spécial. il est donc encore possible d'accéder au fichier, tant que les blocs qui étaient utilisés par le fichier n'ont pas été attribués à un autre fichier. La fin du répertoire est indiqué par le code hexadécimal 00

La structure expliquée ici est très générale et n'est pas propre à un système de fichiers particulier. D'autres structures sont nécessaires pour permettre une utilisation optimale de la place disponible.

Links to relevant pages - Liens vers d'autres pages au contenu similaire - Links naar gelijkaardige pagina's