Meilleure réponse
En bref
Chaque système de fichiers a un superbloc, qui contient des informations sur le système de fichiers telles que:
- Type de système de fichiers
- Taille
- Statut
- Informations sur d’autres structures de métadonnées
En détail
Le superbloc est une structure qui représente un système de fichiers. Il comprend les informations nécessaires pour gérer le système de fichiers pendant le fonctionnement. Il comprend le nom du système de fichiers (tel que ext4), la taille du système de fichiers et son état, une référence au périphérique bloc et des informations de métadonnées (telles que des listes libres, etc.). Le superbloc est généralement stocké sur le support de stockage mais peut être créé en temps réel sil nen existe pas. Vous pouvez trouver la structure du superbloc dans ./linux/include/linux/fs.h.
One Lélément important du superbloc est une définition des opérations du superbloc. Cette structure définit lensemble des fonctions de gestion des inodes au sein du système de fichiers. Par exemple, les inodes peuvent être alloués avec alloc\_inode
ou supprimés avec destroy\_inode
. Vous pouvez lire et écrire des inodes avec read\_inode
et write\_inode
ou synchroniser le fichier système avec sync\_fs
. Vous pouvez trouver la structure super\_operations
dans ./linux/include/linux/fs.h. Chaque système de fichiers fournit son propres méthodes dinode, qui implémentent les opérations et fournissent labstraction commune à la couche VFS.
Structure physique
La structure physique des systèmes de fichiers Ext2 a été fortement influencée par la disposition du système de fichiers BSD. Un système de fichiers est composé de groupes de blocs. Les groupes de blocs sont analogues aux groupes de cylindres de BSD FFS. Cependant, les groupes de blocs ne sont pas liés à la disposition physique des blocs sur le disque, car les lecteurs modernes ont tendance à être optimisés pour un accès séquentiel et cachent leur géométrie physique au système dexploitation.
,---------+---------+---------+---------+---------,
| Boot | Block | Block | ... | Block |
| sector | group 1 | group 2 | | group n |
`---------+---------+---------+---------+---------"
Chaque groupe de blocs contient une copie redondante des informations cruciales de contrôle du système de fichiers (superbloc et le système de fichiers descripteurs) et contient également une partie du système de fichiers (un bitmap de bloc, un bitmap dinode, un morceau de la table dinode et des blocs de données). La structure dun groupe de blocs est représentée dans ce tableau:
,---------+---------+---------+---------+---------+---------,
| Super | FS | Block | Inode | Inode | Data |
| block | desc. | bitmap | bitmap | table | blocks |
`---------+---------+---------+---------+---------+---------"
Lutilisation de groupes de blocs est une grande victoire en termes de fiabilité: puisque les structures de contrôle sont répliquées dans chaque groupe de blocs, il est e asy pour récupérer à partir dun système de fichiers où le superbloc a été corrompu. Cette structure permet également d’obtenir de bonnes performances: en réduisant la distance entre la table des inodes et les blocs de données, il est possible de réduire la recherche de la tête de disque lors des E / S sur fichiers.
Référence: – Systèmes de fichiers étendus (Ext, Ext2, Ext3)
Réponse
Les systèmes de fichiers sous Linux fonctionnent à plusieurs niveaux: A) a ensemble de routines primitives pour interagir avec le périphérique (cest-à-dire le pilote), B) un ensemble de enregistrements sur le disque correspondant à ce que nous appelons les fichiers, et C) informations de métadonnées sur chaque fichier qui sont appelées inodes, il y a 1 inode pour chaque fichier. Ces inodes suivent des éléments tels que les attributs de votre fichier, la façon dont la lecture / écriture de vos fichiers est définie, etc.
Il s’avère que ce n’est qu’une image incomplète. C’est avant que chaque type de système de fichiers puisse choisir d’organiser ses inodes comme bon lui semble sur le disque. « 9a99dba39a »> view le VFS est fourni avec des structures dinœuds daccord. Ainsi, Linux ne sait pas en soi comment accéder aux fichiers / inodes individuels dun système de fichiers.
Le problème est traité avec précision par lutilisation de la struct file\_system et de la structure types de super\_bloc . Ce dernier vit sur le disque tandis que le premier ne vit que dans la mémoire. Lorsque vous montez un système de fichiers en utilisant say,
mount -t ext4 / dev / usb1 / mnt / usb1
lobjet file\_system définissant le type ext4 contient un mount () routine qui spécifie comment lire lobjet superbloc du disque. Cet objet superbloc spécifie tout ce dont vous avez besoin pour accéder (allouer, supprimer, lire, corriger, synchroniser entre lappareil et la mémoire, etc.) les inodes de lappareil.Une fois que cet objet superbloc est récupéré en mémoire, nous utilisons ses opérations lookup () pour lire les inodes du disque en mémoire. Ensuite, nous utilisons ces inodes à leur tour pour accéder aux systèmes de fichiers. Cest hiérarchique, vraiment, et plutôt bien!