Systeme de Fichiers Virtuel
Presentation
Objectif principal : Simuler un systeme de fichiers dans un seul fichier binaire. Tu peux creer des dossiers, des fichiers, ecrire dedans, tout comme un vrai FS mais dans un fichier conteneur.
Technologies utilisees : C avec manipulation de fichiers binaires (fseek, fread, fwrite). Structure inspiree de FAT : table d'allocation, blocs de donnees, inodes pour les metadonnees.
Fonctionnalites cles : Commandes mkdir, touch, cat, ls, rm, cd. Arborescence de dossiers. Fichiers jusqu'a plusieurs Mo. Persistence : tout est sauvegarde dans le fichier conteneur.
Livrables attendus : Un programme avec une CLI qui simule les commandes Unix basiques. Un fichier .vfs qui contient tout le systeme de fichiers.
Calendrier previsionnel : Trois semaines. La structure du FS, l'allocation des blocs, la gestion des fragments, c'est complexe.
Parties prenantes & criteres de succes : TP de systemes. Le but c'etait de comprendre comment fonctionne un FS sous le capot.
Le Defi
L'allocation des blocs quand un fichier grandit. Si y'a plus de place contigument, faut fragmenter et chainer les blocs. Et quand on supprime un fichier, faut marquer les blocs comme libres sans tout casser.
La Solution
J'ai fait une FAT (File Allocation Table) ou chaque entree pointe vers le bloc suivant ou indique "fin de fichier" / "libre". Quand je cherche de la place, je parcours la FAT pour trouver des blocs libres. Simple mais ca marche.
Architecture Technique
Header du fichier avec taille des blocs et nombre total. FAT juste apres le header. Puis la zone de donnees divisee en blocs de 4 Ko. Structure Inode avec nom, taille, type (fichier/dossier), premier bloc. Les dossiers sont des fichiers speciaux qui contiennent une liste d'inodes.
Points Cles
- Structure FAT pour l'allocation
- Arborescence de dossiers complete
- Persistance dans un fichier unique
Apercu
Resultats & Apprentissages
Le FS marche bien, on peut vraiment stocker des fichiers et les retrouver. J'ai compris pourquoi les vrais FS sont complexes (journaling, permissions, locks...). La FAT c'est simple mais pas efficient pour les gros disques.
Evolutions Futures
Passer a une structure style ext2 avec des groupes de blocs. Ajouter les permissions (rwx). Un systeme de journaling pour la recuperation apres crash. Peut-etre le monter via FUSE pour l'utiliser comme un vrai FS.