-
Notifications
You must be signed in to change notification settings - Fork 4
Procfs
ProcFS ( pour Process File System) est comme son nom l’indique un système de fichiers permettant d’accéder aux données relatives aux processus, et ce depuis l’espace utilisateur. ProcFS n’est pour le moment qu’une version très simplifiée, et ne permet que d’accéder qu’au nom d’un processus, à son PPID, ainsi qu’à son état. Il serait bien dans le futur d’accéder à plus d’informations, comme l’utilisation mémoire et CPU, ou aux file descriptors
1 – Arborescence de ProcFS
L’arborescence du ProcFS est simple. On trouve à sa racine liste de répertoires, chaque nom de répertoire représentant le PID d’un processus.
Dans chacun de ses répertoires, on trouve une liste de fichier, chaque fichier “contenant” une propriété du processus.
On obtiens donc le path suivant:
/PID/property
2 – Ajouter des informations
Pour ajouter une information à celles que l’on peut obtenir par le ProcFS, on dispose de la structure
typedef struct {
char* filename;
size_t (*read)(open_file_descriptor *,void*, size_t);
}procfs_file_t;
Pour chaque propriété que l’on veut pouvoir lire, il faut fournir au FS une instance de cette structure, c’est à dire un couple comprenant un nom de fichier tel qu’il apparaîtra dans le FS, et un reader qui sera appelé à la lecture du fichier
Ces couples sont ajoutés à un tableau dont ProcFS se servira pour déterminer la liste des fichiers présents dans chaque répertoire.