Oltre alle directory associate ai diversi processi, /proc contiene anche una miriade di informazioni sull'hardware del vostro sistema. Quello che segue è un elenco dei file della directory /proc:
$ ls -d [a-z]* apm dma interrupts loadavg mounts rtc swaps bus/ fb ioports locks mtrr scsi/ sys/ cmdline filesystems kcore meminfo net/ self/ tty/ cpuinfo fs/ kmsg misc partitions slabinfo uptime devices ide/ ksyms modules pci stat version $ |
Ad esempio, se esaminiamo il contenuto di /proc/interrupts, possiamo vedere che esso contiene l'elenco degli interrupt attualmente usati dal sistema, insieme alla periferica che li gestisce. Allo stesso modo, ioports contiene l'elenco dei range di indirizzi di ingresso/uscita attualmente occupati, e infine dma fa la stessa cosa per i canali DMA. Pertanto, per trovare la causa di un conflitto, esaminate il contenuto di questi tre file:
$ cat interrupts CPU0 0: 127648 XT-PIC timer 1: 5191 XT-PIC keyboard 2: 0 XT-PIC cascade 5: 1402 XT-PIC xirc2ps_cs 8: 1 XT-PIC rtc 10: 0 XT-PIC ESS Solo1 12: 2631 XT-PIC PS/2 Mouse 13: 1 XT-PIC fpu 14: 73434 XT-PIC ide0 15: 80234 XT-PIC ide1 NMI: 0 $ cat ioports 0000-001f : dma1 0020-003f : pic1 0040-005f : timer 0060-006f : keyboard 0070-007f : rtc 0080-008f : dma page reg 00a0-00bf : pic2 00c0-00df : dma2 00f0-00ff : fpu 0170-0177 : ide1 01f0-01f7 : ide0 0300-030f : xirc2ps_cs 0376-0376 : ide1 03c0-03df : vga+ 03f6-03f6 : ide0 03f8-03ff : serial(auto) 1050-1057 : ide0 1058-105f : ide1 1080-108f : ESS Solo1 10c0-10cf : ESS Solo1 10d4-10df : ESS Solo1 10ec-10ef : ESS Solo1 $ cat dma 4: cascade $ |
Oppure, più semplicemente, usate il comando lsdev, che raccoglie le informazioni da questi tre file e le ordina per periferica, il che è senza dubbio più comodo[1]:
$ lsdev Device DMA IRQ I/O Ports ------------------------------------------------ cascade 4 2 dma 0080-008f dma1 0000-001f dma2 00c0-00df ESS 1080-108f 10c0-10cf 10d4-10df 10ec-10ef fpu 13 00f0-00ff ide0 14 01f0-01f7 03f6-03f6 1050-1057 ide1 15 0170-0177 0376-0376 1058-105f keyboard 1 0060-006f Mouse 12 pic1 0020-003f pic2 00a0-00bf rtc 8 0070-007f serial 03f8-03ff Solo1 10 timer 0 0040-005f vga+ 03c0-03df xirc2ps_cs 5 0300-030f $ |
Un elenco completo dei file sarebbe troppo lungo, ma ecco la descrizione di alcuni di essi:
cpuinfo Questo file contiene, come dice il nome stesso, informazioni sul processore (o sui processori) di cui dispone il vostro sistema.
modules Questo file contiene un elenco dei moduli attualmente usati dal kernel, insieme a un contatore di utilizzi per ciascuno. In effetti, queste sono le stesse informazioni mostrate dal comando lsmod.
meminfo Questo file contiene informazioni sull'uso della memoria al momento in cui ne viene visualizzato il contenuto. Si può ottenere una versione delle stesse informazioni formattata in modo più chiaro tramite il comando free.
apm Se possedete un portatile, potete controllare lo stato della batteria esaminando il contenuto di questo file. Potete sapere se è collegato alla presa di corrente, la carica attuale della batteria e, se il BIOS APM del vostro portatile lo supporta (sfortunatamente non è così per tutti), la carica residua della batteria in minuti. Questo file non è molto chiaro, quindi fareste meglio a usare il comando apm, che fornisce le stesse informazioni in un formato leggibile.
bus Questa sotto-directory contiene informazioni su tutte le periferiche che sono collegate ai vari bus del vostro sistema. Queste informazioni sono raramente leggibili, e nella maggior parte dei casi vengono gestite e formattate da programmi esterni: lspcidrake, lspnp, etc.
[1] | lsdev fa parte del pacchetto procinfo. |