Chapitre 2. Le système de fichiers /proc

Le répertoire /proc contient des fichiers virtuels qui offrent des informations sur l'état courant du noyau Linux en cours d'exécution. Cela permet aux utilisateurs de scruter une vaste gamme d'informations, fournies de manière efficace du point de vue du noyau au sein du système. En outre, les utilisateurs peuvent utiliser le répertoire /proc pour communiquer des changements de configuration particuliers au noyau.

Un système de fichiers virtuels

Sous Linux, tout est stocké dans des fichiers. La plupart des utilisateurs sont d'ailleurs familiers avec les deux types de fichier principaux, soit texte et binaire. Cependant, le répertoire /proc contient des fichiers qui ne font partie d'aucun système de fichiers associé à vos disques durs, CD-ROM ou tout autre périphérique physique de stockage branché à votre système (sauf, pourrait-on dire, votre mémoire vive). Ces fichiers font plutôt partie d'un système de fichiers virtuels, activé ou désactivé dans le noyau Linux lorsqu'il est compilé.

Les fichiers virtuels /proc ont des qualités intéressantes. D'abord, la plupart d'entre eux ont une taille de 0 octet. Toutefois, lorsqu'ils sont visualisés, ils contiennent pas mal d'informations. De plus, la plupart d'entre eux ont une date et une heure qui reflètent le moment présent, ce qui signifie qu'ils changent continuellement.

De nombreux programmes utilisent le système de fichiers /proc pour obtenir les paramètres du système de façon à pouvoir offrir de meilleures performances et plus de fonctions.

Puis, l'administrateur système peut utiliser /proc comme méthode simple d'accès aux informations sur l'état du noyau, les attributs de l'ordinateur, l'état des processus individuels, etc. La plupart des fichiers dans ce répertoire, tels que interrupts, meminfo, mounts et partitions, fournissent un aperçu actuel de l'environnement d'un système. D'autres, comme les répertoires file systems et /proc/sys/ fournissent des informations sur la configuration des logiciels.

Enfin, pour faciliter le tout, les fichiers qui contiennent des informations sur un sujet similaire sont groupés dans des répertoires et sous-répertoires virtuels, comme /proc/ide/ pour tous les périphériques physiques IDE.

Visualisation de fichiers virtuels

En utilisant les commandes cat, more ou less combinées aux fichiers dans /proc, vous avez immédiatement accès à une énorme source d'informations sur le système. Par exemple, pour savoir quel genre d'Unité centrale possède votre ordinateur, tapez cat cpuinfo et vous verrez quelquechose ressemblant à ceci:

processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 5
model		: 9
model name	: AMD-K6(tm) 3D+ Processor
stepping	: 1
cpu MHz		: 400.919
cache size	: 256 KB
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 1
wp		: yes
flags		: fpu vme de pse tsc msr mce cx8 pge mmx syscall 3dnow k6_mtrr
bogomips	: 799.53

Comme vous pouvez le constater, certaines de ces informations parlent d'elles-mêmes, alors que d'autres semblent écrites en un code étrange. C'est pourquoi des utilitaires existent pour collecter des données dans des fichiers /proc et les afficher d'une manière exploitable humainement. apm, free et top sont des exemples de ce genre d'applications.

NoteRemarque
 

Quelques-uns des fichiers dans /proc sont paramétrés pour n'être lus que par le super-utilisateur, vous devrez donc vous connectez en tant que super-utilisateur avant de pouvoir essayer de les lire.

Changement des fichiers virtuels

En général, la plupart des fichiers virtuels dans le répertoire /proc ne peuvent être que lus. Toutefois, quelques uns peuvent être utilisés pour ajuster les réglages dans le noyau. Cela vaut particulièrement pour les fichiers du sous-répertoire /proc/sys/.

Pour changer la valeur d'un fichier virtuel, utilisez la commande echo et un symbole > pour rediriger la nouvelle valeur vers le fichier. Par exemple, pour changer votre nom d'hôte à la volée, vous pouvez taper:

echo bob.subgenious.com > /proc/sys/kernel/hostname 

D'autres fichiers servent de commutation binaire. Par exemple, si vous tapez cat /proc/sys/net/ipv4/ip_forward, vous obtiendrez soit un 0, soit un 1. Le 0 indique que le noyau ne redirige pas les paquetages réseau. En utilisant la commande echo pour changer la valeur du fichier ip_forward en 1, vous pouvez déclencher immédiatement la redirection de fichiers.

Pour une liste de quelques-uns des fichiers de configuration du noyau disponibles dans /proc/sys/, consultez la la section intitulée /proc/sys.