Procfs
EN CHANTIER
Article en cours d'écriture et/ou de test. Certains éléments peuvent être incomplets et mener à un résultat non fonctionnel.Merci de ne pas rager.
INFORMATION
Une grande partie des informations de cette page provient des sites cités en source. Ce document en regroupe les éléments qui m’intéresse. Aussi, je vous invites à aller jeter un œil aux sites de référence en bas de page.Procfs est un système de fichier virtuel mettant à disposition de l'utilisateur des informations sur le système sous forme de fichiers dans le répertoire /proc
. Il regroupe par exemple la mémoire système, les périphériques montés, la configuration matérielle, etc..
Il peut être considéré comme un centre de contrôle et d’information pour le noyau. En fait, de nombreux utilitaires système ne sont que des appels aux fichiers de ce répertoire. Par exemple, lsmod
est identique à cat /proc/modules
, tandis que lspci
est un synonyme de cat /proc/pci
.
En modifiant les fichiers situés dans ce répertoire, vous pouvez même changer les paramètres du noyau (directement ou via sysctl
) pendant l’exécution du système.
Description
Bien que la plupart des fichiers exposés par procfs soient en lecture seule, quelques uns permettent tout de même la modification de variables du noyau.
l'arborescence de /proc
est la suivante:
/proc/[nombre]
Chaque processus en cours fait l'objet d'un répertoire portant son PID comme nom (d'où le "[nombre]"). Chaque sous-répertoire contient les pseudo-fichiers et pseudo-répertoires suivants:
- /proc/[nombre]/cmdline: Ce fichier contient la ligne de commande complète du processus. Les arguments de la ligne de commande apparaissent comme un ensemble de chaînes séparées de caractères NUL, avec un octet NUL supplémentaire après le dernier argument. Il conviendra alors de convertir cet octet en espace pour pouvoir exploiter le résultat sans galérer:
cat cmdline | tr "\000" " "
. - /proc/[nombre]/cwd: (Current Working Directory) il s’agit d’un lien sur le répertoire de travail courant du processus.