57 votes

Est-ce qu'un système de fichiers n'est que la disposition des dossiers ?

J'ai utilisé Windows depuis mon enfance, et quand j'entends l'expression "système de fichiers Windows", je pense à des répertoires (dossiers) dans des répertoires, un dossier appelé SYSTEM, un dossier appelé PROGRAM FILES, etc. Est-ce que c'est ce qu'est le système ? Juste la disposition des dossiers ?

Et puis j'ai récemment commencé à utiliser Linux, et mon livre de référence dit que dans le système de fichiers Linux, tout part de la racine et se ramifie à partir de là. En quoi est-ce vraiment différent de Windows ? Je veux dire, il semble que le système Linux et le système Windows ne sont que deux façons de configurer un arbre de répertoires. Est-ce que c'est ce que signifie le système de fichiers ?

131voto

Tamara Wijsman Points 56163

Juste la disposition des dossiers?

Ça semble trop beau pour être vrai...

Prenons le système de fichiers FAT32 comme exemple. Je peux installer Windows XP dessus, mais je peux aussi l'utiliser sur une carte mémoire. Sur une carte mémoire, vous n'avez pas ces dossiers que vous récapitulez.

Alors... Ne confondez pas la disposition des répertoires d'une famille de systèmes d'exploitation avec un système de fichiers.

Est-ce cela qu'on entend par un système de fichiers?

Non... Cela fait référence aux bits et octets sous-jacents qui font fonctionner votre structure de répertoire.

Les bits et octets sous-jacents? Montrez-moi le FAT32!

Jetons un œil à quoi ressemble le FAT32, il comprend :

  • Certains secteurs d'en-tête au début, comme l'ID de volume et les secteurs réservés.
  • Deux tables d'allocation de fichiers, nous permettant de savoir où se trouvent nos fichiers.
  • Des clusters contenant toutes nos données de répertoire et de fichiers.
  • Un espace inutilisé très petit que nous ne pouvons pas utiliser.

Une table FAT se compose de nombreuses entrées qui ressemblent à ceci, nous permettant de déterminer où le répertoire ou le fichier est stocké dans l'espace des clusters, ainsi que quelques attributs et la taille.

Une entrée de répertoire pointerait vers une liste d'entrées de répertoire/fichiers...

Dans l'espace des clusters, nous pouvons maintenant parcourir nos clusters pour trouver les données dont nous avons besoin. Un cluster contient essentiellement des données et des informations sur où se trouvent les fragments suivants.

enter image description here

Les autres systèmes de fichiers diffèrent-ils? Montrez-moi NTFS!

Je vais vous montrer une image pour que vous puissiez noter les différences, le reste est un travail d'analyse pour le lecteur: Plus d'informations peuvent être trouvées sur cet archive de blog ou Google.

L'idée principale est que NTFS est une énorme amélioration par rapport à FAT32 qui est plus robuste/efficace. En ayant une meilleure idée de l'espace (non)utilisé en utilisant une carte bit pour aider davantage contre la fragmentation. Et ainsi de suite...

http://thinkdifferent.typepad.com/photos/uncategorized/04ntfsfilesystem.png

Et les systèmes de fichiers sur Linux? Montrez-moi ext2/3!

L'idée est qu'ext2/ext3 utilisent des blocs superposés et des inodes; cela permet des liens symboliques et matériels, des répertoires qui sont des fichiers, des fichiers avec plusieurs noms, etc. L'idée principale est d'abstraire pour permettre au système de fichiers d'être capable de faire plus de choses méta-ish...

http://thinkdifferent.typepad.com/photos/uncategorized/03extfilesystem.png

14voto

afrazier Points 22479

La grande différence entre Linux et Windows, du moins en ce qui concerne leurs systèmes de fichiers et leurs structures de répertoires, est que sous Linux, "tout est un fichier", et tout descend d'une seule racine. Cela s'applique également à presque tous les systèmes d'exploitation dérivés de Unix tels que BSD, OS X, Solaris, etc., mais je vais juste dire "Linux" pour être générique (même si ce n'est pas tout à fait exact).

