2. Информация об аппаратном обеспечении

Кроме каталогов, связанных с различными процессами, в /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
$

Вывод полного списка файлов был бы слишком долгим, но вот описание некоторых из них:



[8] lsdev входит в состав пакета procinfo.