El directorio /proc o sistema de archivos proc (process filesystem) contiene una jerarquía de archivos (no cualquier tipo de archivos, sino archivos virtuales) que nos muestran el estado actual del kernel. Esta es la forma en que las aplicaciones y usuarios pueden tener una vista actualizada del estado del sistema.
El /proc se puede considerar un pseudo-filesystem, pues no es un sistema de archivos real y no consume almacenamiento, solo memoria.
El /proc de Linux es diferente al de otros Unix, pues a diferencia de Solaris o BSD, lo exiente para incluir otra información que no es propia de los procesos. Dentro del /proc de Linux encontraremos información acerca de cada proceso que se está ejecutando en el sistema así también como detalles del hardware del sistema.

A continuación veremos algunos archivosbastante útiles del /proc del cual podremos obtener algo de información.
Util para diagnostigar problemas de fragmentación de memoria. Cada columna representa el número de páginas disponibles en un momento dado.
$ cat /proc/buddyinfo
Node 0, zone DMA 4 4 3 3 2 2 2 1 1 1 1
Node 0, zone Normal 29 14 4 6 3 2 2 7 6 0 165
Node 0, zone HighMem 5 27 4 5 10 3 4 5 3 1 26
Muestra los parámetros pasados al kernel en el momento en que éste inicia.
$ cat /proc/cmdline
root=UUID=c0b64eef-9af3-48df-8ddc-ab7b8567da58 ro quiet splash
Esta línea te puede resultar familiar si has visto alguna vez un archivo de configuración del GRUB u otro administrador de booteo.
Identificación acerca del procesador utilizado.
$ cat /proc/cpuinfo
processor :
0
vendor_id : AuthenticAMD
cpu family :
15
model :
107
model name : AMD Athlon
(tm
) 64 X2 Dual Core Processor
5000+
stepping :
2
cpu MHz :
2612.
279
cache size :
512 KB
physical id :
0
siblings :
2
core id :
0
cpu cores :
2
apicid :
0
initial apicid :
0
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 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch
bogomips :
5224.
55
clflush size :
64
power management: ts fid vid ttp tm stc 100mhzsteps
processor : 1
vendor_id : AuthenticAMD
cpu family : 15
model : 107
model name : AMD Athlon(tm) 64 X2 Dual Core Processor 5000+
stepping : 2
cpu MHz : 2612.279
cache size : 512 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
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 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch
bogomips : 5224.42
clflush size : 64
power management: ts fid vid ttp tm stc 100mhzsteps
Códigos de cifrado (más algunos detalles) utilizados por el kernel.
$ cat /proc/crypto
name : stdrng
driver : krng
module : kernel
priority :
200
refcnt :
1
selftest : passed
type : rng
seedsize :
0
name : md5
driver : md5-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
type : digest
blocksize : 64
digestsize : 16
Dispositivos de carácteres y de bloque configurados y cargados.
$ cat /proc/devices
Character devices:
1 mem
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
108 ppp
116 alsa
128 ptm
136 pts
180 usb
189 usb_device
195 nvidia
216 rfcomm
251 hidraw
252 usb_endpoint
253 usbmon
254 rtc
Block devices:
1 ramdisk
259 blkext
7 loop
8 sd
9 md
11 sr
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
252 device-mapper
253 pktcdvd
254 mdp
Lista de filesystems soportados por el kernel.
$ cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev cgroup
nodev cpuset
nodev debugfs
nodev securityfs
nodev sockfs
nodev usbfs
nodev pipefs
nodev anon_inodefs
nodev tmpfs
nodev inotifyfs
nodev devpts
ext3
ext4
ext2
cramfs
nodev ramfs
nodev hugetlbfs
nodev ecryptfs
nodev fuse
fuseblk
nodev fusectl
nodev mqueue
nodev binfmt_misc
Este ya es conocido para los seguidores del blog, recuerdas cuando hablamos de ver interrupciones en tiempo real.
Muestra el mapa de memoria actual del sistema para los dispositivos:
$ cat /proc/iomem
00000000-0000ffff : reserved
00010000-0009efff : System RAM
0009f000-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000cefff : Video ROM
000e6000-000fffff : reserved
000f0000-000fffff : System ROM
00100000-7bfbffff : System RAM
00100000-00504f5e : Kernel code
00504f5f-0072ae5f : Kernel data
007b8000-008780ab : Kernel bss
7bfc0000-7bfcdfff : ACPI Tables
7bfce000-7bfeffff : ACPI Non-volatile Storage
7bff0000-7bffdfff : reserved
c0000000-cfffffff : 0000:00:0d.0
dd000000-ddffffff : 0000:00:0d.0
de000000-deffffff : 0000:00:0d.0
de000000-deffffff : nvidia
dff40000-dff5ffff : 0000:00:0d.0
dff78000-dff7bfff : 0000:00:05.0
dff78000-dff7bfff : ICH HD audio
dff7c000-dff7cfff : 0000:00:08.0
dff7c000-dff7cfff : sata_nv
dff7d000-dff7dfff : 0000:00:07.0
dff7d000-dff7dfff : forcedeth
dff7ec00-dff7ecff : 0000:00:02.1
dff7ec00-dff7ecff : ehci_hcd
dff7f000-dff7ffff : 0000:00:02.0
dff7f000-dff7ffff : ohci_hcd
e0000000-efffffff : PCI MMCONFIG 0
e0000000-efffffff : pnp 00:09
fec00000-fec00fff : IOAPIC 0
fec00000-fec00fff : reserved
fec00000-fec00fff : pnp 00:07
fec80000-fecfffff : 0000:00:01.3
fee00000-feefffff : reserved
fee00000-fee00fff : Local APIC
fee00000-fee00fff : pnp 00:07
fee01000-feefffff : pnp 00:06
fefe0000-fefe01ff : pnp 00:06
fefe1000-fefe1fff : pnp 00:06
fff00000-ffffffff : reserved
Muestra las regiones de puertos registrados, actualmente, utilizados para la comunicación de entrada y salida con un dispositivo
$ cat /proc/ioports
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
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
0170-0177 : 0000:00:06.0
0170-0177 : pata_amd
01f0-01f7 : 0000:00:06.0
01f0-01f7 : pata_amd
0376-0376 : 0000:00:06.0
0376-0376 : pata_amd
03c0-03df : vga+
03f6-03f6 : 0000:00:06.0
03f6-03f6 : pata_amd
03f8-03ff : serial
04d0-04d1 : pnp 00:06
0800-080f : pnp 00:06
0a00-0adf : pnp 00:08
0ae0-0aef : pnp 00:08
0cf8-0cff : PCI conf1
4000-407f : pnp 00:06
4000-4003 : ACPI PM1a_EVT_BLK
4004-4005 : ACPI PM1a_CNT_BLK
4008-400b : ACPI PM_TMR
4010-4015 : ACPI CPU throttle
4020-4027 : ACPI GPE0_BLK
4080-40ff : pnp 00:06
4400-447f : pnp 00:06
4480-44ff : pnp 00:06
44a0-44af : ACPI GPE1_BLK
4800-487f : pnp 00:06
4880-48ff : pnp 00:06
4900-493f : 0000:00:01.1
4c00-4c7f : pnp 00:06
4c80-4cff : pnp 00:06
4d00-4d3f : 0000:00:01.1
4d00-4d3f : nForce2_smbus
4e00-4e3f : 0000:00:01.1
4e00-4e3f : nForce2_smbus
4f00-4fff : 0000:00:01.0
eb00-eb0f : 0000:00:08.0
eb00-eb0f : sata_nv
eb80-eb83 : 0000:00:08.0
eb80-eb83 : sata_nv
ec00-ec07 : 0000:00:08.0
ec00-ec07 : sata_nv
ed00-ed03 : 0000:00:08.0
ed00-ed03 : sata_nv
ed80-ed87 : 0000:00:08.0
ed80-ed87 : sata_nv
ee00-ee07 : 0000:00:07.0
ee00-ee07 : forcedeth
fff0-ffff : 0000:00:06.0
fff0-ffff : pata_amd
Estadísticas de carga promedio del procesador con respecto al sobretiempo de CPU y de E/S, así como también datos adicionales de los que se valen el uptime y otros comandos.
$ cat /proc/loadavg
0.02 0.07 0.06 2/228 10399
Lista los archivos bloqueados por el kernel.
$ cat /proc/locks
1: POSIX ADVISORY READ 8108 08:03:98471 1073741826 1073742335
2: POSIX ADVISORY WRITE 8108 08:03:98490 1073741824 1073742335
3: POSIX ADVISORY WRITE 8108 08:03:98473 0 EOF
4: POSIX ADVISORY WRITE 8099 08:03:277772 0 EOF
5: POSIX ADVISORY READ 3055 00:12:59080 4 4
6: POSIX ADVISORY WRITE 4101 08:03:99976 0 EOF
7: POSIX ADVISORY READ 3058 00:12:7272 4 4
8: POSIX ADVISORY READ 3058 00:12:7271 4 4
9: POSIX ADVISORY READ 3058 00:12:5704 4 4
10: POSIX ADVISORY READ 3058 00:12:7270 4 4
11: POSIX ADVISORY READ 3058 00:12:5686 4 4
12: POSIX ADVISORY WRITE 3058 00:12:7249 0 0
13: POSIX ADVISORY READ 3055 00:12:5704 4 4
14: POSIX ADVISORY READ 3055 00:12:5686 4 4
15: POSIX ADVISORY WRITE 3055 00:12:7234 0 0
16: FLOCK ADVISORY WRITE 2581 00:12:5934 0 EOF
17: POSIX ADVISORY WRITE 2554 00:12:5903 0 EOF
18: POSIX ADVISORY READ 2401 08:02:90115 4 4
19: POSIX ADVISORY READ 2401 00:12:5704 4 4
20: POSIX ADVISORY READ 2401 00:12:5686 4 4
21: POSIX ADVISORY WRITE 2401 00:12:5690 0 0
Información sobre las configuración de discos múltiples de RAID. Mi sistema no tiene un RAID configurado
$ cat /proc/mdstat
Personalities :
unused devices: <none>
Brinda toda la información que puedas esperar acerca del uso de la memoria principal (RAM y Swap) del sistema.
$ cat /proc/meminfo
MemTotal: 1996944 kB
MemFree: 718116 kB
Buffers: 114240 kB
Cached: 799512 kB
SwapCached: 0 kB
Active: 550248 kB
Inactive: 641560 kB
Active(anon): 285608 kB
Inactive(anon): 0 kB
Active(file): 264640 kB
Inactive(file): 641560 kB
Unevictable: 0 kB
Mlocked: 0 kB
HighTotal: 1126152 kB
HighFree: 34968 kB
LowTotal: 870792 kB
LowFree: 683148 kB
SwapTotal: 771112 kB
SwapFree: 771112 kB
Dirty: 392 kB
Writeback: 0 kB
AnonPages: 278196 kB
Mapped: 96300 kB
Slab: 46376 kB
SReclaimable: 37080 kB
SUnreclaim: 9296 kB
PageTables: 2788 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1769584 kB
Committed_AS: 793232 kB
VmallocTotal: 122880 kB
VmallocUsed: 48688 kB
VmallocChunk: 72180 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 4096 kB
DirectMap4k: 45048 kB
DirectMap4M: 860160 kB
Controladores registrados en el dispositivo de misceláneos (10)
$ cat /proc/misc
58 network_throughput
59 network_latency
60 cpu_dma_latency
61 device-mapper
1 psaux
62 pktcdvd
228 hpet
229 fuse
63 ecryptfs
231 snapshot
Muestra los módulos cargados en el sistema:
$ cat /proc/modules
ppdev 15620 0 - Live 0xf7e28000
bridge 56212 0 - Live 0xf7ecd000
stp 10500 1 bridge, Live 0xf7d4b000
bnep 20224 2 - Live 0xf7c69000
video 25360 0 - Live 0xf7e40000
output 11008 1 video, Live 0xf7c74000
input_polldev 11912 0 - Live 0xf7c6f000
binfmt_misc 16776 1 - Live 0xf7dc9000
lp 17156 0 - Live 0xf7c45000
parport 42220 2 ppdev,lp, Live 0xf7d55000
snd_hda_intel 434100 2 - Live 0xf7ee8000
snd_pcm_oss 46336 0 - Live 0xf7e49000
snd_mixer_oss 22656 1 snd_pcm_oss, Live 0xf7e2d000
snd_pcm 83076 2 snd_hda_intel,snd_pcm_oss, Live 0xf7ddc000
snd_seq_dummy 10756 0 - Live 0xf7dcf000
snd_seq_oss 37760 0 - Live 0xf7d97000
snd_seq_midi 14336 0 - Live 0xf7d87000
snd_rawmidi 29696 1 snd_seq_midi, Live 0xf7d61000
snd_seq_midi_event 15104 2 snd_seq_oss,snd_seq_midi, Live 0xf7d45000
snd_seq 56880 6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event, Live 0xf7d24000
snd_timer 29704 2 snd_pcm,snd_seq, Live 0xf7c93000
snd_seq_device 14988 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq, Live 0xf7c51000
nvidia 7233756 36 - Live 0xf859a000 (P)
snd 62756 13 snd_hda_intel,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device, Live 0xf7df2000
soundcore 15200 1 snd, Live 0xf7dd3000
agpgart 42696 1 nvidia, Live 0xf7dbc000
snd_page_alloc 16904 2 snd_hda_intel,snd_pcm, Live 0xf7da2000
i2c_nforce2 14980 0 - Live 0xf7d91000
psmouse 61972 0 - Live 0xf7d75000
serio_raw 13444 0 - Live 0xf7d4f000
k8temp 12416 0 - Live 0xf7d3f000
pcspkr 10496 0 - Live 0xf7c5e000
usb_storage 99648 0 - Live 0xf7d09000
usbhid 42336 0 - Live 0xf7c86000
forcedeth 61712 0 - Live 0xf7c9c000
fbcon 46112 0 - Live 0xf7c78000
tileblit 10752 1 fbcon, Live 0xf7c64000
font 16384 1 fbcon, Live 0xf7c58000
bitblit 13824 1 fbcon, Live 0xf7c4b000
softcursor 9984 1 bitblit, Live 0xf7c40000
Lista de todos los montajes en uso por el sistema.
$ cat /proc/mounts
rootfs / rootfs rw 0 0
none /sys sysfs rw,nosuid,nodev,noexec 0 0
none /proc proc rw,nosuid,nodev,noexec 0 0
udev /dev tmpfs rw,mode=755 0 0
/dev/disk/by-uuid/c0b64eef-9af3-48df-8ddc-ab7b8567da58 / ext3 rw,relatime,errors=remount-ro,data=ordered 0 0
securityfs /sys/kernel/security securityfs rw 0 0
tmpfs /lib/init/rw tmpfs rw,nosuid,mode=755 0 0
fusectl /sys/fs/fuse/connections fusectl rw 0 0
varrun /var/run tmpfs rw,nosuid,mode=755 0 0
varlock /var/lock tmpfs rw,nosuid,nodev,noexec 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0
devpts /dev/pts devpts rw,nosuid,noexec,gid=5,mode=620 0 0
/dev/sda3 /home ext3 rw,relatime,errors=remount-ro,data=ordered 0 0
tmpfs /lib/modules/2.6.28-15-generic/volatile tmpfs rw,mode=755 0 0
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec 0 0
gvfs-fuse-daemon /home/luciano/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev,user_id=1000,group_id=1000 0 0
Muestra información acerca de la asignación de bloques de particiones:
$ cat /proc/partitions
major minor #blocks name
8 0 39121488 sda
8 2 17036901 sda2
8 3 21310222 sda3
8 4 771120 sda4
Estadísticas acerca del sistema desde que fue reiniciado por última vez. Su contenido es bastante largo y no lo vamos a explicar, por lo tanto no tiene sentido hacer un volcado del mismo en esta publicación.
Muestra el espacio de memoria de intercambio (swap) y su uso.
$ cat /proc/swaps
Filename Type Size Used Priority
/dev/sda4 partition 771112 0 -1
Muestra el tiempo que lleva encendido el sistema.
$ cat /proc/uptime
20904.50 20585.45
Muestra la versión del kernel y del compilador gcc (GNU C Compiler).
$ cat /proc/version
Linux version 2.6.28-15-generic (buildd@palmer) (gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) ) #49-Ubuntu SMP Tue Aug 18 18:40:08 UTC 2009
Vía: Red Hat Enterprise Linux 4: Manual de referencia
Una respuesta para "Sistema de archivos proc"
Bastante interesante tu articulo! Lo habia agregado como favorito en mi GReader para estudiarlo con calma. Ahora tengo una vision mas clara de esta subcarpeta…
Buen post!
Comentarios: