Scheda di revisione: Introduction aux systèmes de fichiers et stockage

📋 Plan du Cours

  1. Supports de stockage et blocs
  2. Systèmes de fichiers et partitions
  3. MBR et table GPT
  4. Superbloc et inodes
  5. Répertoires et gestion de l’espace
  6. Journaling et fonctions avancées
  7. VFS, descripteurs et ioctl

📖 1. Supports de stockage et blocs

🔑 Notions clés & Définitions

  • Stockage secondaire : Le stockage secondaire regroupe les supports non volatils destinés à conserver les données au-delà du programme en cours.
  • Bloc (block device) : Un support de type bloc est découpé en blocs de taille fixe, adressés via une adresse logique de bloc.
  • LBA (Logical Block Address) : LBA est l’identifiant numérique utilisé pour demander au système quel bloc du périphérique doit être lu ou écrit.
  • Accès séquentiel : L’accès séquentiel lit les données dans l’ordre, ce qui est souvent préférable sur disque à l’accès aléatoire.

📝 Points essentiels

  • Les dispositifs modernes sont classiquement classés en mémoire volatile ou non volatile, et en stockage primaire/secondaire/tertiaire selon le rôle.
  • Sur disque, déplacer le bras vers le cylindre voulu impose un coût (seek time) et la lecture séquentielle réduit les déplacements.
  • Les SSD/NVM offrent un accès rapide et surtout un avantage en aléatoire grâce à l’électronique au lieu d’un mouvement mécanique.
  • En stockage bloc, le noyau ne parle pas directement au matériel : il envoie des ordres au contrôleur via la couche d’abstraction bloc.

💡 Astuce mémo

Accès disque : Seek time pénalise le saut; séquentiel = moins de “trajets” du bras.

📖 2. Systèmes de fichiers et partitions

🔑 Notions clés & Définitions

  • Système de fichiers : Un système de fichiers est la méthode et la structure de données qui organisent des fichiers et répertoires sur un stockage secondaire.
  • Partition : Une partition est une portion de disque pouvant contenir un système de fichiers, décrite par sa position et sa taille sur le support.
  • BIOS/EFI : BIOS et EFI sont des firmwares qui influencent le format et le type de structures de démarrage utilisées sur la machine.
  • Systèmes de fichiers multiples : Plusieurs systèmes de fichiers peuvent coexister sur une même machine grâce au partitionnement du disque.

📝 Points essentiels

  • Une partition indique au minimum une localisation (start LBA) et une taille (en blocs du disque), plus le type de système de fichiers.
  • Le partitionnement permet d’héberger plusieurs systèmes de fichiers sur un même disque physique.
  • Les structures de boot et les formats de table (MBR ou GPT) dépendent du firmware présent sur la machine (BIOS ou EFI).

💡 Astuce mémo

Partition = “paquet du disque” contenant un FS, la table décrit où commence et combien de blocs il occupe.

📖 3. MBR et table GPT

🔑 Notions clés & Définitions

  • MBR (Master Boot Record) : Le MBR est un format de secteur de démarrage hérité, chargé par le BIOS et contenant des informations de lancement et de partitionnement.
  • GPT (GUID Partition Table) : La table GPT est un format moderne de partitionnement utilisé avec les firmwares EFI, basé sur des entrées répétées pour robustesse.
  • Entrées de partitions (GPT) : Les entrées GPT décrivent jusqu’à un certain nombre de partitions distinctes et permettent de booter avec l’EFI System Partition.
  • ESP (EFI System Partition) : L’ESP est une partition dédiée au démarrage EFI, permettant de charger des binaires complets dans l’environnement EFI.

📝 Points essentiels

  • Le MBR utilise le premier secteur du disque de 512 octets, chargé par le BIOS, avec une routine de boot (bootloader).
  • Le MBR contient une table de 4 entrées de partitions primaires et la taille max d’une partition indiquée est de 2 TiB (232 × 512 bytes).
  • Les partitions étendues en MBR fournissent un pointeur vers une autre table de partitions.
  • La GPT avec EFI peut aller jusqu’à 128 entrées et utilise des tables dupliquées pour augmenter la robustesse.
  • La taille max de l’ESP (GPT) mentionnée est de 8 ZiB.

💡 Astuce mémo

MBR = 512 bytes + 4 entrées; GPT = jusqu’à 128 entrées + duplication.

📖 4. Superbloc et inodes

🔑 Notions clés & Définitions

  • Superbloc : Le superbloc est la métadonnée centrale d’un système de fichiers, décrivant des paramètres globaux comme tailles et état.
  • Inode : Un inode est le bloc de contrôle d’un fichier sous Linux qui stocke les métadonnées liées au contenu et aux droits.
  • Réservation des inodes : L’espace destiné aux inodes est alloué dès la création du système de fichiers, avant l’usage réel des fichiers.
  • Noms de fichiers : Les noms ne sont pas portés par l’inode mais par les entrées de répertoire qui relient un nom à un inode.

