Le noyau de Linux a deux principales fonctions: contrôler l'accès aux périphériques physiques de l'ordinateur et programmer à quel moment et de quelle façon les processus vont interagir avec ces périphériques. Le répertoire /proc/ contient une hiérarchie de fichiers spéciaux qui représentent l'état actuel du noyau; cela permet aux applications ainsi qu'aux utilisateurs de scruter la vue du noyau du système.
Vous pouvez trouver dans le répertoire /proc/ de nombreuses informations relatives à la configuration matérielle du système et aux processus en cours d'exécution. De plus, certains des fichiers situés dans l'arborescence du répertoire /proc/ peuvent être manipulés par les utilisateurs ainsi que par les applications afin de transmettre des changements de configuration au noyau.
Sous Linux, toutes les données sont stockées en tant que fichiers. La plupart des utilisateurs sont familiers avec les deux principaux types de fichiers: texte et binaire. Mais le répertoire /proc/ contient un autre type de fichier nommé fichier virtuel. C'est pour cette raison que /proc/ est souvent désigné sous le nom de système de fichiers virtuel.
Ces fichiers virtuels ont des qualités uniques. La plupart d'entre eux ont une taille égale à zéro octet; pourtant, lorsqu'on les affiche, on constate qu'ils contiennent parfois une grande quantité d'informations. De plus, la plupart du temps, les paramètres date et heure des fichiers virtuels reflètent la date et l'heure actuelles et montrent ainsi le fait qu'ils sont mis à jour continuellement.
Des fichiers virtuels tels que /proc/interrupts, /proc/meminfo, /proc/mounts,et /proc/partitions fournissent un aperçu de l'environnement d'un système à un moment donné. D'autres tels que /proc/filesystems et le répertoire /proc/sys/ fournissent des informations sur la configuration du système ainsi que des interfaces.
À des fins d'organisation, les fichiers qui contiennent des informations sur un sujet similaire sont groupés dans des répertoires et sous-répertoires virtuels. Par exemple, /proc/ide/ contient des informations se rapportant à tous les périphériques IDE. De même, les répertoires 'process' contiennent des données concernant tous les processus en cours d'exécution sur le système.
En appliquant les commandes cat, more ou less aux fichiers du répertoire /proc/, vous avez immédiatement accès à une très importante source d'informations sur le système. Par exemple, pour connaître le type d'unité centrale dont dispose votre ordinateur, tapez cat /proc/cpuinfo et vous obtiendrez une sortie semblable à l'extrait ci-dessous:
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 |
Lorsque vous affichez différents fichiers virtuels dans le système de fichiers /proc/ vous pouvez remarquer que certaines des informations sont facilement compréhensibles tandis que d'autres sont codées. C'est en partie pour cela qu'existent des utilitaires dont la fonction consiste à récupérer des données de fichiers virtuels et de les afficher de façon compréhensible. Parmi ces utilitaires figurent par exemple: lspci, apm, free, et top.
![]() | Remarque |
---|---|
Certains des fichiers virtuels du répertoire /proc/ ne peuvent être lus que par l'utilisateur root. |
En général, la plupart des fichiers virtuels du répertoire /proc/ sont en lecture seule. Certains peuvent toutefois être utilisés pour régler les paramètres dans le noyau. Cela vaut particulièrement pour les fichiers du sous-répertoire /proc/sys/.
Pour modifier la valeur d'un fichier virtuel, utilisez la commande echo et un symbole > afin de réacheminer la nouvelle valeur vers le fichier. Par exemple, pour modifier votre nom d'hôte à la volée, vous pouvez taper:
echo www.example.com > /proc/sys/kernel/hostname |
D'autres fichiers servent de commutateur binaire ou booléen. Par exemple, si vous tapez cat /proc/sys/net/ipv4/ip_forward vous obtiendrez comme sortie un 0 ou un 1. Le 0 indique que le noyau ne réachemine pas les paquets réseau. En utilisant la commande echo pour modifier la valeur du fichier ip_forward en 1, vous pouvez déclencher immédiatement le réacheminement des paquets.
![]() | Astuce |
---|---|
La commande /proc/sys/ permet également de modifier les paramètres du sous-répertoire /sbin/sysctl. Pour obtenir davantage d'informations sur cette commande, reportez-vous à Section 5.4 Utilisation de la commande sysctl |
Pour obtenir une liste de certains des fichiers de configuration du noyau disponibles dans /proc/sys/, consultez Section 5.3.9 /proc/sys/.