IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Introduction à Virtual File System

Exemples en C sous Linux 2.6.30


précédentsommairesuivant

I. Avant-Propos

I-A. Terminologie

Tout au long de cet article, vous verrez apparaître des termes anglais, que je me refuse à traduire. Ils sont en effet tellement usités dans le milieu du développement kernel qu'il serait mal venu de les ignorer, ou de se priver de leur usage pour une traduction parfois floue et approximative. Ils seront donc traduits lors de leur première apparition (vous trouverez le terme francophone, dans les rares cas où il existe) puis utilisés comme de simples noms entrés dans la langue française, ou plus exactement, dans la longue liste de termes qu'emploie un développeur.

I-B. Pré-requis

Avant de lire ce document, il est fortement conseillé d'avoir de solides bases en C. En effet, les lignes de codes citées ne seront présentes qu'à titre d'exemple afin d'illustrer les propos qui s'y rapportent et aucun commentaire ne sera fait sur le comportement évident de ces dernières. Je rajouterais qu'une connaissance du monde UNIX et plus généralement de tout ce qui se rapporte au développement kernel peut faciliter la lecture de ce document. Les personnes ayant déjà expérimenté le développement en kernel-land souhaiteront certainement passer au chapitre suivant.

I-C. Kernel

Image non disponible
Place du kernel (Noyau) dans un ordinateur

Un système d'exploitation de type UNIX, dont fait partie Linux, est composé d'un ensemble d'applications ainsi que d'un élément central, que l'on nomme noyau. Les différents éléments constitutifs d'un système GNU/LINUX sont agencés et pré-configurés afin de former une distribution.

Ici, nous nous intéresserons particulièrement à une partie de ce noyau, le VFS.

Le noyau est l'ensemble du code d'un système d'exploitation qui a la tâche de gérer les différents processus devant s'exécuter simultanément, les droits utilisateur et administrateur, ainsi que la coordination des périphériques et les échanges de données entre ces derniers et les applications. Il fournit la couche d'abstraction nécessaire aux applications afin de s'exécuter indépendamment du matériel utilisé.

I-D. Drivers et modules

Image non disponible
Place des drivers (Pilotes) et modules, ainsi que du kernel (Noyau) dans un OS (Système d'Exploitation)

Une partie du code qui constitue le noyau peut être subdivisée en petits éléments, que l'on nomme modules (ou drivers dans le cas où leur tâche est de contrôler un périphérique matériel). Ces derniers sont caractérisés par leur fonction spécifique qui leur est propre et qui n'est pas directement liée aux tâches centrales du kernel. Ainsi, on retrouve dans cette catégorie tout ce qui se rapporte au contrôle des composants d'un ordinateur, c'est-à-dire les pilotes (drivers) de périphériques.

On citera pour exemple le contrôle du disque dur, mais aussi la réception des interruptions générées lors d'une frappe au clavier.

L'existence de drivers, qui peuvent être séparés du noyau et compilés séparément sous forme modulaire, est justifiée par leur fonction de "couche d'abstraction" entre le kernel et le code de contrôle des périphériques.

Certaines communautés préfèrent réserver l'appellation « driver » aux pilotes de périphérique, et nommer module ce que l'on pourrait qualifier de « driver software ». Mais un module peut parfaitement être, soit compilé avec le noyau, soit compilé sous forme modulaire (figurant alors dans /lib/modules/<kernel version>)

On trouve aussi parmi les modules, les implémentations d'algorithmes de cryptographie pour des raisons de performance, et enfin, sujet qui nous intéresse tout particulièrement, les drivers/modules de filesystem. Ces derniers sont l'implémentation d'un algorithme permettant de stocker une hiérarchie de fichiers sur un support, et résultent chacun du choix d'une représentation physique différente.


précédentsommairesuivant

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2010 Jérémy Cochoy. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.