📝 Points essentiels

  • Le superbloc contient notamment la taille, la taille de bloc, le nombre de blocs libres, l’état et l’entrée du répertoire racine.
  • Si le superbloc est corrompu, le système de fichiers devient inutilisable, d’où sa duplication sur le disque.
  • Un inode stocke des informations comme les temps (access, write, create), ACLs, propriétaire, groupe et la taille du fichier.
  • Un inode ne contient pas de noms : ce sont les répertoires qui font le lien nom ↔ inode.

💡 Astuce mémo

Inode = “contrôle du fichier”; Répertoire = “nom du fichier”.

📖 5. Répertoires et gestion de l’espace

🔑 Notions clés & Définitions

  • Répertoire : Un répertoire associe des noms de fichiers à des inodes et sert de structure d’organisation sur le système de fichiers.
  • Entrées de répertoire : Les entrées de répertoire sont les éléments stockés dans les données du répertoire et elles contiennent le lien vers un inode.
  • Lien fort (hard link) : Un hard link crée plusieurs entrées de répertoire pointant vers le même inode.
  • Lien symbolique (symbolic link) : Un lien symbolique représente une référence de nom particulière créée avec une variante de commande de lien, distincte d’un inode partagé.

📝 Points essentiels

  • Les répertoires peuvent utiliser une liste linéaire (recherche lente), ou une table de hachage (rapide mais difficulté d’ajuster la taille).
  • Les répertoires sont eux-mêmes des fichiers : ils possèdent un inode, et leurs entrées sont dans leurs données fichier.
  • Le cours montre hard/symbolic links via ln ou ln -s et la comparaison d’inodes via ls -il et stat.
  • La liste d’espace libre peut être un bit vector (lent à grande échelle) ou une liste chaînée pour obtenir rapidement le premier bloc libre.
  • Pour de grosses allocations, on regroupe des blocs libres ou on utilise un compteur sur des liens pour des blocs contigus libres.

💡 Astuce mémo

Nom ↔ inode : répertoire; Espace libre ↔ choix structure (bit vector vs liste vs regroupement).

📖 6. Journaling et fonctions avancées

🔑 Notions clés & Définitions

  • Journaling : Le journaling enregistre les modifications des métadonnées dans un journal pour faciliter une récupération rapide après crash.
  • Transaction non finie : Une transaction incomplète pendant un crash correspond à des changements notés dans le journal mais pas finalisés dans la structure réelle.
  • Copy-on-write : Le copy-on-write met à jour en dupliquant lors des modifications afin de permettre des fonctionnalités comme instantanés.
  • Checksum (vérification d’intégrité) : Le checksum calcule une valeur de contrôle pour détecter des corruptions et garantir l’intégrité des données.

📝 Points essentiels

  • Après un crash, le système de fichiers peut être reconstitué en s’appuyant sur un journal pour rejouer les métadonnées.
  • Avec journaling, les modifications de métadonnées sont écrites dans le log, puis rejouées dans les structures réelles et marquées terminées.
  • Le mécanisme implique de rejouer les transactions après crash pour terminer ce qui était incomplet.
  • Des systèmes comme ZFS ou btrfs vont vers la gestion de volumes avec logical volumes, checksum, copy-on-write et snapshotting, et du RAID logiciel.

💡 Astuce mémo

Journaling = “log des métadonnées” puis “replay” après crash.

📖 7. VFS, descripteurs et ioctl

🔑 Notions clés & Définitions

  • VFS (Virtual Filesystem) : Le VFS est un niveau d’abstraction du noyau qui traite divers objets comme des objets de type fichier.
  • Descripteur de fichier : Un descripteur de fichier est un identifiant entier, propre à chaque processus, indexant une table d’objets ouverts dans le noyau.
  • Table de descripteurs : La file descriptor table d’un processus contient des entrées reliant l’identifiant utilisateur à l’objet ouvert et à ses opérations.
  • ioctl(2) : ioctl(2) est un appel système permettant d’exécuter des commandes spécifiques dépendant du type de fichier et du pilote.

📝 Points essentiels

  • Le VFS abstrait les fichiers réels, sockets Unix, tubes nommés, périphériques char et block, partitions et interfaces noyau comme sysfs/procfs.
  • Chaque processus possède sa propre file descriptor table, et les appels comme read(2) et seek(2) sont liés aux opérations de l’objet.
  • L’entrée de descripteur pointe vers un enregistrement noyau de l’objet ouvert, incluant des fonctions de lecture/écriture, sélection et ioctl.
  • L’objet ioctl(2) correspond à un appel “fourre-tout” dont les commandes disponibles dépendent du fichier et du pilote sous-jacent.
  • Le device mapper permet des mappings logique→physique et sert de base à LVM, dm-crypt et au RAID logiciel.

