IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

El sistema de fitxers virtual (o pseudo-sistema de fitxers) procfs (les inicials de proces filesystem) és un sistema de fitxers generat durant l'arrancada del sistema i conté la informació dels processos proporcionada pel nucli de Linux.

Actualment, a més del processos, /proc conté informació sobre el maquinari

Sovint es munta a:

/proc 

segons l'estàndard FHS. Els fitxers de /proc estan a la RAM i no consumeixen espai de disc.

Moltes aplicacions de l'espai d'usuari es basen en /proc per accedir a informació del nucli del sistema.

Interrupcions

NOTA: Es mostren els que estan en ús que no són tots els existents. Normalment fins que el dispositiu no s'utilitza.

$ cat /proc/interrupts 
           CPU0       CPU1       
  0:  231597007  231309385   IO-APIC-edge      timer
  1:          1          1   IO-APIC-edge      i8042
  3:          1          1   IO-APIC-edge    
  4:          1          1   IO-APIC-edge    
  6:          2          1   IO-APIC-edge      floppy
  7:          0          0   IO-APIC-edge      parport0
  8:          1          0   IO-APIC-edge      rtc0
  9:          0          0   IO-APIC-fasteoi   acpi
 12:          1          3   IO-APIC-edge      i8042
 14:    1426875    1431618   IO-APIC-edge      ata_piix
 15:      69633      69202   IO-APIC-edge      ata_piix
 16:     101764     101838   IO-APIC-fasteoi   heci
 18:    1570239    1575500   IO-APIC-fasteoi   ata_piix
 20:          1          2   IO-APIC-fasteoi   ehci_hcd:usb2, uhci_hcd:usb3, uhci_hcd:usb5
 21:    9151292    9356516   IO-APIC-fasteoi   uhci_hcd:usb4, uhci_hcd:usb6, HDA Intel
 22:    1411178    1417843   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb7, ohci1394
2300:    4114964    4136588   PCI-MSI-edge      [email protected]:0000:00:02.0
2301:    5495555    5563908   PCI-MSI-edge      eth1
NMI:          0          0   Non-maskable interrupts
LOC:  196575661  197171721   Local timer interrupts
RES:   45221385   44462973   Rescheduling interrupts
CAL:        179        151   Function call interrupts
TLB:     959392     987974   TLB shootdowns
SPU:          0          0   Spurious interrupts
ERR:          0
MIS:          0 

La columna de la dreta és el driver que està utilitzant el IRQ.

Taula de IRQs i el seu típic ús:

0  System timer                  Reserved for internal use.
1  Keyboard                      Reserved for keyboard use only.
2  Cascade for IRQs 8–15         The original x86 IRQ-handling circuit can manage
                                 just 8 IRQs; 2 are tied together to handle 16 IRQs,
                                 but IRQ 2 must be used to handle IRQs 8–15.
   Second RS-232 serial port
3                                May also be shared by a fourth RS-232 serial port.
   ( COM2: in Windows)
                                 May also be shared by a third RS-232 serial port.
4  First RS-232 serial port
   ( COM1: in Windows)
5  Sound card or second paral-
   lel port (LPT2: in Windows)
6  Floppy disk controller        Reserved for the first floppy disk controller.
   First parallel port (LPT1: in
7
   Windows)
8  Real-time clock               Reserved for system clock use only.
9  Open interrupt
10 Open interrupt
11 Open interrupt
12      PS/2 mouse
13      Math coprocessor               Reserved for internal use.
14      Primary ATA controller         The controller for ATA devices such as hard drives;
                                       typically /dev/hda and /dev/hdb under Linux.
15      Secondary ATA controller       The controller for more ATA devices; typically
                                      /dev/hdc and /dev/hdd under Linux.

Podem consultar l'assignació de IRQs durant la carrega del kernel amb dmesg

$ dmesg | grep -i irq
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
...
[    0.508222] PCI: Using ACPI for IRQ routing
...
[    0.566833] pci 0000:00:1c.1: PCI INT B -> GSI 21 (level, low) -> IRQ 21
...
[    1.568892] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    1.568987] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    1.569693] serial 0000:00:03.3: PCI INT B -> GSI 17 (level, low) -> IRQ 17
...
[    1.570973] ata_piix 0000:00:1f.2: PCI INT B -> GSI 18 (level, low) -> IRQ 18
...

Adreces I/0

També coneguts com ports IO. Els podeu consultar a:

$ cat /proc/ioports
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
004e-004f : tpm_infineon0
0050-0053 : timer1
0060-0060 : keyboard
0064-0064 : keyboard
0070-0071 : rtc0
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
...

Adreces DMA

