Skip to topic | Skip to bottom
Home
Minfo05
Minfo05.TpAsySeance10r1.2 - 03 Dec 2005 - 22:08 - OlivierDalletopic end

Start of topic | Skip to actions

Approfondissement Système - TP10

Un système de fichiers minimal

L'objectif de cet exercice est de faire un module qui implémente un nouveau système de fichiers. Ce système de fichier doit faire le struct minimum, autrement dit rien du tout (ou presque) :
  • Il faut pouvoir monter et démonter le nouveau SF
  • La racine de ce SF ne contient aucun fichier, excepté "." et ".."
    • Il faut donc implémenter une fonction lookup() minimale afin de retourner le contenu de la racine. Cette fonction lookup() retourne toujours la même chose : un fichier de nom "." associé à l'inode 1, et un fichier de nom ".." associé lui aussi à l'inode 1.
    • La fonction read_inode() du super_block ne sait répondre qu'à une seule demande : retrouver (fabriquer) l'inode de numéro 1. Attention, cette fonction doit fabriquer l'inode toute pièces. Il faudra donc inventer des permissions, un propriétaire, un type (répertoire), etc.
  • Le répertoire racine ne permet ni la création de fichiers, ni celle de répertoire. Pour cela il suffit de faire en sorte que les opérations correspondantes de l'inode numéro 1 retournent systématiquement une erreur.

Testez le bon fonctionnement de votre FS avec la commande ls -al sur son point de montage. Tester aussi que mkdir/rmdir y échouent bien comme prévu.

NEW Correction :

Un système de fichier hello-world

Modifiez le SF précédent de telle façon qu'il contienne un 3e fichier (en plus de "." et ".."). Ce fichier, régulier, devra s'appeller "hello", être lisible pour tous et avoir 1000 comme numéro d'inode. Comme pour un périphérique caractère, vous ferez en sorte que sa méthode read() retourne le message "hello world" au processus appelant. D'où vient ce fichier ? De nulle part, comme pour "." et "..", vous devrez le fabriquer de toute pièces :
  • C'est la fonction lookup() de l'inode de la racine qui retourne (invente) une 3e entrée de répertoire associant "hello" à l'inode de numéro 1000 ;
  • C'est la fonction read_inode() du super_block qui fabrique l'inode à la volée, et surtout, lui associe la structure file_operations contenant la fonction read() surchargée.

Testez votre système de fichiers ... exotique !

-- OlivierDalle - 28 Nov 2005
to top

I Attachment sort Action Size Date Who Comment
Makefile manage 1.2 K 03 Dec 2005 - 22:05 OlivierDalle Makefile (Correction ex1)
fsmin.c manage 8.4 K 03 Dec 2005 - 22:20 OlivierDalle Source module (correction ex1)
generic_mod.h manage 2.2 K 03 Dec 2005 - 22:06 OlivierDalle include generique (corr. ex1)

You are here: Minfo05 > ApprofondissementSysteme > TpAsySeance10

to top

Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WIKIDeptinfo? Send feedback