💡 Astuce mémo

VFS : tout devient “fichier”; fd table : fd → entrée noyau; ioctl : commandes spéciales au pilote.

📊 Tableaux de synthèse

MBR vs GPT

CaractéristiqueMBRGPT
Format de bootSecteur de tête du disque (512 bytes) chargé par le BIOSFormat moderne pour EFI, utilisé avec les firmwares EFI
Entrées de partitions4 entrées primairesJusqu’à 128 entrées
RobustesseTable uniqueTables dupliquées pour robustesse
Démarrage EFIPas d’ESPBoot possible via l’EFI System Partition (ESP)

⚠️ Pièges & confusions fréquents

  1. Confondre bloc LBA et inode : LBA adresse des blocs sur un périphérique, tandis qu’un inode décrit un fichier au niveau métadonnées.
  2. Croire que l’inode contient les noms : un inode ne stocke pas de noms, ce sont les répertoires et leurs entrées qui font le lien.
  3. Mélanger MBR et GPT : MBR est associé au BIOS et au secteur 512 bytes, GPT est associé à EFI et à un modèle d’entrées plus large.
  4. Penser que le journaling concerne seulement le contenu : le cours précise qu’il écrit les modifications de métadonnées dans le journal pour rejouer après crash.
  5. Oublier que le VFS abstrait aussi les périphériques et interfaces noyau : ce n’est pas uniquement pour des fichiers “classiques”.
  6. Interpréter un descripteur comme l’objet lui-même : c’est un index dans la table du processus qui pointe vers un enregistrement noyau.

✅ Checklist Examen

  1. Savoir ce qu’est un stockage secondaire et pourquoi un accès séquentiel est souvent préférable sur disque mécanique.
  2. Décrire le modèle des block devices : blocs de taille fixe, utilisation de LBA et rôle de la couche bloc et du contrôleur.
  3. Expliquer le rôle d’un système de fichiers pour organiser fichiers et répertoires sur le stockage secondaire.
  4. Citer les informations portées par une partition (start LBA, taille en blocs, type de système de fichiers) et son lien avec BIOS/EFI.
  5. Donner les caractéristiques chiffrées du MBR : premier secteur 512 bytes, 4 entrées primaires et taille max 2 TiB via 232 × 512 bytes.
  6. Donner les caractéristiques de la GPT : jusqu’à 128 entrées, tables dupliquées, utilisation EFI et boot via l’ESP avec taille max 8 ZiB.
  7. Rappeler ce que contient un superbloc et pourquoi sa corruption rend le système illisible, ainsi que l’idée de sa duplication.
  8. Définir l’inode et lister ce qu’il mémorise (temps, ACLs, owner/group, taille) et rappeler qu’il ne contient pas les noms de fichiers.
  9. Expliquer comment les répertoires relient des noms à des inodes, comparer liste linéaire vs table de hachage, et rappeler que les répertoires sont des fichiers avec un inode.
  10. Décrire les options du cours pour la liste d’espace libre (bit vector, liste chaînée, regroupement, comptage) et à quoi elles servent pour l’allocation.
  11. Expliquer le principe du journaling : journal des métadonnées, replay après crash, marquage des transactions terminées.
  12. Décrire en une phrase les fonctions avancées citées pour ZFS/btrfs : logical volumes, checksum, copy-on-write et snapshotting, et RAID logiciel.
  13. Décrire le VFS : abstraction d’objets de type fichier (dont sysfs/procfs, sockets, pipes, devices) et rôle de montage sur VFS.
  14. Expliquer la chaîne des descripteurs : file descriptor table par processus, fd indexant les opérations, et lien vers l’enregistrement noyau open-file.

Metti alla prova le tue conoscenze

Metti alla prova le tue conoscenze su Introduction aux systèmes de fichiers et stockage con 14 domande a scelta multipla con correzioni dettagliate.

1. Quel est le rôle principal du journaling dans un système de fichiers ?

2. Quel rôle joue un inode sous Linux ?

Fai il quiz →

Ripassa con le flashcard

Memorizza i concetti chiave di Introduction aux systèmes de fichiers et stockage con 14 flashcard interattive.

Supports de stockage — définition ?

Supports non volatils pour conserver données.

Bloc — rôle ?

Unité de lecture/écriture fixe sur un support.

LBA — signification ?

Adresse logique du bloc sur le périphérique.

Vedi le flashcard →

Similar courses

Crea le tue schede di revisione

Importa il tuo corso e l'AI genera schede, quiz e flashcard in 30 secondi.

Generatore di schede