Le système de fichiers /proc est un pseudo système de
fichiers dans lequel le noyau détient des informations importantes sous
forme de fichiers virtuels. Par exemple, le type de CPU peut être affiché avec
cette commande :
$ cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : AMD Athlon(tm) XP 2400+ stepping : 1 cpu MHz : 2009.343 cache size : 256 KB fdiv_bug : no [...]
On retrouve l'affectation et l'utilisation des interruptions avec :
$ cat /proc/interrupts
CPU0
0: 537544462 XT-PIC timer
1: 820082 XT-PIC keyboard
2: 0 XT-PIC cascade
8: 2 XT-PIC rtc
9: 0 XT-PIC acpi
10: 13970 XT-PIC usb-uhci, usb-uhci
11: 146467509 XT-PIC ehci_hcd, usb-uhci, eth0
12: 8061393 XT-PIC PS/2 Mouse
14: 2465743 XT-PIC ide0
15: 1355 XT-PIC ide1
NMI: 0
LOC: 0
ERR: 0
MIS: 0
Voici une liste de certains fichiers importants et des informations qu'ils comtiennent :
/proc/devices
périphériques disponibles
/proc/modules
modules du noyau chargés
/proc/cmdline
ligne de commande du noyau
/proc/meminfo
informations détaillées sur l'utilisation de la mémoire
/proc/config.gz
gzip fichier de configuration comprimé du noyau fonctionnant actuellement.
Vous trouverez des informations complémentaires dans le fichier texte :
/usr/src/linux/Documentation/filesystems/proc.txt. Des
informations sur les processus en cours se trouvent dans les répertoires
/proc/ NNN,
NNN étant l'ID de processus (PID) de chaque
processus. Sous /proc/self/, chaque processus trouve
ses propres caractéristiques :
$ ls -l /proc/self lrwxrwxrwx 1 root root 64 Apr 29 13:52 /proc/self -> 27585 $ ls -l /proc/self/ total 0 dr-xr-xr-x 2 jj suse 0 Apr 29 13:52 attr -r-------- 1 jj suse 0 Apr 29 13:52 auxv -r--r--r-- 1 jj suse 0 Apr 29 13:52 cmdline lrwxrwxrwx 1 jj suse 0 Apr 29 13:52 cwd -> /suse/jj/t -r--r--r-- 1 jj suse 0 Apr 29 13:52 delay -r-------- 1 jj suse 0 Apr 29 13:52 environ lrwxrwxrwx 1 jj suse 0 Apr 29 13:52 exe -> /bin/ls dr-x------ 2 jj suse 0 Apr 29 13:52 fd -rw------- 1 jj suse 0 Apr 29 13:52 mapped_base -r--r--r-- 1 jj suse 0 Apr 29 13:52 maps -rw------- 1 jj suse 0 Apr 29 13:52 mem -r--r--r-- 1 jj suse 0 Apr 29 13:52 mounts lrwxrwxrwx 1 jj suse 0 Apr 29 13:52 root -> / -r--r--r-- 1 jj suse 0 Apr 29 13:52 stat -r--r--r-- 1 jj suse 0 Apr 29 13:52 statm -r--r--r-- 1 jj suse 0 Apr 29 13:52 status dr-xr-xr-x 3 jj suse 0 Apr 29 13:52 task -r--r--r-- 1 jj suse 0 Apr 29 13:52 wchan
Dans le fichier maps, on trouve l'attribution des
adresses des exécutables et des bibliothèques :
$ cat /proc/self/maps 08048000-0804c000 r-xp 00000000 03:02 22890 /bin/cat 0804c000-0804d000 rw-p 00003000 03:02 22890 /bin/cat 0804d000-0806e000 rwxp 0804d000 00:00 0 40000000-40016000 r-xp 00000000 03:02 10882 /lib/ld-2.3.3.so 40016000-40017000 rw-p 00015000 03:02 10882 /lib/ld-2.3.3.so 40017000-40018000 rw-p 40017000 00:00 0 4002b000-40135000 r-xp 00000000 03:02 10908 /lib/tls/libc.so.6 40135000-4013d000 rw-p 0010a000 03:02 10908 /lib/tls/libc.so.6 4013d000-40141000 rw-p 4013d000 00:00 0 bfffe000-c0000000 rw-p bfffe000 00:00 0 ffffe000-fffff000 ---p 00000000 00:00 0