[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]
Nel capitolo introduttivo ai processi elaborativi si è già accennato al ruolo del file system virtuale /proc/
di GNU/Linux. Al suo interno, assieme alla situazione di ogni processo, si possono conoscere molte altre informazioni legate al funzionamento del sistema operativo, oltre alla possibilità, entro certi limiti, di interagire con il kernel 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).
La quantità di informazioni disponibili è 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.
procinfo [opzioni]
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 45.1.
Tabella 45.1. Alcuni dei nomi utilizzati per descrivere i campi delle tabelle generate da procinfo.
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.
-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.
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
socklist
socklist è un programma molto semplice che 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 0Appunti di informatica libera 2003.01.01 --- Copyright © 2000-2003 Daniele Giacomini --
daniele @ swlibero.org
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome informazioni_dal_file_nbsp_system_virtuale_proc_di_gnu_linux.html
[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]