Système de fichiers
Un article de Wikipédia, l'encyclopédie libre.
Un système de fichiers (FS ou FileSystem en anglais) ou système de gestion de fichiers (SGF) est une méthode permettant de stocker les informations et de les organiser dans des fichiers sur ce que l'on appelle des mémoires secondaires (disque dur, disquette, CD-ROM, clé USB, etc.). Une telle gestion des fichiers permet de traiter, de conserver des quantités importantes de données ainsi que de les partager entre plusieurs programmes informatiques. Il offre à l'utilisateur une vue abstraite sur ses données.
Il existe d'autres façons d'organiser les données, par exemple les systèmes de gestion de base de données (notamment base de données relationnelle) et les fichiers indexés.
Sommaire |
[modifier] Représentation générale
Un système de fichiers est présenté par une arborescence : les fichiers sont regroupés dans des répertoires (concept utilisé par la plupart des systèmes d’exploitations). Ces répertoires contiennent soit des fichiers, soit des répertoires, il y a donc un répertoire racine et des sous-répertoires. Une telle organisation permet d’obtenir une hiérarchie de répertoires et de fichiers organisés en arbres.
[modifier] Principe de stockage
Le volume des données traitées par les applications informatiques atteignant plusieurs méga et giga octets, celles-ci ne peuvent être stockées dans la mémoire centrale. Elles doivent, alors, être stockées dans des mémoires secondaires sous forme d’une suite de blocs (la plus petite unité du disque que le système d’exploitation est capable de gérer). Ces blocs peuvent représenter des caractères, des nombres entiers, flottants, des codes d'opérations machines, des adresses mémoires, etc... L’échange entre les deux mémoires se fait ensuite par transfert de blocs.
Les fichiers et les répertoires sont identifiés par des noms et des inodes. Un inode étant une structure de données contenant toutes les informations concernant un fichier(notamment la protection d'accès en lecture, en écriture ou des listes de dates), sauf son nom. Le nom est stocké dans le répertoire avec le numéro d'inode. Une entrée de répertoire est composée d'un nom de fichier et du numéro d'inode qui représente le fichier. Le nom d'un fichier possède en général un suffixe (extension) séparé par un point qui est fonction du contenu du fichier : .txt pour du texte par exemple.Ce nom est une chaîne de caractères de taille parfois limitée dans laquelle certains caractères peuvent être interdits (par exemple : « : », « / » ou « \ » selon les systèmes de fichiers). Avec le système de fichier NTFS, les noms de fichiers sont généralement codés en UTF-16.
[modifier] Méta-données
Chaque fichier est décrit par des méta-données. Ces méta-données sont écrites dans l'inode (que l'on pourrait comparer à une étiquette), alors que les données du fichier lui-même sont écrites dans un ou plusieurs blocs selon leurs tailles.
Les méta-données les plus courantes sous UNIX sont :
- droits d'accès en lecture, écriture et exécution selon l'utilisateur, le groupe, ou les autres ;
- dates de dernier accès, de modification des méta-données (inode), de modification des données (block) [1] ;
- propriétaire et groupe propriétaire du fichier ;
- taille du fichier ;
- nombre d'autres inodes (liens) pointant vers le fichier ;
- nombre de blocs utilisés par le fichier [2] ;
- type de fichier : fichier simple, lien symbolique, répertoire, périphérique, etc.
Sur la plupart des systèmes Unix, la commande stat permet d'afficher l'intégralité du contenu de l'inode.
[modifier] Fonctions du SGF
Le système de gestion des fichiers assure plusieurs fonctions :
- Manipulation des fichiers : des opérations sont définies pour permettre la manipulation des fichiers par les programmes d’application, à savoir : créer/détruire des fichiers, insérer, supprimer et modifier un article dans un fichier.
- Allocation de la place sur mémoires secondaires : les fichiers étant de taille différente et cette taille pouvant être dynamique, le SGF alloue à chaque fichier un nombre variable de granules de mémoire secondaire de taille fixe (blocs).
- Localisation des fichiers : il est nécessaire de pouvoir identifier et retrouver les données ; pour cela, chaque fichier possède un ensemble d’informations descriptives (nom, adresse…) regroupées dans un inode.
- Sécurité et contrôle des fichiers : le SGF permet le partage des fichiers par différents programmes d’applications tout en assurant la sécurité et la confidentialité des données. En effet, un nom et une clé de protection sont associés à chaque fichier afin de le protéger contre tout accès autorisé ou mal intentionné lors du partage des fichiers. Le SGF se doit aussi de garantir la conservation des fichiers en cas de panne du matériel ou di logiciel.
[modifier] Organisation des fichiers
L'organisation physique sous-jacente du médium utilisé (blocs, linéaire) et les mécanismes d'entrée/sortie de bas-niveau sont masqués. L'utilisateur peut donc organiser ses données permanentes en les distribuant dans différents fichiers. Le contenu des fichiers est déterminé par leur format, qui dépend de l'application utilisée.
En plus de cette organisation abstraite, les systèmes de fichiers peuvent inclure la compression ou le chiffrement automatique des données, une gestion plus ou moins fine des droits d'accès aux fichiers, et une journalisation des écritures (pour la robustesse, en cas de défaillance du système). De plus, certains systèmes de fichiers peuvent s'étendre sur un réseau entier, comme par exemple NFS. Certains de ces systèmes de fichiers en réseau peuvent être distribués ou répartis, comme par exemple PVFS2.
[modifier] Systèmes de fichiers et systèmes d'exploitation associés ou compatibles
Le choix du système de gestion des fichiers se fait principalement en fonction du système d’exploitation. Généralement, les systèmes d’exploitation les plus récents supportent un plus grand nombre de systèmes de fichiers. En effet,la FAT16 était le système utilisé sous DOS et sur les premières versions de Windows 95.
A partir de Windows 95 OSR2, le choix entre les systèmes de fichiers a commencé à s'élargir. FAT16 et FAT32 pouvaient tous les deux être utilisés, et à partir d'une certaine taille de répartition, le choix du système FAT32 était alors plus judicieux.
Sous les 4 premières versions de Windows NT,il y a le choix entre le système FAT16 et NTFS, par contre ce système d'exploitation ne supporte pas la FAT32. Généralement, le système NTFS est conseillé car il procure une sécurité plus grande ainsi que des performances accrues par rapport à la FAT. Contrairement aux précédentes versions Windows NT, Windows NT5 accepte des partitions de type FAT16, FAT32 et NTFS. Ainsi, le système de fichiers le plus récents (NTFS 5) est conseillé, puisqu’il offre de plus nombreuses fonctionnalités que les systèmes FAT.
Ce classement n'est pas un jugement de valeur, il a juste pour but de trier. Par exemple, Ext2 et FAT sont dans la même catégorie, on ne peut pourtant pas comparer cette bonne vieille FAT à un FS moderne comme Ext2. Dans chaque catégorie les FS sont classés par ordre alphabétique.
[modifier] Non journalisés
- Ext et Ext2 : Extented FS version 2 (Linux, BSD)
- FAT : File Allocation Table (DOS/Windows, Linux, BSD, OS/2, Mac OS X). Se décompose en plusieurs catégories :
- FAT12 ;
- FAT16 ;
- FAT32 ;
- VFAT.
- FFS : Fast File System (BSD, Linux expérimental)
- HFS : Hierarchical File System (Mac OS, Mac OS X, Linux)
- HPFS : High Performance FileSystem (OS/2, Linux)
- minix fs (minix, Linux)
- S5 (UNIX System V, Linux)
- Unix File System : (BSD, Linux en lecture seule)
[modifier] Journalisés
- BFS (BeOS, Haiku, Linux en lecture seule et expérimental)
- Ext3 : Extented FS version 3 - notamment pour l'ajout de la journalisation (Linux, BSD)
- Ext4 : Extented FS version 4 - notamment pour étendre sa capacité à 1024 peta-octets (Linux expérimental)
- HFS+ (Mac OS X, Linux)
- JFS (AIX, OS/2, Linux)
- LFS : (Linux)
- NTFS : New Technology FileSystem (Windows NT/2000/XP, Linux (écriture expérimentale), Mac OS X en lecture seule)
- ReiserFS (Linux, BSD en lecture seule)
- Reiser4 (Linux expérimental)
- Spufs : Synergistic processing unit filesystem
- UFS+ : Unix FS + journal (BSD, Linux en lecture seule)
- XFS (Irix, Linux, BSD en lecture seule)
- ZFS : Zettabyte FS (Solaris10)
[modifier] Réseau
- AFS Andrew File System : (Aix, Linux expérimental)
- Coda (Linux)
- NFS (tous les Unix, Linux, Mac OS X) (Windows pour la 4)
- NCP NetWare Core Protocol (Novell NetWare, Linux en client seul)
- SSHFS (tous les Unix ?, Linux)
- SMB ou Server message block (Windows) (Linux, BSD et Mac OS X via Samba)
- CIFS (Evolution de SMB, supporté par Samba ainsi que par Windows 2000 et XP)
[modifier] Cluster
- GPFS, Goblal Parallel File Sytem : Linux, AIX
- LustreFS, Compression de Linux et de Cluster : Linux
- OCFS2, développé par Oracle : Linux
- PVFS2, Parallel Virtual FileSystem version 2 : Linux, Unix
[modifier] Spécialisés
- CFS Cryptographic File System : FS chiffré (BSD, Linux)
- cramfs : FS compressé (Linux en lecture seule)
- EFS Encrypting File System : FS chiffré au dessus de NTFS (Windows)
- ISO 9660 : en lecture seule sur tous les systèmes lisant les CDROM/DVDROM de données
- JFFS et JFFS2 : FS pour support physique sans block, typiquement des cartes flash. Il est compressé et journalisé (Linux)
- QNX4fs : FS utilisé pour le temps réel (QNX, Linux en lecture seule)
- UDF : le format de disque universel (système de fichiers des DVD-ROM et des disques optiques réinscriptibles tels les CD-RW, DVD±RW, etc.)
[modifier] À classer…
- ODS (VMS, OpenVMS)
- Devfs et udev
- ADFS : Acorn Disc Filing System (RiscOS, Linux expérimental)
- AFFS : fichiers rapides d'Amiga
- CBMFS : Le système de fichiers pour Commodore 1581/1541
- DTFS : DeskTop File System (Unix)
- MFS (Macintosh)
- NWFS : système de fichiers Novell NetWare
- SFS : Secure file system
- OpenVMS : système de fichiers Spiralog
- FATX : système de fichiers pour Xbox
[modifier] Notes et références
- ↑ et donc de l'inode car la modification des données implique le changement de la date de modification des données dans l'inode et donc implique un changement de l'inode elle-même !
- ↑ différent de la taille du fichier car les blocs sont de taille fixe, ainsi un fichier de 5 Kio sur un système utilisant des blocs de 4 Kio prendra 2 blocs complets. Pour les fichiers de grande taille, cela se complique encore car les premiers blocs servent à l'adressage des suivants.
[modifier] Voir aussi
- Fichier
- Répertoire
- Système de fichiers virtuel
- GED
- Point de montage
- Gestionnaire de fichiers
- Comparaison des systèmes de fichiers
[modifier] Lien externe
- (fr) Description de tous les systèmes de fichiers
- (fr) Tutorial sur le fonctionnement des systèmes de fichiers sous GNU/Linux
- Un exemple de SGF virtuel
- Georges GARDARIN. Bases de données : Les systèmes et leurs langages. Editions Eyrolles. 61, boulevard Saint-Germain 75005 PARIS.
- Mokrane BOUZEGHOUB, Mireille JOUVE, Philippe PUCHERAL. Systèmes de bases de données : des techniques d’implantation à la conception de schémas. Editions Eyrolles. 61, boulevard Saint-Germain 75005 PARIS.