除了包括各个进程的信息之外,/proc 也还包含您机器上各种硬件的信息。浏览 /proc 目录,您将看到:
$ ls -d [a-z]* acpi/ diskstats iomem locks pci sysvipc/ asound/ dma ioports mdstat scsi/ tty/ buddyinfo driver/ irq/ meminfo self@ uptime bus/ execdomains kallsyms misc slabinfo version cmdline fb kcore modules splash vmstat config.gz filesystems keys mounts@ stat cpuinfo fs/ key-users mtrr swaps crypto ide/ kmsg net/ sys/ devices interrupts loadavg partitions sysrq-trigger $
例如,查看 /proc/interrupts 的内容将了解系统当前使用的中断的情况,以及它们相应的外设。同样,ioports 包含当前被占用的输入/输出地址范围列表,而 dma 给出了 DMA 通道的使用情况。因此,要查找冲突原因,请查看这三个文件的内容:
$ cat interrupts
CPU0
0: 543488 XT-PIC timer
2: 0 XT-PIC cascade
5: 109 XT-PIC ohci_hcd:usb2, eth1
7: 1 XT-PIC parport0
8: 0 XT-PIC rtc
9: 3432 XT-PIC acpi, NVidia CK8
10: 52855 XT-PIC ehci_hcd:usb3, eth0
11: 7538 XT-PIC libata, ohci_hcd:usb1
12: 1386 XT-PIC i8042
14: 20 XT-PIC ide0
15: 5908 XT-PIC ide1
NMI: 0
LOC: 0
ERR: 0
MIS: 0
$ cat ioports
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-006f : keyboard
0070-0077 : rtc
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : ide1
01f0-01f7 : ide0
0376-0376 : ide1
0378-037a : parport0
037b-037f : parport0
03c0-03df : vesafb
03f6-03f6 : ide0
03f8-03ff : serial
0778-077a : parport0
0970-0977 : 0000:00:0b.0
0970-0977 : sata_nv
09f0-09f7 : 0000:00:0b.0
09f0-09f7 : sata_nv
0b70-0b73 : 0000:00:0b.0
0b70-0b73 : sata_nv
0bf0-0bf3 : 0000:00:0b.0
0bf0-0bf3 : sata_nv
0cf8-0cff : PCI conf1
4000-407f : motherboard
4000-4003 : PM1a_EVT_BLK
4004-4005 : PM1a_CNT_BLK
4008-400b : PM_TMR
4020-4027 : GPE0_BLK
4080-40ff : motherboard
4080-40ff : pnp 00:00
4200-427f : motherboard
4200-427f : pnp 00:00
4280-42ff : motherboard
4280-42ff : pnp 00:00
4400-447f : motherboard
4400-447f : pnp 00:00
4480-44ff : motherboard
44a0-44af : GPE1_BLK
5000-503f : motherboard
5000-503f : pnp 00:01
5100-513f : motherboard
5100-513f : pnp 00:01
9000-9fff : PCI Bus #02
9000-907f : 0000:02:07.0
9000-907f : 0000:02:07.0
ac00-ac0f : 0000:00:0b.0
ac00-ac0f : sata_nv
b000-b07f : 0000:00:0b.0
b000-b07f : sata_nv
b800-b8ff : 0000:00:06.0
b800-b8ff : NVidia CK8
bc00-bc7f : 0000:00:06.0
bc00-bc7f : NVidia CK8
c000-c007 : 0000:00:04.0
c000-c007 : forcedeth
c400-c41f : 0000:00:01.1
f000-f00f : 0000:00:09.0
f000-f007 : ide0
f008-f00f : ide1
$cat dma
3: parport0
4: cascade
$或者,更简单的是使用 lsdev 命令。它将从这些文件中收集信息,并按照外设对它们排序以方便用户[8]:
$ lsdev Device DMA IRQ I/O Ports ------------------------------------------------ 0000:00:01.1 c400-c41f 0000:00:04.0 c000-c007 0000:00:06.0 b800-b8ff bc00-bc7f 0000:00:09.0 f000-f00f 0000:00:0b.0 0970-0977 09f0-09f7 0b70-0b73 0bf0-0bf3 ac00-ac0f b000-b07f 0000:02:07.0 9000-907f 9000-907f cascade 4 2 CK8 9 dma 0080-008f dma1 0000-001f dma2 00c0-00df eth0 10 eth1 5 forcedeth c000-c007 fpu 00f0-00ff GPE0_BLK 4020-4027 GPE1_BLK 44a0-44af i8042 12 ide0 14 01f0-01f7 03f6-03f6 f000-f007 ide1 15 0170-0177 0376-0376 f008-f00f keyboard 0060-006f motherboard 4000-407f 4080-40ff 4200-427f 4280-42ff 4400-447f 4480-44ff 5000-503f 5100-513f NVidia b800-b8ff bc00-bc7f ohci_hcd:usb1 11 parport0 3 7 0378-037a 037b-037f 0778-077a PCI 0cf8-0cff 9000-9fff pic1 0020-0021 pic2 00a0-00a1 PM1a_CNT_BLK 4004-4005 PM1a_EVT_BLK 4000-4003 PM_TMR 4008-400b pnp 4080-40ff 4200-427f 4280-42ff 4400-447f 5000-503f 5100-513f rtc 8 0070-0077 sata_nv 0970-0977 09f0-09f7 0b70-0b73 0bf0-0bf3 ac00-ac0f b000-b07f serial 03f8-03ff timer 0 timer0 0040-0043 timer1 0050-0053 vesafb 03c0-03df $
apm:如果您在使用膝上型计算机,该文件的内容表示电池的当前状态。您可以看到 AC 是否插上,电池的充电状态;如果您的膝上型计算机的 APM BIOS 支持的话(不幸的是,这并非必然),还会显示电池剩余的使用分钟数。该文件本身并不易于阅读,因此您会需要使用 apm 命令将该信息以人类可阅读格式显示出来。
bus:该子目录包含您机器上的总线能够找到的所有外设信息。这些信息通常是不可阅读的,不过可以使用外部工具(比如 lspcidrake、lspnp 等)对其中大部分重新格式化。
acpi:拥有膝上型计算机的人会对该目录中的某些文件感兴趣。您可从中选择某些节电选项。请注意,通过更高级的应用程序(比如包含在 acpid 和 kapacity 软件包中的一些程序)来修改这些选项更为容易。