Feb 252010
 

Publication officiel

Voila, fait maintenant 1 moi que nous vous le préparions, cuisiné aux petits oignions : La parution officiel de "Introduction à VFS sous Linux 2.6.30" (Ou ILVFS pour les intimes).

Plus qu'une simple parution sur ce blog, l'article est aussi disponible sur developpez.com, sous une forme plus colorée et peut-être plus agréable à lire.
Le document "Black&White" bien-sur toujours disponible pour les fans.

Je vous invite donc à vous rendre de ce pas consulter l'article et, si vous vous en sentez le courage, donner votre avis sur le forum.

Sur ce, bonne soirée.

Nb: Les plus curieux aurons déjà pu lire le document depuis une petite semaine, et l'avant gout qui était auparavant disponible dans un précédant billet.

Dec 282009
 

Bonsoir,

Vous vous demandez peut-être pourquoi plus un seul article n'a fleuris sur ce blog le long de ce dernier moi? Et bien, c'est tout simplement que j'ai commencer la rédaction d'un long - très long.... trop long! - document relatif au fonctionnement de la couche VFS de linux. Actuellement, je suis bien loin d'avoir rédiger la moitier de ce document, cherchant a illustrer mes dires de schéma et de code, à vérifier l'exactitude des informations que j'ai pus recueillir, la simple introduction que constituent les chapitres 1 et 2 m'ont prit énormément de temps. J'espère que toute fois ils vous paraitrons aussi claire qu'ils le sont pour moi, et que les multiples illustrations vous seront utile pour mieux visualiser les mécanismes mis en jeux.

Mais qu'est ce que VFS?

Peut-être que certains d'entre vous ont manquer mon engouement récent à l'écriture d'un file-système et les articles relatifs, aussi je me dois au moins d'expliquer succinctement ce dont il est ici question.

VFS, pour Virtual File System(Système de fichier Virtuel) est une couche d'abstraction fournis par le kernel linux affin de développer aisément des drivers qui ont a manipuler des fichier. C'est en fait très dépendant de l'architecture "tout fichier" de linux. Via vfs, il est en effet possible avec un simple éditeur de texte de modifier des données stoker sur un disque, mais aussi de modifier la configuration du processeur (il est ici question du fameux file-système /proc, qui ne correspond a aucun fichier physique, et que l'on qualifie donc de virtuel).

Ce document présente donc les bases de VFS nécessaire au développement d'un driver de filesystème, qu'il soit virtuel ou bien associer a un driver de block.

Les chapitres 1 et 2

En fait, les seuls chapitre présent sont une introduction à ce qu'est VFS et quelques détailles sur des mécanismes qui ne sont pas directement lier a son utilisation. Ainsi, le cœur du problème (manipulation des ad-spaces, structures de pointeurs de fonctions, impémentation de lookup et readdir, etc...) n'y figure pas. Ne soyez donc pas trop exigent de ces premiers chapitre et soyez sur que le contenue deviendras plus technique et ciblé dans les chapitres suivant.

Sur ce,

Je vous laisse le lien vers ces premiers chapitres : vfs_01.pdf

Nov 162009
 

Bonjour,

Et bien, voici enfin la dernière release des specs de SFS, qui s'avère complète.

Plus qu'une simple specs, il s'agit d'une initiation a la structure d'un filesystem. Voici donc un bref résumé.

Inode Table

La table des inodes, où sont stocker toute les métadonnées des fichiers. On trouveras les valeurs particulières correspondant au mode ainsi que divers détaille sur son allocation etc...

Directories

La structure des dossiers, qui permettent de stocker des noms de fichier de taille variable et leur lien avec les inodes. La pluspart des filesystem sont construit sur le même modelé mais avec des noms de fichier a taille fixe.

Bref, sans plus attendre, voici le pdf : sfs.pdf

Nov 102009
 

Bonsoir,

Comme promis, je publie ce soir ces quelques pages fraichement rédigées, agrémentées de deux schémas dont je suis plutôt fier, car représentatifs à la fois des données physiquement présentes (de simples bits), et de toute la portée sémantique qui leurs sont associé.

Un petit résumé sur les :

Inode/Block BitMap

Comme leurs nom l'indiquent, et on ne le répètera jamais assez, ce sont de simples cartes où chaque inode/block est représenté par un bit, actif ou inactif selon si l'inode ou le block est actif/inactif. Le bit n est associé au block/inode n. La forte quantité d'informations stockée dans peut d'espace permet une recherche rapide du prochain block/inode libre et est donc capital pour ne pas dégrader les performances.

SFS? Pas seulement!

Le concept de bitmap n'est pas nouveau, ni déprécié. Il était déjà employé dans minix et on le retrouve dans ext2/ext3 qui sont, pour ceux qui l'ignorerai encore, les systèmes de fichier de prédilection des distributions linux. (A vrais dire, a part cramfs, qui sert à monter une image en lecture d'une archive compressée, je ne connais pas de filesystem sans bitmap)

Je vous remet donc,  la seconde révision des specs de SFS : SFS.pdf

Nov 082009
 

Bonsoir,

Cela fait maintenant plus d'un mois que je dissimule a la plupart d'entre vous, lecteur, le projet sur le quel je concentre toute mon attention depuis septembre.

Ce projet, est un projet plain de rebond, et je crains avoir a plusieurs reprise sous estimer le travaille nécessaire. Je suis toute fois heureux de vous annoncer que je suis en possession d'une implémentation qui, bien qu'instable, s'avère déjà partiellement fonctionnelle.

Je travaille actuellement sur un FileSystem et son implémentation dans le kernel Linux. Plus qu'un system de fichier, SFS seras avant tout un exemple claire et concis de filesystem, une sorte de journal de bord d'un voyageur qui tenta de traverser la jungle des filesystem et qui du affronter les plantes carnivores mangeuses d'inodes, les dangereux marais aux mémoires mouvantes, les lianes empoisonnés des dentries... bref, un périple qui pourrais presque donner lieux à une nouvelle.

Mais commençons par l'origine, le point de départ de ce projet, qui bien que n'aillant jusque la jamais été rédiger, est rester a chaque instant dans mon esprit :

Qu'est ce que SFS?

Simple File System : Simple système de fichier.

SFS se veut une implémentation d'un système de fichier élémentaire, baser sur une logique simple, une approche simpliste dans le but de réduire un maximum la complexité de l'implémentation pour une meilleur compréhension des couches d'abstraction du kernel linux.

Ainsi, il est de mon devoir, avant de publier une quelconque implémentation, d'établir les Specs de ce filesystem.

Le SuperBlock

Mais il y a tellement a dire, tellement de détaille indispensable a la bonne compréhension d'un filesystem. Tellement que je ne peux tout ecrire en une soirée. Alors, je vous propose le premiers chapitre des Specs de SFS : Le SuperBlock. C'est très certainement le plus court de tous les chapitres, étant donner que - selon moi - le superblock est au filesystem ce qu'est le préface à un roman.

Voici donc la première révision des specs de SFS : SFS.pdf

Je suis ouvert a tout commentaire :)