Mostra les adreces DMA en ús

$ cat /proc/dma 
 2: floppy
 3: parport0
 4: cascade

Podem consultar la informació relacionada amb DMA durant la carrega del kernel amb dmesg

$ dmesg | grep -i dma
[    0.000000] ACPI: DMAR 7E2C225F, 0198 (r1 COMPAQ BEARLAKE        1             0)
[    0.000000]   DMA      0x00000000 -> 0x00001000
[    0.000000]   DMA zone: 32 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 3941 pages, LIFO batch:0
[    1.724414] ata1: SATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0x11f0 irq 14
[    1.724419] ata2: SATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0x11f8 irq 15
[    2.529227] ata1.00: ATA-7: Maxtor 6V200E0, VA111900, max UDMA/133
[    2.545256] ata1.00: configured for UDMA/133
[    3.348588] ata2.00: ATA-8: ST3500820AS, SD25, max UDMA/133
[    3.364615] ata2.00: configured for UDMA/133
[    3.448592] ata3: SATA max UDMA/133 cmd 0x1260 ctl 0x1280 bmdma 0x1210 irq 18
[    3.448595] ata4: SATA max UDMA/133 cmd 0x1268 ctl 0x1284 bmdma 0x1218 irq 18
[    3.975044] ata3.00: ATA-7: ST3250820AS, 3.AAD, max UDMA/133
[    4.041712] ata3.00: configured for UDMA/133
[     4.540210] ata4.00: ATAPI: LITE-ON COMBO SHC-48S7K, VQK6, max UDMA/100
[    4.572232] ata4.00: configured for UDMA/100
[   10.617160] parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,ECP,DMA]

Estructura dels directoris

Consulteu Sistema de fitxers proc

Modificar paràmetres del nucli sysctl

Consulteu sysctl.

Fitxers

Consulteu el fitxer de man per a més informació:

$ man proc

/proc/interrupts

$ cat /proc/interrupts

      CPU0       
  0:        143   IO-APIC-edge      timer
  1:     102716   IO-APIC-edge      i8042
  6:          2   IO-APIC-edge      floppy
  7:          1   IO-APIC-edge      parport0
  8:          3   IO-APIC-edge      rtc
  9:          0   IO-APIC-fasteoi   acpi
 12:     880405   IO-APIC-edge      i8042
 15:     354059   IO-APIC-edge      ide1
 16:    1979757   IO-APIC-fasteoi   ohci_hcd:usb1, sata_nv
 17:    1558389   IO-APIC-fasteoi   ohci_hcd:usb2, NVidia CK8S
 18:        250   IO-APIC-fasteoi   ehci_hcd:usb3
 19:          2   IO-APIC-fasteoi   ohci1394
 20:    5247166   IO-APIC-fasteoi   eth0, [email protected]:0000:01:00.0
NMI:          0 
LOC:   13609757 
ERR:          1
MIS:          0

On la última columna representa el component del kernel que s'encarrega del IRQ. Alguns exemples:

  • i8042: Controlador PS2 (IRQ 1 és el teclat i IRQ 12 és el ratolí)
  • parport0: port paral·lel


El sistema PIC esta basat en 16 interrupcions (0-15):

IRQ LIST
irq 0 Rellotge
irq 1 Teclat
irq 3, 4 Port sèrie
irq 5 candidat amb alta prioritat
irq 6 floppy
irq 7 impressores
irq 8 sistema
irq 9 Targeta de xarxa? (eth) o APIC
irq 10, 11 lliure
irq 12 ratolí
irq 13 lliure
irq 14 Disc dur primari
irq 15 Disc dur secundari

Les interrupcions estan ordenades per prioritat. Actualment els sistemes utilitzen APIC que permet més interrupcions una gestió avançada de les mateixes.

IRQ. /proc/irq

A la carpeta /proc/irq/ hi ha una carpeta per cada interrupció:

$ ls /proc/irq/
0  1  10  11  12  13  14  15  16  17  18  19  2  20  3  4  5  6  7  8  9

/proc/cpuinfo

$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 47
model name      : AMD Athlon(tm) 64 Processor 3000+
stepping        : 2
cpu MHz         : 1808.802
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm   
3dnowext 3dnow up pni ts fid vid ttp tm stc
bogomips        : 3619.95
clflush size    : 64

/proc/devices

Mostra els dispositius del sistema:

$ cat /proc/devices | more
Character devices:
  1 mem
  2 pty
  3 ttyp
  4 /dev/vc/0
  4 tty
  4 ttyS
  5 /dev/tty
  5 /dev/console
  5 /dev/ptmx
  6 lp
  7 vcs
 10 misc
 13 input
 14 sound
 21 sg
 29 fb
 99 ppdev
