Closed MaximeCheramy closed 12 years ago
Je suis tombé sur cet article : http://www.fsl.cs.sunysb.edu/docs/zen/zen.html C'est je pense plutôt intéressant pour avoir une vue d'ensemble (j'ai juste survolé). Je pense que pour le VFS, le plus simple serait une architecture semblable à celle de Linux (sans trop coller à leur système d'inode/dentry quand même).
Un avis ?
Alors je me demandais :
On fait une liste de file_system_t, sachant qu'un file_system_t contiendrait :
La fonction mount créerait alors une instance de fs (fs_instance_t) avec :
Une liste dans le VFS avec les fs_instance_t qu'on a créé par montage :
Exemple concret : sys_open("/tacos/doc.txt")
sys_write va simplement faire un ofd->write(ofd, ) comme actuellement. Aucun changement donc.
L'idée c'est que le répertoire racine serait alors une liste de points de montage et on ne pourrait monter qu'à cet endroit là. L'avantage c'est que c'est simple à faire et qu'on recopie pas bêtement les structures de linux en les comprenant qu'à moitié. On aura besoin d'un fs tel que devfs au passage.
J'ai un début de VFS, c'est incomplet et j'ai des warnings donc je push pas, je continue dans le weekend. Par contre il faudrait aussi déplacer floppy dans driver pour que je puisse monter le FAT avec son device (pour l'instant j'ai remis en dur dans fat.c les pointeurs de floppy_read et floppy_write).
En tout cas, le mount / open / read semble marcher puisque j'arrive à lancer mishell.
En particulier pour gérer les fichiers spéciaux. Mais la première étape est surtout la réflexion à ce sujet, et le but de ce ticket est surtout de créer un point de départ.
Ancien ticket : https://www.etud.insa-toulouse.fr/redmine/issues/30