3.5 étoiles sur 5 a partir de 1 votes. Votez ce document: ☆☆☆☆☆★★★★★
2.1 Introduction
Le volume des données traitées par les applications informatiques atteignant plusieurs Méga et Giga octets, ces données ne peuvent pas être stockées dans la mémoire centrale. On souhaite également disposer d'un stockage à long terme qui ne disparaisse pas lorsqu'on éteint la machine. Le principe consiste à stocker ces données dans des mémoires secondaires sous forme de fichiers, c'est-à-dire de suites de blocs (la plus petite unité que le périphérique de stockage est capable de gérer). Le contenu de ces blocs, simple suite de chiffres binaires, peut être interprété selon le format de fichier comme des caractères, des nombres entiers ou flottants, des codes d'opérations machines, des adresses mémoires, etc...
L’échange entre les deux types de mémoires se fait ensuite par transfert de blocs. L'objectif du système de fichier est de permettre l'accès au contenu du fichier (l'ouverture du fichier, sa recopie à un second emplacement ou sa suppression) à partir de son chemin d'accès, formé d'un nom précédé d'une liste de répertoires imbriqués.
2.2 Système de gestion de fichiers
Un fichier est une collection logique d’information. Un système de fichiers est une collection de fichiers.
Une des fonctions d'un SE est de masquer les spécificités des disques et des autres périphériques d'entrées/sorties et d'offrir au programmeur un modèle de manipulation des fichiers agréable et indépendant du matériel utilisé. Les appels système permettent de créer des fichiers, de les supprimer, de lire et d'écrire dans un fichier. Il faut également ouvrir un fichier avant de l'utiliser, le fermer ultérieurement. Les fichiers sont regroupés en répertoires arborescents; ils sont accessibles en énonçant leur chemin d'accès (chemin d'accès absolu à partir de la racine ou bien chemin d'accès relatif dans le cadre du répertoire de travail courant). Le SE gère également la protection des fichiers.
2.3 Désignation des partitions sous Linux
Un disque dur est généralement organisé de la façon suivante :
Figure 1 : Organisation d’un disque dur
Le Master Boot Record (MBR) est situé dans les premiers secteurs du disque. Le mode de partitionnement MBR est le mode historique des ordinateurs de type IBM PC-compatible et le plus répandu. Dans ce modèle, une zone de 512 octets appelée le Master Boot Record (MBR) est réservée en début de disque pour contenir l'information relative à un maximum de 4 partitions.
Le MBR est constitué de 2 parties :
La table de partition ;
Le programme d’amorçage qui charge le noyau du système d’exploitation.
Dans un disque dur, plusieurs types de partitions peuvent coexister. On peut mentionner les partitions principales, étendues et logiques.
Les partitions principales :
Sont au maximum de 4
Accepte tout type de système de fichiers.
Les partitions étendues :
Sont destinées à contenir des partitions logiques et non au système de fichiers,
Nécessitent au moins une partition principale.
Les partitions logiques :
Sont contenues dans une partition étendue,
Accepte tout type de systèmes de fichiers.
Sous Linux, le pointeur spécial /dev permet l’accès aux disques.
Pour dénommer les disques, un format est adopté : /dev/XXYZ où
XX désigne le type de bus :
- hd pour les périphériques de type IDE
- sd pour les périphériques de type SATA
Y désigne la lettre de périphérique :
- "a" pour le maître de la nappe IDE primaire
- "b" pour l'esclave de la nappe IDE primaire
- "c" pour le maître de la nappe IDE secondaire
- "d" pour l'esclave de la nappe IDE secondaire
- Z désigne le numéro de la partition
Exemples :
/dev/hda1 : partition 1 sur le 1er disque IDE
/dev/sdb2 : partition 2 sur le 2ème disque SATA
2.4 Systèmes de fichiers
Les données sont normalement présentées à l'utilisateur et aux programmes selon une organisation structurée, sous la forme de répertoires et de fichiers. Pour pouvoir stocker ces données structurées sur un périphérique, il faut utiliser un format qui les représente sous la forme d'une succession de blocs de données : c'est ce qu'on appelle un système de fichiers.
On dit qu’un système de fichiers est journalisé s’il prévient les coupures lors de la sauvegarde de fichiers sur disque. Au lieu d'écrire immédiatement sur le disque dur les données à l'endroit exact où elles devraient être enregistrées, le système de fichiers journalisé écrit les données dans une autre partie du disque dur et note les changements nécessaire dans un journal, et ensuite, en arrière-plan, il repasse chacune des entrées du journal et termine le travail commencé ; lorsque la tâche est accomplie, il raye la tâche de la liste.
Sous Windows, les systèmes de fichiers disponibles sont :
FAT : Développé par Microsoft, ce système de fichiers se rencontre moins fréquemment aujourd'hui. Il reste néanmoins utilisé sur les disquettes 3½ formatées sous Windows et devrait être utilisé sous Linux si une disquette doit aussi être lue sous Windows. Il est aussi utilisé par plusieurs constructeurs comme système de fichiers pour cartes mémoires (memory sticks), car, bien documenté, ce système de fichiers reste le plus universellement utilisé et accessible.
FAT32 : Ce système de fichiers, aussi créé par Microsoft, est une évolution de son prédécesseur. Depuis ses versions 2000 SP4 et XP, Windows ne peut pas formater (ou bloque volontairement le formatage) une partition en FAT32 d'une taille supérieure à 32 Go. Cette limitation ne s'applique pas sous Linux, de même qu'avec des versions antérieures de Windows. Une partition FAT32 d'une taille supérieure à 32 Go déjà formatée pourra être lue par Windows, peu importe sa version.
NTFS : Ce système de fichiers a aussi été développé par Microsoft, et il reste très peu documenté. L'écriture depuis Linux sur ce système de fichiers est stable à l'aide du pilote ntfs- 3g.
extFAt : Ce système de fichiers a aussi été développé par Microsoft. L'écriture depuis Linux sur ce système de fichiers est stable à l'aide du pilote exfat-fuse Linux utilise également FAT, FAT32, NTFS et extFat ainsi que plusieurs autres systèmes de fichiers, nous citons :
ext2fs : Extended File System est le système de fichiers natif de Linux. Les versions 1 et 2 de ce système ne disposent pas de la journalisation. Ext2 peut tout de même s'avérer utile sur des disquettes 3½ et sur les autres périphériques dont l'espace de stockage est restreint, car aucun espace ne doit être réservé à un journal.
ext3fs : ext3 est essentiellement ext2 avec la gestion de la journalisation. Il est possible de passer une partition formatée en ext2 vers le système de fichiers ext3 (et vice versa) sans formatage.
ext4fs : ext4 est considéré par ses propres concepteurs comme une solution intermédiaire en attendant le vrai système de nouvelle génération que sera Btrfs.
ReiserFS : Développé par Hans Reiser et la société Namesys, ReiserFS est reconnu particulièrement pour bien gérer les fichiers de moins de 4 ko. Un avantage du ReiserFS, par rapport à ext3, est qu'il ne nécessite pas une hiérarchisation aussi poussée: il s'avère intéressant pour le stockage de plusieurs fichiers temporaires provenant d'Internet. Par contre, ReiserFS n'est pas recommandé pour les ordinateurs portables, car le disque dur tourne en permanence, ce qui consomme beaucoup d'énergie.
2.5 Arborescence
Une arborescence est une organisation logique de fichiers sur un ou plusieurs systèmes de fichiers. Il s’agit d’une structure de données hiérarchique de type arbre. Le système qui gère les fichiers sous Linux est un peu déroutant au début, surtout quand on est habitué à celui de Windows. En effet, sous Windows, il y a en fait plusieurs racines.C:\est la racine du disque dur, E:\est la racine de votre lecteur CD (par exemple).
Sous Linux, il n'y a qu'une et une seule racine : « / ». Il n'y a pas de lettre de lecteur car justement, Linux ne donne pas de nom aux lecteurs comme le fait Windows. Il dit juste « La racine, c'est/ ». Au lieu de séparer chaque disque dur, lecteur CD, lecteur de disquettes, lecteur de carte mémoire… Linux place en gros tout au même endroit sous une seule racine.
L’arborescence typique d’un système Linux est comme suit :
Figure 3 : Arborescence typique de Linux
etc : répertoire contenant les fichiers de configuration. Ce répertoire contient des fichiers de données ainsi que des programmes réservés pour la maintenance du système. Ces fichiers conditionnent notamment le démarrage du système, les entrées en session, etc… Ce répertoire contient notamment le fichier passwd qui est un fichier texte contenant la liste des noms utilisateurs avec les mots de passe cryptés, leur identification (uid et gid), leurs répertoires initiaux et leurs Shells. On y retrouve également le fichier group qui est un fichier texte contenant la liste des groupes d'utilisateurs, leurs identificateurs et les listes d'utilisateurs par groupe.
bin : répertoire contenant les principales commandes disponibles pour les utilisateurs ;
boot : répertoire contenant les fichiers de démarrage du système contenant le noyau ;
home : répertoire contenant les répertoires personnels des utilisateurs. Lorsque vous êtes connecté sous Unix, vous vous retrouvez chez vous à savoir votre home directory qui a été assigné par l'administrateur système ( Ex : /home/imene ). Tous les fichiers ou répertoires que vous allez créer, le seront sous votre home directory.
root : répertoire personnel du super-utilisateur ;
usr : Ce répertoire est réservé pour l'utilisation du système. Il est essentiellement utilisé comme répertoire racine pour de nombreux sous répertoires, notamment pour représenter les répertoires personnels des utilisateurs (home directories). Par exemple, l’administrateur du système réservera le plus souvent pour un utilisateur nommé « imene » un répertoire personnel /usr/imene. De plus, des sous répertoires additionnels sont créés et réservés pour Unix. Ces sous répertoires sont généralement les suivants :
/usr/bin est un répertoire composé essentiellement de fichiers contenant le code exécutable des principales commandes sous linux. Si un de ces fichiers est supprimé ou change de nom, la commande correspondante ne sera plus reconnue.
/usr/include est un répertoire qui contient les fichiers référencés en tête (*.h) d'un programme source en langage C.
/usr/lib est un répertoire qui comprend généralement des bibliothèques ou fichiers de données supplémentaires à l'usage de linux.
/usr/spool est un répertoire contenant une variété de sous répertoires utiles pour y conserver les fichiers en attente d'impression.
var : répertoire contenant les journaux systèmes. Il contient une hiérarchie de fichiers système qui évoluent durant le fonctionnement de la machine. Ex : /var/spool/ est le répertoire contenant les files d'attente pour les sous-systèmes du courrier, de l'impression,
dev : point d’entrée vers les périphériques. Ce répertoire contient des fichiers spéciaux qui assurent le contrôle des accès aux différents dispositifs d'entrée/sortie. Ces fichiers sont indispensables et ne peuvent en aucun cas être détruits sous peine de rendre impossible l'accès aux unités correspondantes. Il est donc utilisé pour les périphériques, terminaux, etc.
proc : pseudo-système contenant des informations sur les processus en exécution
Remarques :
Sous le système Linux, plusieurs symboles sont utilisés pour désigner les répertoires. On cite pour cela :
Le « . » : pour désigner le répertoire courant (la commande pwd affiche le nom du répertoire courant)
Le « .. » : pour désigner le répertoire parent courant (la commande cd .. affiche le nom du répertoire parent)
Le « ~ » : pour désigner le répertoire personnel de l’utilisateur (la commande cd ~ affiche le nom du répertoire personnel)
2.6 Chemins relatifs et chemins absolus
Sous Linux le disque est organisé en une structure hiérarchique, c'est-à-dire en une arborescence de répertoires. Chaque répertoire contient des noms de fichiers ou de sous répertoires qui contiennent eux-mêmes des noms de fichiers et de sous répertoires, etc. …
Pour retrouver un répertoire ou un fichier, il sera donc nécessaire d'énumérer la séquence de répertoires à traverser pour aboutir au répertoire ou au fichier souhaité. Cette séquence est appelée chemin d'accès ou "pathname".