116 alsa
128 ptm
136 pts
171 ieee1394
180 usb
189 usb_device
216 rfcomm
226 drm
254 usb_endpoint 

Block devices:
  1 ramdisk
  2 fd
  8 sd
 22 ide1
 65 sd
 66 sd
 67 sd
 68 sd
 69 sd
 70 sd
 71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd  

/proc/filesystems

Mostra la llista de sistemes de fitxers

$ cat /proc/filesystems 
nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   cpuset
nodev   debugfs
nodev   securityfs
nodev   sockfs
nodev   pipefs
nodev   anon_inodefs
nodev   futexfs
nodev   tmpfs
nodev   inotifyfs
nodev   devpts
        cramfs
nodev   ramfs
nodev   mqueue
nodev   fuse
        fuseblk
nodev   fusectl
nodev   usbfs
        ext3
        vfat
nodev   autofs
nodev   binfmt_misc  

Vegeu:

$ man filesystems

/proc/iomem

Mostra els espais de memòria reservats:

$ cat /proc/iomem 
00000000-0009f7ff : System RAM
  00000000-00000000 : Crash kernel
0009f800-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000ccfff : Video ROM
000d4000-000d4fff : Adapter ROM
000d5000-000d7fff : pnp 00:01
000f0000-000fffff : System ROM
00100000-3ffeffff : System RAM
  00100000-002f7e85 : Kernel code
  002f7e86-003dce83 : Kernel data
3fff0000-3fff2fff : ACPI Non-volatile Storage
3fff3000-3fffffff : ACPI Tables
50000000-500fffff : PCI Bus #02
  50000000-5001ffff : 0000:02:08.0
d0000000-dfffffff : PCI Bus #01
...

/proc/meminfo

$ cat /proc/meminfo 
MemTotal:      1035636 kB
MemFree:         64272 kB
Buffers:        138676 kB
Cached:         242496 kB
SwapCached:      14408 kB
Active:         713616 kB
Inactive:       183660 kB
HighTotal:      131008 kB
HighFree:          244 kB
LowTotal:       904628 kB
LowFree:         64028 kB
SwapTotal:     2048248 kB
SwapFree:      2013444 kB
Dirty:             612 kB
Writeback:           0 kB
AnonPages:      501712 kB
Mapped:         113492 kB
Slab:            50004 kB
SReclaimable:    35856 kB
SUnreclaim:      14148 kB
PageTables:       3816 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:   2566064 kB
Committed_AS:  1377968 kB
VmallocTotal:   114680 kB
VmallocUsed:      8140 kB
VmallocChunk:   105460 kB

/proc/ioports

$ cat /proc/ioports 
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-006f : keyboard
0070-0077 : rtc
...

/proc/partitions

Mostra les particions del sistema

$ cat partitions 
major minor  #blocks  name 

   8     0  199148544 sda
   8     1   33559753 sda1
   8     2   20482875 sda2
   8     3          1 sda3
   8     5   30716248 sda5
   8     6  112334481 sda6
   8     7    2048256 sda7
   8    16  156290904 sdb
   8    17  156288321 sdb1 

/proc/modules

Mostra els mòduls:

$ cat /proc/modules | more
binfmt_misc 12936 1 - Live 0xf8c8b000
radeon 125472 2 - Live 0xf8d10000
drm 83348 3 radeon, Live 0xf8cd9000
rfcomm 42136 2 - Live 0xf8cb3000
l2cap 26240 11 rfcomm, Live 0xf8c83000
bluetooth 57060 4 rfcomm,l2cap, Live 0xf8c96000
vboxdrv 60720 0 - Live 0xf8d4f000
af_packet 24840 2 - Live 0xf8c7b000

/proc/vmstat

Mostra la informació sobre la memòria (vegeu la comanda vmstat)

$ cat /proc/vmstat 
nr_free_pages 7682
nr_inactive 48471
nr_active 184260
nr_anon_pages 124606
nr_mapped 28373
nr_file_pages 108138
...

/proc/version

$ cat /proc/version
Linux version 2.6.22-14-generic ([email protected]) (gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)) #1 SMP Tue Feb 12 07:42:25 UTC 2008

Processos

Cada procés té una carpeta a proc amb el seu identificador (PID).

Fitxer cmdline

Mostra la comanda que s'ha executat per al procés:

$ cat /proc/9774/cmdline 
/bin/sh/usr/lib/firefox/run-mozilla.sh/usr/lib/firefox/firefox-bin

USB fileSystem (usbfs)

Recursos:

Vegeu també