La cartella proc

/proc – cartella speciale dinamica che mantiene informazioni sullo stato del sistema, inclusi i processi attualmente in esecuzione

Il file system /proc (d’ora in poi solo /proc), e’ un file system creato e mantenuto a run-time dal Kernel di linux per tenere traccia dei vari processi che stanno funzionando sulla macchina e del loro stato. Tramite /proc si possono ottenere un sacco di informazioni su quello che c’e’, come e’ configurato e come funziona.
La cosa piu’ interessante relativa a /proc e’ che non esiste in realta’, /proc legge direttamente dalla memoria del sistema le sue informazioni in “tempo reale”.

/proc puo’ essere letto da qualunque utente che abbia i corretti permessi di accesso, alcune parti di /proc possono pero’ essere lette solamente dal proprietario del processo in questione e (ovviamente) da root.

Sotto linux, vi sono varie utility come lscpi, scanpci etc. che ottengono i loro dati proprio leggendo /proc ed interpretandone le informazioni. Altre utility simili sono ps e top.

La / di un sistema Unix/Linux di solito si presenta cosi’:

drwxr-xr-x 14 root root 291 Oct 25 18:47 opt
dr-xr-xr-x 86 root root 0 Dec 12 2000 proc <—
drwx–x–x 16 root root 841 Nov 20 00:10 root
drwxr-xr-x 5 root root 4627 Oct 15 11:42 sbin

Dato che /proc e’ un file system virtuale, esso e’ ricreato ogni volta che la macchina viene accesa, quindi la sua data/ora e’ sempre aggiornata.

/proc/cpuinfo Riporta informazioni sul processore, per esempio il tipo, marca, modello e le varie performance.
/proc/devices Elenca i driver configurati nel kernel corrente
/proc/dma Mostra quali canali DMA sono in uso al momento
/proc/filesystems Mostra i filesystem configurati (supportati) nel kernel
/proc/interrupts Visualizza gli interrupts in uso e quanti e quali sono stati usati.
/proc/ioports Mostra quali porte di i/o sono in uso al momento