Nel caso del file system /proc si tratta di uno pseudo-file system utilizzato dal kernel per archiviarvi delle informazioni importanti sotto forma di file virtuali. Ad esempio, il tipo di CPU si lascia determinare in maniera semplice nel modo seguente:
$ 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 [...]
Mappatura e utilizzo degli interrupt viene rilevato tramite:
$ 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
Segue una rassegna di file recanti informazioni importanti:
/proc/devices: dispositivi disponibili
/proc/modules: moduli del kernel caricati
/proc/cmdline: linea di comando per il kernel
/proc/meminfo: informazioni dettagliate sul carico di memoria
/proc/config.gz: file di configurazione nel formato di compressione gzip del kernel attualmente in esecuzione.
Ulteriori informazioni sono contenute nel file di testo: /usr/src/linux/Documentation/filesystems/proc.txt; informazioni sui processi in esecuzione si trovano nelle directory /proc/NNN, laddove NNN indica l'ID del processo (PID) del relativo processo. Sotto /proc/self/ il processo trova le proprie caratteristiche:
$ 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
Nel file maps si trovano gli indirizzi degli eseguibili e delle librerie:
$ 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