Mais que cela signifie-t-il en pratique?

Windows permet d'avoir plusieurs racines nommées pour leurs systèmes de fichiers. Vous les comprenez comme des lettres de lecteur: C: D: E: et ainsi de suite. Chacune a une racine (\) et un arbre qui en descend. Les versions récentes de Windows permettent des choses comme les points de montage de volume, où un volume (ce que vous considéreriez comme une partition) peut être monté sur un dossier existant et vide. Ainsi, au lieu de D:\ représentant la racine de, disons, votre lecteur optique (CD/DVD/BR), vous pourriez le monter à C:\Optical à la place. C'est plus similaire à ce que fait Linux. Il y a aussi un espace de noms d'objets sous-jacent à racine unique pour tout dans Windows, similaire à ce que Linux utilise et est géré par le Gestionnaire d'objets, mais la plupart des utilisateurs le voient rarement référencé car il est principalement utilisé par le noyau.

Linux a une racine unique: /. Tout descend d'elle, et cela ne nécessite pas nécessairement de représenter votre disque dur. Disques durs, lecteurs optiques, cartes mémoire, partages réseau, imprimantes, scanners, CPU, RAM, processus, ... tout est représenté quelque part à l'intérieur de cet espace de noms unique, et peut être accessible par n'importe quel processus avec des API de gestion de fichiers standards, en supposant que vous avez un niveau d'accès suffisant. Juste parce que vous pouvez lire ou écrire dessus ne signifie pas que c'est un fichier sur votre disque dur sous Linux. Par exemple, les périphériques sont généralement montés dans /dev, donc accéder à des éléments là-dedans signifie souvent que vous communiquez avec un périphérique - peut-être la carte son, ou un scanner, ou un appareil photo, etc. Ceux-ci sont appelés des fichiers de périphérique. Procfs est un "système de fichiers" spécial normalement monté sur /proc et a un "dossier" pour chaque processus en cours d'exécution, avec des fichiers dans chaque dossier liés à des éléments tels que la ligne de commande utilisée pour invoquer ce processus, les cartes mémoire, les fichiers ouverts, etc. Sysfs est un autre système de fichiers spécial (monté sur /sys) utilisé pour exposer une multitude d'informations sur les objets du noyau en cours d'exécution et peut également être utilisé pour affiner le noyau en cours d'exécution en écrivant simplement dans un fichier particulier.

3voto

choroba Points 17339

Le système de fichiers ne concerne pas seulement la manière dont une arborescence de répertoires est configurée, mais aussi la manière dont ces informations sont codées sur le support. Il existe plusieurs systèmes de fichiers pour Linux : ext3, xfs, raiserfs, etc.

3voto

Joachim Sauer Points 133411

Vous pouvez considérer les systèmes de fichiers comme différents formats de stockage de fichiers et de dossiers, un peu analogues à la façon dont MS Word et PDF sont des formats différents pour stocker des documents, ou MP3 et WAV sont des formats différents pour stocker l'audio.

Étant donné quelques fichiers et dossiers, le système de fichiers est le format et le code qui les stocke sur le disque afin qu'ils puissent être lus à nouveau.

Et tout comme tous les lecteurs vidéo ne peuvent pas lire tous les formats vidéo, tous les systèmes d'exploitation ne peuvent pas lire tous les systèmes de fichiers. Par exemple, si vous stockez un fichier à partir de Linux sur une clé USB formatée en ext3, Windows ne peut pas lire le fichier car il ne sait pas comment gérer le système de fichiers ext3.

Les systèmes de fichiers courants incluent

  • FAT et NTFS (Windows, NTFS est standard sur les versions récentes de Windows)
  • ext3 et ext4 (Linux)
  • HFS plus (OS X)
  • ISO 9660 et UDF (CD, DVD et Blu-Ray)

Voir Wikipedia pour une comparaison des systèmes de fichiers.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X