[successivo]
[precedente]
[inizio]
[fine]
[indice generale]
[indice ridotto]
[violazione licenza]
[translators]
[docinfo]
[indice analitico]
[volume]
[parte]
Capitolo 53. Informazioni dai file system virtuali «/proc/» e «/sys/» di GNU/Linux
I file system virtuali /proc/
e /sys/
dei sistemi GNU/Linux forniscono tutte le informazioni disponibili al kernel sullo stato del sistema, consentendo, entro certi limiti, di interagire con il kernel stesso per passargli delle informazioni particolari.
Per approfondire il significato e l'interpretazione dei file del file system virtuale /proc/
si può consultare la pagina di manuale proc(5).
Tabella 53.1. Riepilogo dei programmi utili per interpretare il contenuto dei file system virtuali /proc/ e /sys/ dei sistemi GNU/Linux.
Nome | Descrizione |
procinfo | Informazioni comuni da /proc/ . |
lsdev | Elenco dei dispositivi in base al loro indirizzo. |
socklist | Elenco dei socket. |
lspci | Elenco dei dispositivi che usano un bus PCI. |
lsusb | Elenco dei dispositivi che usano un bus USB. |
lshw | Elenco di tutti i dispositivi. |
|
53.1
Pacchetto Procinfo
La quantità di informazioni disponibili all'interno di /proc/
è tale per cui è facile perdersi tra questi file. Inoltre, con l'evolversi dei kernel cambiano i contenuti dei file virtuali e anche la loro collocazione. A questo proposito sono utili i programmi del pacchetto Procinfo (1) che aiutano ad analizzare tali informazioni per generare dei resoconti e delle statistiche più facili da consultare.
53.1.1
Utilizzo di «procinfo»
Il programma procinfo è quello che, dal pacchetto omonimo, dà le informazioni più comuni. I dati vengono visualizzati in forma più o meno tabellare e i campi sono indicati attraverso dei nomi. Il significato di alcuni di questi è descritto nella tabella 53.2.
Tabella 53.2. Alcuni dei nomi utilizzati per descrivere i campi delle tabelle generate da procinfo.
Nome | Descrizione |
Memory: | Utilizzo della memoria. |
Bootup: | Data e ora dell'avvio del sistema. |
Load average: | Carico medio. |
user: | Tempo per i processi avviati dagli utenti. |
nice: | Tempo per i processi avviati con un valore nice. |
system: | Tempo per i processi avviati dal kernel. |
idle: | Tempo non utilizzato. |
uptime: | Tempo complessivo di funzionamento. |
irq n: | Numero di interruzioni e dispositivo corrispondente. |
Modules: | Moduli del kernel installati. |
Character Devices: | Elenco dei dispositivi a caratteri. |
Block Devices: | Elenco dei dispositivi a blocchi. |
File Systems: | Tipi di file system gestibili. |
|
Quando procinfo viene utilizzato senza argomenti si ottengono le informazioni più importanti che possono essere visualizzate su uno schermo normale, per esempio ciò che viene mostrato di seguito:
Linux 2.2.1 (root@dinkel.brot.dg) (gcc 2.7.2.3) #2 [dinkel.brot.dg]
Memory: Total Used Free Shared Buffers Cached
Mem: 29944 29160 784 9080 8656 5084
Swap: 28220 2084 26136
Bootup: Wed Mar 31 07:43:17 1999 Load average: 0.00 0.00 0.00 1/44 769
user : 0:06:32.78 6.0% page in : 63919 disk 1: 5197r 4550w
nice : 0:00:00.00 0.0% page out: 100215
system: 0:00:46.04 0.7% swap in : 238 disk 3: 29r 0w
idle : 1:41:26.13 93.3% swap out: 886
uptime: 1:48:44.93 context : 103822
irq 0: 652495 timer irq 9: 8736 fdomain
irq 1: 39147 keyboard irq 12: 0 eth0
irq 2: 0 cascade [4] irq 13: 1 fpu
irq 4: 502 serial irq 14: 9404 ide0
irq 6: 3 irq 15: 146 ide1
|
|
Eventualmente, procinfo può essere utilizzato per ottenere un'informazione continua (o quasi), come fa il programma top. In questo senso può essere stabilita una pausa tra un aggiornamento e il successivo. Durante questo funzionamento continuo, si possono utilizzare alcuni comandi interattivi, composti da una lettera singola, il cui significato tende a essere coerente con quello delle opzioni della riga di comando. In modo particolare, il comando q termina il funzionamento continuo di procinfo.
Tabella 53.4. Alcune opzioni.
Sintassi | Descrizione |
-f
| Fa sì che procinfo funzioni in modo continuo, a tutto-schermo. |
-nn_secondi
| Questa opzione implica automaticamente la selezione di -f e serve a stabilire un intervallo tra un aggiornamento e l'altro delle informazioni visualizzate. |
-m
| Mostra le informazioni sui moduli e sui dispositivi a caratteri e a blocchi, trascurando i dati relativi alla CPU e alla memoria. |
-a
| Mostra tutte le informazioni disponibili, ma per questo non bastano le dimensioni di uno schermo normale. |
-d
| Mostra le informazioni normali, cioè quelle sull'utilizzo della CPU, della memoria e delle interruzioni (interrupt), ma riferite a periodi di un secondo. Ciò richiede il funzionamento di procinfo in modo continuo, pertanto questa opzione implica automaticamente l'uso di -f. |
-Ffile
| Ridirige l'output in un file, che di solito corrisponde al dispositivo di una console virtuale inutilizzata. |
|
53.1.2
Utilizzo di «lsdev»
lsdev è un programma molto semplice che si limita a mostrare una tabella con informazioni tratte dai file /proc/interrupts
, /proc/ioports
e /proc/dma
. In pratica mostra tutti gli indirizzi relativi all'hardware installato.
Il risultato che si ottiene potrebbe essere simile a quello seguente:
Device DMA IRQ I/O Ports
------------------------------------------------
0 1 2 4 9 12 13 14 15
cascade 4
dma 0080-008f
dma1 0000-001f
dma2 00c0-00df
eth0 ff80-ff9f
fdomain ffa0-ffaf
fpu 00f0-00ff
ide0 01f0-01f7 03f6-03f6 8000-8007
ide1 0170-0177 0376-0376 8008-800f
keyboard 0060-006f
parport0 0378-037a
pic1 0020-003f
pic2 00a0-00bf
serial 02f8-02ff 03f8-03ff
timer 0040-005f
vga+ 03c0-03df
|
|
53.1.3
Utilizzo di «socklist»
Il programma socklist si limita a mostrare una tabella con informazioni tratte dai file /proc/net/tcp
, /proc/net/udp
e /proc/net/raw
, integrandoli con le informazioni relative ai descrittori dei file di ogni processo, ovvero /proc/*/fd/*
.
Si tratta di informazioni utili per ciò che riguarda la gestione della rete, tuttavia questo programma viene mostrato qui per completare l'argomento di questo capitolo. Di seguito viene mostrato un esempio del risultato che si può ottenere con socklist.
type port inode uid pid fd name
tcp 80 246 0 0 0
tcp 8080 245 0 0 0
tcp 25 230 0 0 0
tcp 2049 215 0 0 0
tcp 515 205 0 0 0
tcp 635 195 0 0 0
tcp 53 169 0 0 0
tcp 53 167 0 0 0
tcp 98 156 0 0 0
tcp 113 155 0 0 0
tcp 37 153 0 0 0
tcp 79 152 0 0 0
tcp 143 151 0 0 0
tcp 110 150 0 0 0
tcp 109 149 0 0 0
tcp 513 146 0 0 0
tcp 514 145 0 0 0
tcp 70 144 0 0 0
tcp 23 143 0 0 0
tcp 21 142 0 0 0
tcp 111 106 0 0 0
udp 2049 212 0 0 0
udp 635 190 0 0 0
udp 1024 170 0 0 0
udp 53 168 0 0 0
udp 53 166 0 0 0
udp 37 154 0 0 0
udp 518 148 0 0 0
udp 517 147 0 0 0
udp 514 115 0 0 0
udp 111 105 0 0 0
raw 1 0 0 0 0
raw 6 0 0 0 0
|
|
53.2
Pacchetto Linux PCI utilities
Il pacchetto Linux PCI utilities contiene in particolare il programma lspci (2) con il quale è possibile conoscere tutte le informazioni disponibili sul bus PCI:
Attraverso le opzioni è possibile avere una rappresentazione diversa delle informazioni, ma nella maggior parte dei casi è sufficiente l'utilizzo di lspci senza argomenti:
$
lspci
[Invio]
00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x \ \[Apollo PRO133x] (rev 44)
00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP]
00:07.0 ISA bridge: VIA Technologies, Inc. VT82C596 ISA [Mobile South] (rev 23)
00:07.1 IDE interface: VIA Technologies, Inc. \ \VT82C586A/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE (rev 10)
00:07.2 USB Controller: VIA Technologies, Inc. USB (rev 11)
00:07.3 Host bridge: VIA Technologies, Inc. VT82C596 Power Management (rev 30)
00:11.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 42)
00:12.0 VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 01)
00:13.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 08)
00:13.1 Input device controller: Creative Labs SB Live! MIDI/Game Port (rev 08)
00:14.0 SCSI storage controller: Adaptec AIC-7861 (rev 01)
|
Eventualmente basta l'opzione -v per ottenere maggiori informazioni:
$
lspci
[Invio]
00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x \ \[Apollo PRO133x] (rev 44)
Flags: bus master, medium devsel, latency 0
Memory at d0000000 (32-bit, prefetchable) [size=64M]
Capabilities: <available only to root>
00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x \ \[Apollo MVP3/Pro133x AGP] (prog-if 00 [Normal decode])
Flags: bus master, 66Mhz, medium devsel, latency 0
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
Capabilities: <available only to root>
00:07.0 ISA bridge: VIA Technologies, Inc. VT82C596 ISA [Mobile South] (rev 23)
Subsystem: VIA Technologies, Inc. VT82C596/A/B PCI to ISA Bridge
Flags: bus master, stepping, medium devsel, latency 0
00:07.1 IDE interface: VIA Technologies, Inc. \ \VT82C586A/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE (rev 10) (prog-if 8a [Master SecP PriP])
Flags: bus master, medium devsel, latency 32
I/O ports at d000 [size=16]
Capabilities: <available only to root>
00:07.2 USB Controller: VIA Technologies, Inc. USB (rev 11) (prog-if 00 [UHCI])
Subsystem: VIA Technologies, Inc. (Wrong ID) USB Controller
Flags: bus master, medium devsel, latency 32, IRQ 11
I/O ports at d400 [size=32]
Capabilities: <available only to root>
00:07.3 Host bridge: VIA Technologies, Inc. VT82C596 Power Management (rev 30)
Flags: medium devsel
00:11.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 42)
Subsystem: D-Link System Inc DFE-530TX rev A
Flags: bus master, medium devsel, latency 32, IRQ 11
I/O ports at d800 [size=256]
Memory at d9000000 (32-bit, non-prefetchable) [size=256]
Expansion ROM at <unassigned> [disabled] [size=64K]
Capabilities: <available only to root>
00:12.0 VGA compatible controller: S3 Inc. ViRGE/DX or /GX \ \(rev 01) (prog-if 00 [VGA])
Subsystem: S3 Inc. ViRGE/DX
Flags: bus master, medium devsel, latency 32, IRQ 9
Memory at d4000000 (32-bit, non-prefetchable) [size=64M]
Expansion ROM at <unassigned> [disabled] [size=64K]
00:13.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 08)
Subsystem: Creative Labs CT4832 SBLive! Value
Flags: bus master, medium devsel, latency 32, IRQ 5
I/O ports at dc00 [size=32]
Capabilities: <available only to root>
00:13.1 Input device controller: Creative Labs SB Live! MIDI/Game Port (rev 08)
Subsystem: Creative Labs Gameport Joystick
Flags: bus master, medium devsel, latency 32
I/O ports at e000 [size=8]
Capabilities: <available only to root>
00:14.0 SCSI storage controller: Adaptec AIC-7861 (rev 01)
Flags: bus master, medium devsel, latency 32, IRQ 10
I/O ports at e400 [disabled] [size=256]
Memory at d9001000 (32-bit, non-prefetchable) [size=4K]
Expansion ROM at <unassigned> [disabled] [size=64K]
|
53.3
Lsusb
Lsusb (3) è un programma che fa parte del pacchetto USButils, con lo scopo di elencare i dispositivi USB presenti. Si può usare con delle opzioni, in mancanza delle quali mostra l'elenco completo di componenti:
Ecco come potrebbe presentarsi l'elenco che si ottiene da questo programma:
$
lsusb
[Invio]
Bus 001 Device 003: ID 04cb:0128 Fuji Photo Film Co., Ltd
Bus 001 Device 001: ID 0000:0000
|
Per approfondire l'uso del programma conviene leggere la pagina di manuale lsusb(8).
53.4
Lshw
Lshw (4) è un programma in grado di scandire ed elencare tutti i dispositivi esistenti. Attraverso le opzioni della riga di comando è possibile modificare il modo in cui queste informazioni vengono mostrate; altrimenti non c'è bisogno di specificare alcunché:
Ecco come potrebbe presentarsi l'elenco che si ottiene da questo programma se avviato dall'utente root:
#
lshw
[Invio]
nanohost
description: Computer
product: VT82C692BX
vendor: VIA Technologies, Inc.
capabilities: smbios-2.2 dmi-2.2
*-core
description: Motherboard
product: 693A-596B-977EF
physical id: 0
*-firmware
description: BIOS
vendor: Award Software International, Inc.
physical id: 0
version: 6.00 PG (09/27/2000)
size: 128KB
capacity: 192KB
capabilities: isa pci pnp apm upgrade shadowing escd cdboot \ \bootselect socketedrom edd int13floppy360 int13floppy1200 int13floppy720 \ \int13floppy2880 int5printscreen int9keyboard int14serial \ \int17printer int10video acpi usb agp ls120boot zipboot biosbootspecification
*-cpu
description: CPU
product: Celeron (Coppermine)
vendor: Intel Corp.
physical id: 4
version: 6.8.6
slot: Socket 370
size: 766MHz
clock: 66MHz
capabilities: fpu fpu_exception wp vme de pse tsc msr pae \ \mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse
*-cache:0
description: L1 cache
physical id: a
slot: Internal Cache
size: 32KB
capacity: 32KB
capabilities: synchronous internal write-back
*-cache:1
description: L2 cache
physical id: b
slot: External Cache
size: 128KB
capacity: 2MB
capabilities: synchronous external write-back
*-memory
description: System Memory
physical id: 1f
slot: System board or motherboard
size: 384MB
capacity: 512MB
*-bank:0
description: DIMM EDRAM
physical id: 0
slot: BANK_0
size: 128MB
*-bank:1
description: DIMM EDRAM
physical id: 1
slot: BANK_1
size: 128MB
*-bank:2
description: DIMM EDRAM
physical id: 2
slot: BANK_2
size: 128MB
*-bank:3
description: DIMM EDRAM
physical id: 3
slot: BANK_3
*-pci
description: Host bridge
product: VT82C596 Power Management
vendor: VIA Technologies, Inc.
physical id: d0000000
bus info: pci@00:07.3
version: 30
clock: 33MHz
*-pci
description: PCI bridge (Normal decode)
product: VT82C598/694x [Apollo MVP3/Pro133x AGP]
vendor: VIA Technologies, Inc.
physical id: 1
bus info: pci@00:01.0
version: 00
clock: 66MHz
capabilities: pci normal_decode bus_master cap_list
*-isa UNCLAIMED
description: ISA bridge
product: VT82C596 ISA [Mobile South]
vendor: VIA Technologies, Inc.
physical id: 7
bus info: pci@00:07.0
version: 23
clock: 33MHz
capabilities: isa bus_master
*-ide
description: IDE interface
product: VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE
vendor: VIA Technologies, Inc.
physical id: 7.1
bus info: pci@00:07.1
version: 10
clock: 33MHz
capabilities: bus_master cap_list
configuration: driver=VIA
*-ide:0
description: Channel 0
physical id: 0
bus info: ide@0
logical name: ide0
clock: 33MHz
*-disk:0
description: ATA Disk
product: Maxtor 6Y080L0
physical id: 0
bus info: ide@0:master
logical name: /dev/hda
version: YAR41BW0
serial: Y2PTKS6E
size: 76GB
capacity: 76GB
capabilities: ata dma lba iordy smart security pm apm
configuration: apm=off smart=on
*-disk:1
description: ATA Disk
product: Maxtor 6Y080L0
physical id: 1
bus info: ide@0:slave
logical name: /dev/hdb
version: YAR41BW0
serial: Y2PTKSRE
size: 76GB
capacity: 76GB
capabilities: ata dma lba iordy smart security pm apm
configuration: apm=off mode=udma4 smart=on
*-ide:1
description: Channel 1
physical id: 1
bus info: ide@1
logical name: ide1
clock: 33MHz
*-cdrom:0
product: _NEC DVD_RW ND-1300A
physical id: 0
bus info: ide@1:master
logical name: /dev/hdc
capacity: 1023GB
*-cdrom:1
product: YAMAHA CRW8824E
physical id: 1
bus info: ide@1:slave
logical name: /dev/hdd
capacity: 1023GB
*-usb
description: USB Controller (UHCI)
product: VT82xxxxx UHCI USB 1.1 Controller
vendor: VIA Technologies, Inc.
physical id: 7.2
bus info: pci@00:07.2
version: 11
clock: 33MHz
capabilities: uhci bus_master cap_list
configuration: driver=uhci_hcd irq=11
*-network
description: Ethernet controller
product: VT6102 [Rhine-II]
vendor: VIA Technologies, Inc.
physical id: 11
bus info: pci@00:11.0
version: 42
clock: 33MHz
capabilities: bus_master cap_list
configuration: driver=via-rhine irq=11
*-display UNCLAIMED
description: VGA compatible controller (VGA)
product: ViRGE/DX or /GX
vendor: S3 Inc.
physical id: 12
bus info: pci@00:12.0
version: 01
size: 64MB
clock: 33MHz
capabilities: vga bus_master
configuration: irq=9
*-multimedia
description: Multimedia audio controller
product: SB Live! EMU10k1
vendor: Creative Labs
physical id: 13
bus info: pci@00:13.0
version: 08
clock: 33MHz
capabilities: bus_master cap_list
configuration: driver=EMU10K1_Audigy irq=5
*-input
description: Input device controller
product: SB Live! MIDI/Game Port
vendor: Creative Labs
physical id: 13.1
bus info: pci@00:13.1
version: 08
clock: 33MHz
capabilities: bus_master cap_list
configuration: driver=Emu10k1
*-scsi
description: SCSI storage controller
product: AIC-7861
vendor: Adaptec
physical id: 14
bus info: pci@00:14.0
version: 01
clock: 33MHz
capabilities: bus_master
configuration: driver=aic7xxx irq=10
*-scsi:0
physical id: 1
bus info: scsi@0
logical name: scsi0
capabilities: emulated
*-channel
description: Channel 0
physical id: 0
bus info: scsi@0:0
*-cdrom
description: DVD writer
product: DVD_RW ND-1300A
vendor: _NEC
physical id: 0
bus info: scsi@0:0:0.0
logical name: /dev/sr0
version: 1.0A
capabilities: removable audio cd-r cd-rw dvd dvd-r
configuration: ansiversion=2
*-scsi:1
physical id: 2
bus info: scsi@1
logical name: scsi1
capabilities: emulated
*-channel
description: Channel 0
physical id: 0
bus info: scsi@0:0
*-cdrom
description: DVD writer
product: CRW8824E
vendor: YAMAHA
physical id: 0
bus info: scsi@0:0:0.0
logical name: /dev/sr0
version: 1.00
capabilities: removable audio cd-r cd-rw dvd dvd-r
configuration: ansiversion=2
*-scsi:2
physical id: 3
bus info: scsi@2
logical name: scsi2
configuration: driver=aic7xxx
*-channel
description: Channel 0
physical id: 0
bus info: scsi@0:0
*-cdrom UNCLAIMED
description: CD-ROM
product: CD-R55S
vendor: TEAC
physical id: 3
bus info: scsi@0:0:3.0
version: 1.0E
capabilities: removable
configuration: ansiversion=2
*-network:0 DISABLED
description: Ethernet controller
physical id: 1
logical name: plip0
serial: fc:fc:fc:fc:fc:fc
capabilities: ethernet
configuration: point-to-point=yes
*-network:1 DISABLED
description: Ethernet controller
physical id: 2
logical name: dummy0
serial: 1a:60:19:07:1a:f0
capabilities: ethernet
configuration: broadcast=yes
*-network:2 DISABLED
description: IPtunnel controller
physical id: 3
logical name: tunl0
capabilities: iptunnel
*-network:3 DISABLED
description: controller
physical id: 4
logical name: gre0
*-network:4 DISABLED
description: controller
physical id: 5
logical name: sit0
*-network:5
description: Ethernet controller
physical id: 6
logical name: eth0
serial: 00:50:ba:71:d9:c1
capabilities: mii autonegotiation 100bt-fd 100bt 10bt-fd 10bt ethernet
configuration: autonegociated=100bt broadcast=yes \ \driver=via-rhine driverversion=1.1.20-2.6 duplex=full \ \ip=172.21.1.1 link=yes multicast=yes
|
Si osservi che la precisione e il dettaglio delle informazioni si riduce se usato da un utente comune, senza privilegi.
Per approfondire l'uso del programma conviene leggere la pagina di manuale lshw(8).
Appunti di informatica libera 2006.01.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>, <daniele·giacomini (ad) poste·it>
1) Procinfo GNU GPL
2) Linux PCI utilities GNU GPL
3) USButils GNU GPL
4) Lshw GNU GPL
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome informazioni_dai_file_nbsp_system_virtuali_171_proc_187_e_17.htm
[successivo]
[precedente]
[inizio]
[fine]
[indice generale]
[indice ridotto]
[violazione licenza]
[translators]
[docinfo]
[indice analitico]

