procfs: process file system
Principe
procfs (process file system), accessible sous le répertoire /proc
, est un
pseudo-système de fichiers, créé sous Linux pour accéder, au moyen
d’utilitaires très simple, tels que ls
, cat
ou echo
, aux informations du
noyau. Par exemple :
cat /proc/devices
: retourne la liste des pilotes installés, le type et le major numbercat /proc/modules
: retourne la liste des modules installés dans le noyau
Les pilotes désirant échanger des données avec des applications, le font
simplement en exportant des fichiers virtuels sous /proc
. Ceux-ci permettent
l’échange de ces informations sous forme ASCII.
Cependant aujourd’hui, il est plutôt recommandé d’implémenter cette
fonctionnalité sous sysfs
que sous procfs
.
Méthodes d’accès et leur installation
Au niveau du noyau, l’interface
<linux/proc_fs.h>
offre une série de méthodes permettant au pilote d’instancier des méthodes de lecture et d’écriture.
Depuis la version 3.10 du noyau, procfs utilise les fops
employés par les
méthodes d’accès aux pilotes de périphériques devront être utilisées.
Pour installer les méthodes d’accès dans procfs, on utilisera la fonction
proc_create
:
struct proc_dir_entry *proc_create (const char *name, mode_t mode,
struct proc_dir_entry *parent, struct proc_ops *fops);
Si l’on désire créer des sous-répertoires, on utilisera la méthode
proc_mkdir
:
struct proc_dir_entry *proc_mkdir (const char *name,
struct proc_dir_entry *parent);
Pour éliminer une entrée dans procfs, on utilisera la méthode remove_proc_entry
:
void remove_proc_entry (const char *name,
struct proc_dir_entry *parent);