3 el sistema de archivos proc

42
El sistema de archivos /proc The Linux kernel has two primary functions: to control access to physical devices on the computer and to schedule when and how processes interact with these devices. The /proc/ directory also called the proc file system contains a hierarchy of special files which represent the current state of the kernel allowing applications and users to peer into the kernel's view of the system. Dentro del directorio /proc/, se puede encontrar una gran cantidad de información con detalles sobre el hardware del sistema y cualquier proceso que se esté ejecutando actualmente. Además, algunos de los archivos dentro del árbol de directorios /proc/ pueden ser manipulados por los usuarios y aplicaciones para comunicar al kernel cambios en la configuración. 3.1. Sistema de archivos virtual En Linux, todo se guarda en archivos. La mayoría de usuarios están familiarizados con los dos primeros tipos de archivos, de texto y binarios. Sin embargo, el directorio /proc/ contiene otro tipo de archivos llamado archivo virtual. Por esta razón, es que a menudo se hace referencia a /proc/ como un sistema de archivos virtual. Estos archivos virtuales poseen cualidades únicas. En primer lugar, la mayoría de ellos tienen un tamaño de 0 bytes. Sin embargo, cuando se visualiza el archivo, éste puede contener una gran cantidad de información. Además, la mayoría de configuraciones del tiempo y las fechas reflejan el tiempo y fecha real, lo que es un indicativo de que están siendo constantemente modificados. Virtual files such as /proc/interrupts , /proc/meminfo, /proc/mounts , and /proc/ partitions provide an up-to-the-moment glimpse of the system's hardware. Others, like the / proc/filesystems file and the /proc/sys/ directory provide system configuration information and interfaces. Para propósitos organizacionales, los archivos que contienen información sobre un tópico similar se agrupan en directorios virtuales y sub-directorios. Por ejemplo, /proc/ide/ contiene información sobre los dispositivos IDE. De la misma forma, los directorios de procesos contienen información sobre cada proceso ejecutándose en el sistema. 3.1.1. Visualización de archivos virtuales Mediante el uso de los comandos cat, more, o less en los archivos dentro del directorio /proc/, los usuarios pueden inmediatamente acceder una cantidad enorme de información acerca del sistema. Por ejemplo, para desplegar el tipo de CPU que tiene un equipo, escriba cat /proc/ cpuinfo para recibir una salida similar a lo siguiente: processor : 0 vendor_id : AuthenticAMD cpu family : 5 model : 9 model name : AMD-K6(tm) 3D+ Processor stepping : 1 cpu MHz : 400.919 cache size : 256 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no

Upload: josemanuelacostarendon

Post on 20-Aug-2015

1.790 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: 3  el sistema de archivos proc

El sistema de archivos /proc The Linux kernel has two primary functions: to control access to physical devices on the computer and

to schedule when and how processes interact with these devices. The /proc/ directory — also called

the proc file system — contains a hierarchy of special files which represent the current state of the

kernel — allowing applications and users to peer into the kernel's view of the system.

Dentro del directorio /proc/, se puede encontrar una gran cantidad de información con detalles

sobre el hardware del sistema y cualquier proceso que se esté ejecutando actualmente. Además,

algunos de los archivos dentro del árbol de directorios /proc/ pueden ser manipulados por los

usuarios y aplicaciones para comunicar al kernel cambios en la configuración.

3.1. Sistema de archivos virtual En Linux, todo se guarda en archivos. La mayoría de usuarios están familiarizados con los dos

primeros tipos de archivos, de texto y binarios. Sin embargo, el directorio /proc/ contiene otro tipo

de archivos llamado archivo virtual. Por esta razón, es que a menudo se hace referencia a /proc/

como un sistema de archivos virtual.

Estos archivos virtuales poseen cualidades únicas. En primer lugar, la mayoría de ellos tienen un

tamaño de 0 bytes. Sin embargo, cuando se visualiza el archivo, éste puede contener una gran

cantidad de información. Además, la mayoría de configuraciones del tiempo y las fechas reflejan el

tiempo y fecha real, lo que es un indicativo de que están siendo constantemente modificados.

Virtual files such as /proc/interrupts, /proc/meminfo, /proc/mounts, and /proc/

partitions provide an up-to-the-moment glimpse of the system's hardware. Others, like the /

proc/filesystems file and the /proc/sys/ directory provide system configuration information and

interfaces.

Para propósitos organizacionales, los archivos que contienen información sobre un tópico similar se

agrupan en directorios virtuales y sub-directorios. Por ejemplo, /proc/ide/ contiene información

sobre los dispositivos IDE. De la misma forma, los directorios de procesos contienen información

sobre cada proceso ejecutándose en el sistema.

3.1.1. Visualización de archivos virtuales

Mediante el uso de los comandos cat, more, o less en los archivos dentro del directorio /proc/,

los usuarios pueden inmediatamente acceder una cantidad enorme de información acerca del

sistema. Por ejemplo, para desplegar el tipo de CPU que tiene un equipo, escriba cat /proc/

cpuinfo para recibir una salida similar a lo siguiente:

processor : 0

vendor_id : AuthenticAMD

cpu family : 5

model : 9

model name : AMD-K6(tm) 3D+

Processor stepping : 1 cpu

MHz : 400.919

cache size : 256 KB

fdiv_bug : no

hlt_bug : no

f00f_bug : no

coma_bug : no

Page 2: 3  el sistema de archivos proc

/proc/apm

16

fpu : yes

fpu_exception : yes

cpuid level : 1

wp : yes

flags : fpu vme de pse tsc msr mce cx8 pge mmx syscall 3dnow k6_mtrr

bogomips : 799.53

Como puede ver en el sistema de archivos /proc/, alguna información tiene sentido, mientras

que otras áreas aparecen en un código extraño. Por eso es que existen utilidades para extraer

información de los archivos virtuales y mostrarla en una forma útil. Ejemplos de estas utilidades

incluyen lspci, apm, free, y top.

Nota

Algunos archivos en el directorio /proc/ están configurados para que se puedan

leer sólo por el usuario root.

3.1.2. Cambiar archivos virtuales

Como regla general, la mayoría de los archivos virtuales dentro del directorio /proc solamente se

pueden leer. Sin embargo, algunos se pueden usar para ajustar la configuración del kernel. Esto

ocurre con los archivos del subdirectorio /proc/sys/.

To change the value of a virtual file, use the echo command and a greater than symbol (>) to redirect

the new value to the file. For example, to change the hostname on the fly, type:

echo www.example.com > /proc/sys/kernel/hostname

Otros archivos actúan como conmutadores binarios o boleanos. Si escribe cat /proc/sys/net/

ipv4/ip_forward verá el valor 0 o el valor 1. El valor 0 indica que el kernel no está realizando el

reenvio de paquetes. Si usa el comando echo para cambiar el valor del archivo ip_forward a 1, el

kernel activará inmediatamente el reenvio de paquetes.

Tip

Another command used to alter settings in the /proc/sys/ subdirectory is /sbin/

sysctl. For more information on this command, refer to Sección 3.4, “Uso del

comando sysctl”

For a listing of some of the kernel configuration files available in the /proc/sys/ subdirectory, refer

to Sección 3.3.9, “ /proc/sys/ ”.

3.2. Archivos de alto nivel en el sistema de archivos proc La siguiente lista expone algunos de los archivos más comunes y útiles que se encuentran en el

directorio /proc.

Page 3: 3  el sistema de archivos proc

/proc/apm

17

Nota

En la mayoría de los casos, el contenido de los archivos que aparecen en esta

sección no será el mismo que el de aquellos instalados en su máquina. Esto se debe

a que la mayor parte de la información es específica al hardware en el que esté

ejecutando Red Hat Enterprise Linux para esta documentación.

3.2.1. /proc/apm

Este archivo proporciona información acerca del estado de la Administración de la energía avanzada

(Advanced Power Management, APM), y es usado por el comando apm. Si un sistema sin batería está

conectado a una fuente de poder AC, este archivo virtual se vería similar a:

1.16 1.2 0x07 0x01 0xff 0x80 -1% -1 ?

Al ejecutar el comando apm -v en tal sistema resulta en una salida similar a lo siguiente:

APM BIOS 1.2 (kernel driver 1.16ac) AC on-line, no system battery

Para sistemas que no usan una batería como fuente de poder, apm sólo será capaz de poner la

máquina en modo standby. El comando apm es mucho más útil en portátiles. Por ejemplo, la salida

siguiente es del comando cat /proc/apm en una portátil mientras que está conectado a una toma

de corriente:

1.16 1.2 0x03 0x01 0x03 0x09 100% -1 ?

Cuando la misma portátil está desconectada de su fuente de energía durante algunos minutos, los

contenidos del archivo apm cambiarán a algo como:

1.16 1.2 0x03 0x00 0x00 0x01 99% 1792 min

El comando apm -v muestra información más útil tal como la siguiente:

APM BIOS 1.2 (kernel driver 1.16) AC off-line, battery status high: 99% (1 day, 5:52)

3.2.2. /proc/buddyinfo

Este archivo se utiliza principalmente para diagnosticar problemas de fragmentación de memoria.

Utilizando el algoritmo buddy, cada columna representa el número de páginas de un cierto orden

(de un cierto tamaño) que están disponibles en un momento dado. Por ejemplo, para la zona DMA

(acceso directo a memoria), hay 90 de 2^(0*PAGE_SIZE) pedazos de memoria. De forma similar, hay

6 de 2^(1*PAGE_SIZE) pedazos, y 2 de 2^(2*PAGE_SIZE) pedazos de memoria disponibles.

La fila DMA hace referencia a los primeros 16 MB en un sistema, la fila HighMem referencia toda la

memoria mayor que 4 GB en un sistema, y la fila Normal se refiere a toda la memoria en medio de

las anteriores.

Page 4: 3  el sistema de archivos proc

/proc/apm

18

Lo siguiente es un ejemplo de la salida típica de /proc/buddyinfo:

Node 0, zone

D MA

90

6

2

1

1

...

Node 0, zone Normal 1650 310 5 0 0 ... Node 0, zone HighMem 2 0 0 1 1 ...

3.2.3. /proc/cmdline

Este archivo muestra los parámetros pasados al kernel en el momento en que éste inicia. Un ejemplo

del archivo /proc/cmdline se vería como sigue?

ro root=/dev/VolGroup00/LogVol00 rhgb quiet 3

This output tells us the following:

ro

The root device is mounted read-only at boot time. The presence of ro on the kernel boot line

overrides any instances of rw.

root=/dev/VolGroup00/LogVol00

This tells us on which disk device or, in this case, on which logical volume, the root filesystem

image is located. With our sample /proc/cmdline output, the root filesystem image is located

on the first logical volume (LogVol00) of the first LVM volume group (VolGroup00). On a system

not using Logical Volume Management, the root file system might be located on /dev/sda1 or

/dev/sda2, meaning on either the first or second partition of the first SCSI or SATA disk drive,

depending on whether we have a separate (preceding) boot or swap partition on that drive.

Para obtener más información sobre LVM utilizado en Red Hat Enterprise Linux consulte http://

www.tldp.org/HOWTO/LVM-HOWTO/index.html.

rhgb

A short lowercase acronym that stands for Red Hat Graphical Boot, providing "rhgb" on the kernel

command line signals that graphical booting is supported, assuming that /etc/inittab shows

that the default runlevel is set to 5 with a line like this:

id:5:initdefault:

quiet

Indicates that all verbose kernel messages except those which are extremely serious should be

suppressed at boot time.

3.2.4. /proc/cpuinfo

Este archivo virtual identifica el tipo de procesador usado por su sistema. A continuación se muestra

un ejemplo de la salida típica de /proc/cpuinfo:

processor : 0

vendor_id : GenuineIntel

cpu family : 15

model : 2

Page 5: 3  el sistema de archivos proc

19

/proc/crypto

model name : Intel(R) Xeon(TM) CPU 2.40GHz

stepping : 7 cpu

MHz : 2392.371

cache size : 512 KB

physical id : 0

siblings : 2

runqueue : 0

fdiv_bug : no

hlt_bug : no

f00f_bug : no

coma_bug : no

fpu : yes

fpu_exception : yes

cpuid level : 2

wp : yes

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts

acpi mmx fxsr sse sse2 ss ht tm

bogomips : 4771.02

• processor — Proporciona un número de identificación para cada procesador. En sistemas con un

único procesador, tan sólo verá un 0.

• cpu family — Authoritatively identifies the type of processor in the system. For an Intel-based

system, place the number in front of "86" to determine the value. This is particularly helpful for those

attempting to identify the architecture of an older system such as a 586, 486, or 386. Because some

RPM packages are compiled for each of these particular architectures, this value also helps users

determine which packages to install.

• model name — Le indica el nombre conocido del procesador, incluyendo el nombre de proyecto.

• cpu MHz — Le muestra la velocidad precisa en megahertz de ese procesador en particular en

milésimas.

• cache size — Le indica la cantidad de memoria de nivel 2 de la caché disponible en el

procesador.

• siblings — Lista el número de CPUs hermanos dentro del mismo CPU físico para las

arquitecturas que utilizan múltiples hilos (hyper-threading).

• flags — Define un número de cualidades diferentes del procesador, como la presencia de una

unidad de coma flotante (FPU) y la habilidad para procesar instrucciones MMX.

3.2.5. /proc/crypto

Este archivo lista todos los códigos de cifrado utilizados por el kernel de Linux, incluyendo detalles

adicionales para cada uno. Un ejemplo del archivo /proc/crypto se vería como sigue:

name : sha1

module : kernel

type : digest

blocksize : 64

digestsize : 20

name : md5

module : md5

type : digest

blocksize : 64

digestsize : 16

Page 6: 3  el sistema de archivos proc

20

/proc/crypto

3.2.6. /proc/devices

Este archivo muestra los diversos dispositivos de carácteres y de bloque actualmente configurados

(no incluye dispositivos cuyos módulos no están cargados). Una salida de datos de ejemplo de este

archivo quedaría de la siguiente manera:

Character devices:

1 mem

4 /dev/vc/0

4 tty

4 ttyS

5 /dev/tty

5 /dev/console

5 /dev/ptmx

7 vcs

10 misc

13 input

29 fb

36 netlink

128 ptm

136 pts

180 usb

Block devices:

1 ramdisk

3 ide0

9 md

22 ide1

253 device-mapper

254 mdp

La salida de datos desde /proc/devices incluye el número mayor y el nombre del dispositivo y se

divide en dos secciones: Dispositivos de carácteres y Dispositivos de bloque.

Los Dispositivos de carácteres son similares a los Dispositivos de bloque, excepto por dos diferencias

básicas:

1. Los dispositivos de carácteres no requieren buffering. Los dispositivos de bloque disponen de una

memoria intermedia o buffer que les permite ordenar las peticiones antes de tratar con ellas. Esto

es muy importante para los dispositivos diseñados para guardar información — tales como discos

duros — porque la habilidad de ordenar la información antes de escribirla en el dispositivo permite

que ésta se almacene de forma más eficiente.

2. Los dispositivos de carácteres envían datos sin un tamaño preconfigurado. Los dispositivos de

bloque pueden enviar y recibir información en bloques de un tamaño particular, configurable por

dispositivo.

Para más información sobre los dispositivos refiérase a la siguiente documentación instalada:

/usr/share/doc/kernel-doc-<version>/Documentation/devices.txt

3.2.7. /proc/dma

Este archivo contiene una lista de los canales registrados DMA ISA en uso. Un ejemplo de los

archivos /proc/dma se vería similar a:

Page 7: 3  el sistema de archivos proc

21

/proc/execdomains

4: cascade

3.2.8. /proc/execdomains

Este archivo lista los dominios de ejecución soportados en la actualidad por el kernel de Linux junto

con la gama de personalidades que soportan.

0-0 Linux [kernel]

Think of execution domains as the "personality" for an operating system. Because other binary

formats, such as Solaris, UnixWare, and FreeBSD, can be used with Linux, programmers can change

the way the operating system treats system calls from these binaries by changing the personality of

the task. Except for the PER_LINUX execution domain, different personalities can be implemented as

dynamically loadable modules.

3.2.9. /proc/fb

Este archivo contiene una lista de dispositivos frame buffer, con el número del dispositivo frame

buffer y su controlador. La salida de datos más común de /proc/fb para sistemas que contienen

dispositivos de frame buffer se ve similar a:

0 VESA VGA

3.2.10. /proc/filesystems

Este archivo muestra una lista de los tipos del sistema de archivos soportados actualmente por

el kernel. A continuación tiene un ejemplo de salida de datos genérica de un archivo /proc/

filesystems:

nodev sysfs

nodev rootfs

nodev bdev

nodev proc

nodev sockfs

nodev binfmt_misc

nodev usbfs

nodev usbdevfs

nodev futexfs

nodev tmpfs

nodev pipefs

nodev eventpollfs

nodev devpts

ext2

nodev ramfs

nodev hugetlbfs

iso9660

nodev mqueue

ext3

nodev rpc_pipefs

nodev autofs

Page 8: 3  el sistema de archivos proc

22

/proc/execdomains

La primera columna significa si el sistema de archivos está montado en un dispositivo de bloque.

Aquellos que comiencen con nodev no están montados en un dispositivo. La segunda columna lista

el nombre de los sistemas de archivos soportados.

El comando mount circula por estos sistemas de archivos listados aquí cuando uno no está

especificado como un argumento.

3.2.11. /proc/interrupts

Este archivo graba el número de interrupciones por IRQ en la arquitectura x86. Un archivo estándar /

proc/interrupts es similar a lo siguiente:

CPU0

0: 80448940 XT-PIC timer 1: 174412 XT-PIC keyboard 2: 0 XT-PIC cascade 8: 1 XT-PIC rtc

10: 410964 XT-PIC eth0 12: 60330 XT-PIC PS/2 Mouse 14: 1314121 XT-PIC ide0 15: 5195422 XT-PIC ide1

NMI: 0 ERR: 0

Para una máquina con múltiples procesadores, el archivo aparecerá de forma diferente:

CPU0 CPU1

0: 1366814704 0 XT-PIC timer 1: 128 340 IO-APIC-edge keyboard 2: 0 0 XT-PIC cascade 8: 0 1 IO-APIC-edge rtc

12: 5323 5793 IO-APIC-edge PS/2 Mouse 13: 1 0 XT-PIC fpu 16: 11184294 15940594 IO-APIC-level Intel EtherExpress Pro 10/100 Ethernet 20: 8450043 11120093 IO-APIC-level megaraid 30: 10432 10722 IO-APIC-level aic7xxx 31: 23 22 IO-APIC-level aic7xxx

NMI: 0 ERR: 0

La primera columna se refiere al número de IRQ. Cada CPU del sistema tiene su propia columna y su

propio número de interrupciones por IRQ. La columna siguiente le indica el tipo de interrupción y la

última contiene el nombre del dispositivo que está localizado en ese IRQ.

Cada uno de los tipos de interrupciones vistos en este archivo, que son específicos para la

arquitectura, significan algo diferente. Los siguientes valores son comunes para las máquinas x86:

• XT-PIC — Interrupciones del ordenador AT antiguo que se han producido por un largo periodo de

tiempo.

• IO-APIC-edge — Señal de voltaje de las transacciones interrumpidas desde abajo hasta

arriba, creando una edge, en la que la interrupción IO-APIC-level, tan sólo se dan a partir de

procesadores 586 y superiores.

• IO-APIC-level — Genera interrupciones cuando su señal de voltaje se alza hasta que la señal

desciende nuevamente.

Page 9: 3  el sistema de archivos proc

23

/proc/iomem

3.2.12. /proc/iomem

This file shows you the current map of the system's memory for each physical device:

00000000-0009fbff : System RAM

0009fc00-0009ffff : reserved

000a0000-000bffff : Video RAM area

000c0000-000c7fff : Video ROM

000f0000-000fffff : System ROM

00100000-07ffffff : System RAM

00100000-00291ba8 : Kernel code

00291ba9-002e09cb : Kernel data

e0000000-e3ffffff : VIA Technologies, Inc. VT82C597 [Apollo VP3] e4000000-e7ffffff : PCI Bus

#01

e4000000-e4003fff : Matrox Graphics, Inc. MG A G200 AGP

e5000000-e57fffff : Matrox Graphics, Inc. MG A G200 AGP

e8000000-e8ffffff : PCI Bus #01

e8000000-e8ffffff : Matrox Graphics, Inc. M GA G200 AGP

ea000000-ea00007f : Digital Equipment Corporation DECchip 21140 [FasterNet]

ea000000-ea00007f : tulip ffff0000-ffffffff : reserved

La primera columna muestra los registros de memoria utilizados por cada uno de los diferentes

tipos de memoria. La segunda columna indica el tipo de memoria de dichos registros y muestra qué

registros de memoria son usados por el kernel dentro de la RAM del sistema o, si la tarjeta NIC tiene

múltiples puertos Ethernet, los registros de memoria asignados para cada puerto.

3.2.13. /proc/ioports

La salida de /proc/ioports proporciona una lista de las regiones de puertos registrados

actualmente utilizados para la comunicación de entrada y salida con un dispositivo. Este archivo

puede ser muy largo. A continuación se muestra un listado parcial:

0000-001f : dma1

0020-003f : pic1

0040-005f : timer

0060-006f : keyboard

0070-007f : rtc

0080-008f : dma page reg

00a0-00bf : pic2

00c0-00df : dma2

00f0-00ff : fpu

0170-0177 : ide1

01f0-01f7 : ide0

02f8-02ff : serial(auto)

0376-0376 : ide1

03c0-03df : vga+

03f6-03f6 : ide0

03f8-03ff : serial(auto)

0cf8-0cff : PCI conf1

d000-dfff : PCI Bus #01

e000-e00f : VIA Technologies, Inc. Bus Master IDE

e000-e007 : ide0

e008-e00f : ide1

e800-e87f : Digital Equipment Corporation DECchip 21140 [FasterNet]

e800-e87f : tulip

La primera columna le indica el rango de direcciones de los puertos de entrada y salida reservado

para el dispositivo listado en la segunda columna.

Page 10: 3  el sistema de archivos proc

24

/proc/iomem

3.2.14. /proc/kcore

Este archivo representa la memoria física del sistema y se almacena en el formato de archivos base.

A diferencia de la mayoría de archivos /proc/, kcore muestra un tamaño. Este valor se da en bytes

y es igual al tamaño de la memoria física (RAM) utilizada más 4KB.

Sus contenidos están diseñados para que los examine un depurador, como por ejemplo gdb, y no es

legible para humanos.

Atención

Do not view the /proc/kcore virtual file. The contents of the file scramble text

output on the terminal. If this file is accidentally viewed, press Ctrl+C to stop the

process and then type reset to bring back the command line prompt.

3.2.15. /proc/kmsg

Este archivo se utiliza para mantener mensajes generados por el kernel. Luego, estos mensajes son

recogidos por otros programas, como por ejemplo /sbin/klogd o /bin/dmesg.

3.2.16. /proc/loadavg

Este archivo ofrece una vista de la carga promedio del procesador con respecto al sobretiempo de

CPU y de E/S, así como también datos adicionales utilizados por uptime y otros comandos. Una

muestra del archivo /proc/loadavg sería similar a lo siguiente:

0.20 0.18 0.12 1/80 11206

The first three columns measure CPU and IO utilization of the last one, five, and 15 minute periods.

The fourth column shows the number of currently running processes and the total number of

processes. The last column displays the last process ID used.

In addition, load average also refers to the number of processes ready to run (i.e. in the run queue,

waiting for a CPU share.

3.2.17. /proc/locks

Este archivo muestra los archivos bloqueados en la actualidad por el kernel. El contenido de este

archivo contiene datos internos de depuración y puede variar enormemente, dependiendo del uso del

sistema. Este es un ejemplo de archivo /proc/locks de un sistema ligeramente cargado:

1: POSIX

ADVISORY

WRITE 3568 fd:00:2531452 0 EOF

2: FLOCK ADVISORY WRITE 3517 fd:00:2531448 0 EOF 3: POSIX ADVISORY WRITE 3452 fd:00:2531442 0 EOF 4: POSIX ADVISORY WRITE 3443 fd:00:2531440 0 EOF 5: POSIX ADVISORY WRITE 3326 fd:00:2531430 0 EOF 6: POSIX ADVISORY WRITE 3175 fd:00:2531425 0 EOF 7: POSIX ADVISORY WRITE 3056 fd:00:2548663 0 EOF

A cada bloqueo se le asigna un único número al inicio de cada línea. La segunda columna se refiere

a la clase de bloqueo utilizado; FLOCK, haciendo referencia al estilo antiguo de bloqueos de archivos

Page 11: 3  el sistema de archivos proc

25

/proc/mdstat

desde una llamada de sistema flock y POSIX que representa los bloqueos nuevos POSIX desde la

llamada de sistema lockf.

The third column can have two values: ADVISORY or MANDATORY. ADVISORY means that the lock

does not prevent other people from accessing the data; it only prevents other attempts to lock it.

MANDATORY means that no other access to the data is permitted while the lock is held. The fourth

column reveals whether the lock is allowing the holder READ or WRITE access to the file. The fifth

column shows the ID of the process holding the lock. The sixth column shows the ID of the file being

locked, in the format of MAJOR-DEVICE:MINOR-DEVICE:INODE-NUMBER . The seventh and eighth

column shows the start and end of the file's locked region.

3.2.18. /proc/mdstat

Este archivo contiene la información actual sobre las configuración de discos múltiples de RAID. Si su

sistema no contiene dicha configuración, el archivo /proc/mdstat será parecido a:

Personalities : read_ahead not set unused devices: <none>

This file remains in the same state as seen above unless a software RAID or md device is present. In

that case, view /proc/mdstat to find the current status of mdX RAID devices.

El archivo /proc/mdstat a continuación, muestra un sistema con su md0 configurado como un

dispositivo RAID 1, mientras está resincronizando los discos:

Personalities : [linear] [raid1] read_ahead 1024 sectors

md0: active raid1 sda2[1] sdb2[0] 9940 blocks [2/2] [UU] resync=1% finish=12.3min algorithm 2

[3/3] [UUU]

unused devices: <none>

3.2.19. /proc/meminfo

Este es uno de los archivos más utilizados en el directorio /proc/, ya que proporciona mucha

información importante sobre el uso actual de RAM en el sistema.

La muestra siguiente del archivo virtual /proc/meminfo es de un sistema con 256 MB de RAM y

512 MB de espacio de intercambio (swap):

MemTotal: 255908 kB

MemFree: 69936 kB

Buffers: 15812 kB

Cached: 115124 kB

SwapCached: 0 kB

Active: 92700 kB

Inactive: 63792 kB

HighTotal: 0 kB

HighFree: 0 kB

LowTotal: 255908 kB

LowFree: 69936 kB

SwapTotal: 524280 kB

SwapFree: 524280 kB

Dirty: 4 kB

Writeback: 0 kB

Page 12: 3  el sistema de archivos proc

26

/proc/mdstat

Mapped: 42236 kB

Slab: 25912 kB

Committed_AS: 118680 kB

PageTables: 1236 kB

VmallocTotal: 3874808 kB

VmallocUsed: 1416 kB

VmallocChunk: 3872908 kB

HugePages_Total: 0

HugePages_Free: 0

Hugepagesize: 4096 kB

La mayoría de la información que está aquí es usada por los comandos free, top y ps. De hecho,

la salida de datos del comando free es parecida en apariencia al contenido y estructura de /proc/

meminfo. Pero si lee directamente /proc/meminfo, verá más detalles:

• MemTotal — Cantidad total de RAM física en kilo bytes.

• MemFree — Cantidad de RAM física, en kilobytes, sin utilizar por el sistema.

• Buffers — Cantidad de RAM física, en kilobytes, usada para los archivos de memoria intermedia.

• Cached — Cantidad de RAM física en kilobytes usada como memoria caché.

• SwapCached — Cantidad de swap en kilobytes usada como memoria caché.

• Active — Cantidad total de memoria intermedia o caché de página, en kilobytes, que está en uso

activo. Esta es memoria que recientemente ha sido utilizada y que usualmente no se reclama para

otros propósitos.

• Inactive — La cantidad total de memoria intermedia o caché de página, en kilobytes, que está

libre y disponible. Esta es memoria que no se ha utilizado recientemente y que se puede reclamar

para otros propósitos.

• HighTotal y HighFree — Cantidad total de memoria libre, que no está mapeada en el espacio

del kernel. El valor HighTotal puede variar dependiendo del tipo de kernel utilizado.

• LowTotal y LowFree — Cantidad total de memoria libre implantada directamente en el espacio

del kernel. El valor LowTotal puede cambiar dependiendo del tipo de kernel utilizado.

• SwapTotal — Cantidad total de swap disponible, en kilobytes.

• SwapFree — Cantidad total de swap libre, en kilobytes.

• Dirty — La cantidad total de memoria, en kilobytes, esperando a ser escrita al disco.

• Writeback — Cantidad total de memoria, en kilobytes, que está siendo escrita activamente al

disco.

• Mapped — La cantidad total de memoria, en kilobytes, que se ha utilizado para asignar dispositivos,

archivos o bibliotecas, usando el comando mmap.

• Slab — Cantidad total de memoria, en kilobytes, usada por el kernel para hacer caché de

estructuras de datos para su propio uso.

• Committed_AS — Cantidad total de memoria, en kilobytes, estimadas para completar la carga

de trabajo. Este valor representa un escenario del peor caso, y también incluye a la memoria de

intercambio o swap.

Page 13: 3  el sistema de archivos proc

27

/proc/misc

• PageTables — Cantidad total de memoria, en kilobytes, dedicada al nivel más bajo de la tabla de

páginas.

• VMallocTotal — Cantidad total memoria, en kilobytes, del espacio total de direcciones virtuales

asignadas.

• VMallocUsed — La cantidad total de memoria en kilobytes, de espacio de direcciones virtuales

utilizada.

• VMallocChunk — El bloque continuo de memoria más grande, en kilobytes, de espacio de

direcciones virtuales disponibles.

• HugePages_Total — El número total de paginas gigantes para el sistema. El número se deriva

dividiendo Hugepagesize por los megabytes puestos a un lado para las páginas gigantes

especificadas en /proc/sys/vm/hugetlb_pool. Esta estadística sólo aparece en las

arquitecturas x86, Itanium y AMD64.

• HugePages_Free — El número total de páginas gigantes disponibles para el sistema. Esta

estadística sólo aparece en las arquitecturas x86, Itanium y AMD64.

• Hugepagesize — El tamaño para cada unidad de hugepages en kilobytes. Por defecto, el valor

es 4096 KB en los kernels de un sólo procesador para las arquitecturas de 32 bits. Para los kernels

SMP, hugemem y AMD64, el valor por defecto es 2048 KB. Para las arquitecturas Itanium, el valor

por defecto es 262144 KB. Esta estadística solamente aparece en las arquitecturas x86, Itanium y

AMD64.

3.2.20. /proc/misc

Este archivo lista varios controladores registrados en el principal dispositivo de misceláneos, que es el

número 10:

63 device-mapper 175 agpgart 135 rtc 134 apm_bios

La primera columna es el número menor (minor) de cada dispositivo y la segunda le muestra el

controlador en uso.

3.2.21. /proc/modules

Este archivo muestra una lista de todos los módulos cargados en el sistema. Su contenido variará

dependiendo de la configuración y uso de su sistema, pero debería organizarse de forma similar al

siguiente ejemplo de salida del archivo /proc/modules:

Nota

Se ha vuelto a formatear este ejemplo en un formato legible. La mayoría de esta

información también se puede ver a través del comando /sbin/lsmod.

nfs 170109 0 - Live 0x129b0000

lockd 51593 1 nfs, Live 0x128b0000

nls_utf8 1729 0 - Live 0x12830000

Page 14: 3  el sistema de archivos proc

28

/proc/misc

vfat 12097 0 - Live 0x12823000

fat 38881 1 vfat, Live 0x1287b000

autofs4 20293 2 - Live 0x1284f000

sunrpc 140453 3 nfs,lockd, Live 0x12954000

3c59x 33257 0 - Live 0x12871000

uhci_hcd 28377 0 - Live 0x12869000

md5 3777 1 - Live 0x1282c000

ipv6 211845 16 - Live 0x128de000

ext3 92585 2 - Live 0x12886000 jbd 65625 1 ext3, Live 0x12857000 dm_mod 46677 3 - Live 0x12833000

La primera columna contiene el nombre del módulo.

La segunda columna se refiere al tamaño de la memoria del módulo, en bytes.

La tercera columna lista cuántas instancias del módulo están cargadas actualmente. Un valor de cero

representa un módulo sin cargar.

La cuarta columna indica si el módulo depende de que otro módulo esté presente para poder

funcionar, y lista esos otros módulos.

La quinta columna lista en qué estado de carga se encuentra el módulo: Live, Loading o

Unloading son los únicos valores posibles.

La sexta columna lista el desplazamiento de memoria del kernel actual para el módulo cargado. Esta

información puede ser útil para propósitos de depuración o para herramientas de perfiles, tales como

oprofile.

3.2.22. /proc/mounts

Este archivo proporciona una lista de todos los montajes en uso por el sistema:

rootfs / rootfs rw 0 0

/proc /proc proc rw,nodiratime 0 0 none

/dev ramfs rw 0 0

/dev/mapper/VolGroup00-LogVol00 / ext3 rw 0 0

none /dev ramfs rw 0 0

/proc /proc proc rw,nodiratime 0 0

/sys /sys sysfs rw 0 0

none /dev/pts devpts rw 0 0

usbdevfs /proc/bus/usb usbdevfs rw 0 0

/dev/hda1 /boot ext3 rw 0 0

none /dev/shm tmpfs rw 0 0

none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0

sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0

La salida de datos que encontramos aquí se parece a /etc/mtab, excepto que /proc/mount está

más actualizada.

La primera columna especifica el dispositivo que está montado, la segunda revela el punto de

montaje, la tercera indica el tipo de sistema de archivos y la cuarta si está montado en modo sólo

lectura (ro) o sólo escritura (rw). La quinta y sexta columna son valores no válidos diseñados para

hacer coincidir el formato usado en /etc/mtab.

Page 15: 3  el sistema de archivos proc

29

/proc/mtrr

3.2.23. /proc/mtrr

Este archivo se refiere a la actual Memory Type Range Registers (MTRRs), en uso dentro del

sistema. Si la arquitectura de su sistema soporta MTRRs, entonces el archivo /proc/mtrr será algo

parecido a:

reg00: base=0x00000000 ( 0MB), size= 256MB: write-back, count=1

reg01: base=0xe8000000 (3712MB), size= 32MB: write-combining, count=1

Los MTRRs se usan con la familia de procesadores Intel P6 (Pentium II y superior), y controlan el

acceso del procesador a los rangos de memoria. Cuando utilice una tarjeta de vídeo en un PCI o un

bus AGP, un archivo /proc/mtrr adecuadamente configurado puede incrementar el rendimiento en

un 150%.

La mayoría de las veces, por defecto este valor está configurado adecuadamente. Se puede

encontrar más información sobre la configuración manual de este archivo en la siguiente ubicación:

/usr/share/doc/kernel-doc-<version>/Documentation/mtrr.txt

3.2.24. /proc/partitions

El archivo contiene información sobre la asignación de bloques de particiones. Un ejemplo de este

archivo en un sistema básico se vería como:

major minor #blocks name

3 0 19531250 hda 3 1 104391 hda1 3 2 19422585 hda2

253 0 22708224 dm-0 253 1 524288 dm-1

La mayoría de la información no es relevante para los usuarios, a excepción de las siguientes líneas:

• major — Número principal (major number) del dispositivo con esta partición. El número principal

en nuestro ejemplo en /proc/partitions (3), corresponde con el dispositivo ide0 en /proc/

devices.

• minor — Número menor del dispositivo con esta partición. Separa las particiones en diferentes

dispositivos físicos y los relaciona con el número al final del nombre de la partición.

• #blocks — Lista el número de bloques de disco físicos contenidos en una partición particular.

• name — Nombre de la partición.

3.2.25. /proc/pci

El archivo contiene una lista completa de cada dispositivo PCI en su sistema. Dependiendo del

número de dispositivos PCI que posea, /proc/pci puede ser bastante largo. Un ejemplo de este

archivo en un sistema básico se vería como:

Page 16: 3  el sistema de archivos proc

30

/proc/mtrr

Bus 0, device 0, function 0: Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge

(rev 3). Master Capable. Latency=64. Prefetchable 32 bit memory at 0xe4000000 [0xe7ffffff].

Bus 0, device 1, function 0: PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge

(rev 3). Master Capable. Latency=64. Min Gnt=128.

Bus 0, device 4, function 0: ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 2).

Bus 0, device 4, function 1: IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 1).

Master Capable. Latency=32. I/O at 0xd800 [0xd80f].

Bus 0, device 4, function 2: USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 1). IRQ

5. Master Capable. Latency=32. I/O at 0xd400 [0xd41f].

Bus 0, device 4, function 3: Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 2). IRQ 9.

Bus 0, device 9, function 0: Ethernet controller: Lite-On Communications Inc LNE100TX (rev

33). IRQ 5. Master Capable. Latency=32. I/O at 0xd000 [0xd0ff].

Bus 0, device 12, function 0: VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 1).

IRQ 11. Master Capable. Latency=32. Min Gnt=4.Max Lat=255.

Esta salida de datos muestra una lista de todos los dispositivos PCI, en orden de bus, dispositivo y

función. Además de proporcionar el nombre y versión del dispositivo, esta lista le proporciona

información de IRQ detallada y así un administrador puede rápidamente dar un vistazo para verificar

conflictos.

Tip

Para obtener una versión más fácil de leer, escriba:

/sbin/lspci -vb

3.2.26. /proc/slabinfo

Este archivo le da información completa sobre el uso de memoria en el nivel slab. Los kernels Linux

superiores a la versión 2.2 usan slab pools para manejar memoria por encima del nivel de página. Los

objetos utilizados habitualmente, tienen sus propios slab pools.

En vez de analizar manualmente el largo archivo /proc/slabinfo, el programa /usr/bin/

slabtop muestra la información del caché slab del kernel en tiempo real. Este programa permite

configuraciones personalizadas, incluyendo el ordenamiento por columnas y la actualización de

pantallas.

Una captura de pantalla de /usr/bin/slabtop usualmente se parece a algo como:

Active / Total Objects (% used) : 133629 / 147300 (90.7%)

Active / Total Slabs (% used) : 11492 / 11493 (100.0%)

Active / Total Caches (% used) : 77 / 121 (63.6%)

Active / Total Size (% used) : 41739.83K / 44081.89K (94.7%)

Minimum / Average / Maximum Object : 0.01K / 0.30K / 128.00K

OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME

44814 43159 96% 0.62K 7469 6 29876K ext3_inode_cache 36900 34614 93% 0.05K 492 75 1968K buffer_head 35213 33124 94% 0.16K 1531 23 6124K dentry_cache 7364 6463 87% 0.27K 526 14 2104K radix_tree_node 2585 1781 68% 0.08K 55 47 220K vm_area_struct 2263 2116 93% 0.12K 73 31 292K size-128 1904 1125 59% 0.03K 16 119 64K size-32 1666 768 46% 0.03K 14 119 56K anon_vma 1512 1482 98% 0.44K 168 9 672K inode_cache

Page 17: 3  el sistema de archivos proc

31

/proc/stat

1464 1040 71% 0.06K 24 61 96K size-64

1320 820 62% 0.19K 66 20 264K filp 678 587 86% 0.02K 3 226 12K dm_io 678 587 86% 0.02K 3 226 12K dm_tio 576 574 99% 0.47K 72 8 288K proc_inode_cache 528 514 97% 0.50K 66 8 264K size-512 492 372 75% 0.09K 12 41 48K bio 465 314 67% 0.25K 31 15 124K size-256 452 331 73% 0.02K 2 226 8K biovec-1 420 420 100% 0.19K 21 20 84K skbuff_head_cache 305 256 83% 0.06K 5 61 20K biovec-4 290 4 1% 0.01K 1 290 4K revoke_table 264 264 100% 4.00K 264 1 1056K size-4096 260 256 98% 0.19K 13 20 52K biovec-16 260 256 98% 0.75K 52 5 208K biovec-64

Algunas de las estadísticas usadas más comúnmente en /proc/slabinfo que se incluyen en /

usr/bin/slabtop, abarcan:

• OBJS — El número total de objetos (bloques de memoria), incluyendo aquellos en uso (asignados),

y algunos adicionales que no estén en uso.

• ACTIVE — El número total de objetos (bloques de memoria) utilizados (asignados).

• USE — Porcentaje de los objetos totales que están activos. ((ACTIVE/OBJS)(100))

• OBJ SIZE — El tamalo de los objectos.

• SLABS — El número total de slabs.

• OBJ/SLAB — El número de objectos que caben en un slab.

• CACHE SIZE — El tamaño de caché del slab.

• NAME — Nombre del slab.

Para más información sobre el programa /usr/bin/slabtop, refiérase a la página man de

slabtop.

3.2.27. /proc/stat

Este archivo mantiene un registro de las diferentes estadísticas sobre el sistema desde que fue

reiniciado por última vez. El contenido de /proc/stat que puede ser muy largo, usualmente

empieza de la siguiente manera:

cpu 259246 7001 60190 34250993 137517 772 0

cpu0 259246 7001 60190 34250993 137517 772 0

intr 354133732 347209999 2272 0 4 4 0 0 3 1 1249247 0 0 80143 0 422626 5169433

ctxt 12547729

btime 1093631447

processes 130523

procs_running 1

procs_blocked 0

preempt 5651840

cpu 209841 1554 21720 118519346 72939 154 27168

cpu0 42536 798 4841 14790880 14778 124 3117

cpu1 24184 569 3875 14794524 30209 29 3130

cpu2 28616 11 2182 14818198 4020 1 3493

Page 18: 3  el sistema de archivos proc

32

/proc/stat

cpu3 35350 6 2942 14811519 3045 0 3659

cpu4 18209 135 2263 14820076 12465 0 3373

cpu5 20795 35 1866 14825701 4508 0 3615

cpu6 21607 0 2201 14827053 2325 0 3334

cpu7 18544 0 1550 14831395 1589 0 3447

intr 15239682 14857833 6 0 6 6 0 5 0 1 0 0 0 29 0 2 0 0 0 0 0 0 0 94982 0 286812

ctxt 4209609

btime 1078711415

processes 21905

procs_running 1

procs_blocked 0

Algunas de las estadísticas más populares incluyen:

• cpu — Measures the number of jiffies (1/100 of a second for x86 systems) that the system has been

in user mode, user mode with low priority (nice), system mode, idle task, I/O wait, IRQ (hardirq),

and softirq respectively. The IRQ (hardirq) is the direct response to a hardware event. The IRQ

takes minimal work for queuing the "heavy" work up for the softirq to execute. The softirq runs at a

lower priority than the IRQ and therefore may be interrupted more frequently. The total for all CPUs

is given at the top, while each individual CPU is listed below with its own statistics. The following

example is a 4-way Intel Pentium Xeon configuration with multi-threading enabled, therefore

showing four physical processors and four virtual processors totaling eight processors.

• page — Número de páginas que el sistema ha cargado o suprimido del disco.

• swap — Número de páginas swap que el sistema ha introducido o sacado.

• intr — Número de interrupciones que ha experimentado el sistema.

• btime — Tiempo de arranque, medido por el número de segundos desde el 1 de enero de 1970,

conocido con el nombre de epoch.

3.2.28. /proc/swaps

Este archivo mide el espacio swap y su uso. Para un sistema con tan sólo una partición de espacio

swap, la salida de datos de /proc/swap será similar a lo siguiente:

Filename

Type

Size

Used

Priority

/dev/mapper/VolGroup00-LogVol01 partition 524280 0 -1

Mientras que alguna de esta información se puede encontrar en otros archivos en el directorio /

proc/, /proc/swap proporciona una instantánea de cada nombre de archivo swap, el tipo de

espacio swap, el tamaño total y la cantidad de espacio en uso (en kilobytes). La columna de prioridad

es útil cuando se usan múltiples archivos de espacio de intercambio. Cuanto más baja es la prioridad,

más probable es que se use el archivo de intercambio.

3.2.29. /proc/sysrq-trigger

Using the echo command to write to this file, a remote root user can execute most System Request

Key commands remotely as if at the local terminal. To echo values to this file, the /proc/sys/

kernel/sysrq must be set to a value other than 0. For more information about the System Request

Key, refer to Sección 3.3.9.3, “ /proc/sys/kernel/ ”.

Aún cuando es posible escribir a este archivo, no se puede leer, ni siquiera por el usuario root.

Page 19: 3  el sistema de archivos proc

33

/proc/uptime

3.2.30. /proc/uptime

El archivo contiene información sobre el tiempo que lleva encendido el sistema desde el último

reinicio. La salida de datos de /proc/uptime es mínima:

350735.47 234388.90

El primer número le indica el número total de segundos que el sistema ha estado en funcionamiento.

El segundo indica cuánto de ese tiempo, también en segundos, la máquina ha estado inactiva.

3.2.31. /proc/version

Este archivo muestra las versión del kernel de Linux y gcc en uso, así como la versión de Red Hat

Enterprise Linux instalada en el sistema:

Linux version 2.6.8-1.523 ([email protected]) (gcc version 3.4.1 20040714 \ (Red Hat

Enterprise Linux 3.4.1-7)) #1 Mon Aug 16 13:27:03 EDT 2004

Esta información se usa para diversos propósitos, incluyendo la aportación de datos de la versión en

el intérprete de comandos de registro estándar.

3.3. Directorios en /proc/ Grupos comunes de información referente al kernel agrupado en directorios y subdirectorios en /

proc/.

3.3.1. Directorios de proceso

Cada directorio /proc/ contiene unos cuantos directorios nombrados con un número. Un listado de

los mismos se vería de la siguiente manera:

dr-xr-xr-x

3 root

root

0 Feb 13 01:28 1

dr-xr-xr-x 3 root root 0 Feb 13 01:28 1010 dr-xr-xr-x 3 xfs xfs 0 Feb 13 01:28 1087 dr-xr-xr-x 3 daemon daemon 0 Feb 13 01:28 1123 dr-xr-xr-x 3 root root 0 Feb 13 01:28 11307 dr-xr-xr-x 3 apache apache 0 Feb 13 01:28 13660 dr-xr-xr-x 3 rpc rpc 0 Feb 13 01:28 637 dr-xr-xr-x 3 rpcuser rpcuser 0 Feb 13 01:28 666

These directories are called process directories, as they are named after a program's process ID and

contain information specific to that process. The owner and group of each process directory is set to

the user running the process. When the process is terminated, its /proc/ process directory vanishes.

Cada uno de los directorios de procesos contiene los siguientes archivos:

• cmdline — Contiene el comando que se ejecutó cuando se arrancó el proceso.

• cwd — Enlace simbólico al directorio actual en funcionamiento para el proceso.

• environ — Le da una lista de variables de entorno para el proceso. La variable de entorno viene

dada toda en mayúsculas y el valor en minúsculas.

Page 20: 3  el sistema de archivos proc

34

/proc/uptime

• exe — Enlace simbólico al ejecutable de este proceso.

• fd — Directorio que contiene todos los descriptores de archivos para un proceso en particular.

Vienen dados en enlaces numerados:

total 0

lrwx------ 1 root root 64 May 8 11:31 0 -> /dev/null lrwx------ 1 root root 64 May 8 11:31 1 -> /dev/null lrwx------ 1 root root 64 May 8 11:31 2 -> /dev/null lrwx------ 1 root root 64 May 8 11:31 3 -> /dev/ptmx lrwx------ 1 root root 64 May 8 11:31 4 -> socket:[7774817] lrwx------ 1 root root 64 May 8 11:31 5 -> /dev/ptmx lrwx------ 1 root root 64 May 8 11:31 6 -> socket:[7774829] lrwx------ 1 root root 64 May 8 11:31 7 -> /dev/ptmx

• maps — Contiene mapas de memoria para los diversos ejecutables y archivos de bibliotecas

asociados con este proceso. Este archivo puede ser bastante largo, dependiendo de la complejidad

del proceso. Una muestra de la salida de datos desde el proceso sshd empezaría de la siguiente

manera:

08048000-08086000 r-xp 00000000 03:03 391479 /usr/sbin/sshd

08086000-08088000 rw-p 0003e000 03:03 391479 /usr/sbin/sshd

08088000-08095000 rwxp 00000000 00:00 0

40000000-40013000 r-xp 0000000 03:03 293205 /lib/ld-2.2.5.so

40013000-40014000 rw-p 00013000 03:03 293205 /lib/ld-2.2.5.so

40031000-40038000 r-xp 00000000 03:03 293282 /lib/libpam.so.0.75

40038000-40039000 rw-p 00006000 03:03 293282 /lib/libpam.so.0.75

40039000-4003a000 rw-p 00000000 00:00 0

4003a000-4003c000 r-xp 00000000 03:03 293218 /lib/libdl-2.2.5.so

4003c000-4003d000 rw-p 00001000 03:03 293218 /lib/libdl-2.2.5.so

• mem — Memoria del proceso.

• root — Enlace al directorio root del proceso.

• stat — Estado del proceso.

• statm — Estado de la memoria en uso por el proceso. Ejemplo de archivos statm:

263 210 210 5 0 205 0

Las siete columnas se relacionan a diferentes estadísticas de memoria para el proceso.

Dependiendo de como se visualizan, de derecha a izquierda, remiten diferentes aspectos de la

memoria utilizada:

1. Tamaño total del programa, en kilobytes.

2. Tamaño de las porciones de memoria, en kilobytes.

3. Número de páginas compartidas.

4. Número de páginas que son código.

5. Número de páginas de datos/pila.

Page 21: 3  el sistema de archivos proc

35

/proc/bus/

6. Número de páginas de bibliotecas.

7. Número de páginas sucias.

• status — Proporciona el estado del proceso en una forma mucho más legible que stat o statm.

Un ejemplo de salida de datos de sshd se vería similar a:

Name: sshd

State: S (sleeping)

Tgid: 797

Pid: 797

PPid: 1

TracerPid: 0

Uid: 0 0 0 0

Gid: 0 0 0 0

FDSize: 32

Groups:

VmSize: 3072 kB

VmLck: 0 kB

VmRSS: 840 kB

VmData: 104 kB

VmStk: 12 kB

VmExe: 300 kB

VmLib: 2528 kB

SigPnd: 0000000000000000

SigBlk: 0000000000000000

SigIgn: 8000000000001000

SigCgt: 0000000000014005

CapInh: 0000000000000000

CapPrm: 00000000fffffeff

CapEff: 00000000fffffeff

La información en esta salida incluye el nombre y ID del proceso, el estado (tal como S

(sleeping) o R (running)), ID del usuario/grupo ejecutando el proceso y detalles sobre el uso

de la memoria.

3.3.1.1. /proc/self/

El directorio /proc/self es un enlace al proceso en ejecución. Esto le permite verse a si mismo sin

tener que conocer su ID de proceso.

Dentro de un entorno de la shell, una lista del directorio /proc/self produce el mismo contenido

que una lista del directorio del proceso para ese proceso.

3.3.2. /proc/bus/

Este directorio contiene información específica sobre los diversos buses disponibles en el sistema.

Por ejemplo, en un sistema estándar que contenga buses PCI y USB, los datos actuales en cada uno

de estos buses están disponibles en un subdirectorio bajo /proc/bus/ con el mismo nombre, tal

como /proc/bus/pci/ .

Los subdirectorios y archivos disponibles dentro de /proc/bus/ varían dependiendo de los

dispositivos conectados al sistema. Sin embargo, cada tipo de bus tiene al menos un directorio.

Dentro de estos directorios de buses normalmente están, al menos, un subdirectorio con un nombre

numérico, tal como 001, el cual contiene los archivos binarios.

Page 22: 3  el sistema de archivos proc

36

/proc/bus/

Por ejemplo, el subdirectorio /proc/bus/usb/ contiene archivos que hacen un seguimiento de los

diferentes dispositivos en cualquier bus USB, así como los controladores requeridos para su uso. El

siguiente es un listado de ejemplo de un directorio /proc/bus/usb/

total 0 dr-xr-xr-x 1 root root 0 May 3 16:25 001

-r--r--r-- 1 root root 0 May 3 16:25 devices -r--r--r-- 1 root root 0 May 3 16:25 drivers

El directorio /proc/bus/usb/001/ contiene todos los dispositivos del primer bus USB y el archivo

devices identifica el concentrador raíz USB en la tarjeta madre.

Lo siguiente es un ejemplo de un archivo /proc/bus/usb/devices:

T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2

B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0

D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1

P: Vendor=0000 ProdID=0000 Rev= 0.00

S: Product=USB UHCI Root Hub

S: SerialNumber=d400

C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA

I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub

E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms

3.3.3. /proc/driver/

Este directorio contiene información para drivers específicos que el kernel está utilizando.

A common file found here is rtc which provides output from the driver for the system's Real Time

Clock (RTC), the device that keeps the time while the system is switched off. Sample output from /

proc/driver/rtc looks like the following:

rtc_time : 16:21:00

rtc_date : 2004-08-31

rtc_epoch : 1900

alarm : 21:16:27

DST_enable : no

BCD : yes

24hr : yes

square_wave : no

alarm_IRQ : no

update_IRQ : no

periodic_IRQ : no

periodic_freq : 1024

batt_status : okay

Para más información sobre RTC, refiérase a la siguiente documentación instalada:

/usr/share/doc/kernel-doc-<version>/Documentation/rtc.txt.

3.3.4. /proc/fs

This directory shows which file systems are exported. If running an NFS server, typing cat /proc/

fs/nfsd/exports displays the file systems being shared and the permissions granted for those file

Page 23: 3  el sistema de archivos proc

37

/proc/ide/

systems. For more on file system sharing with NFS, refer to Capítulo 19, Sistema de archivos de red

(NFS).

3.3.5. /proc/ide/

Este directorio contiene información sobre los dispositivos IDE del sistema. Cada canal IDE está

representado como un directorio separado, tal como /proc/ide/ide0 y /proc/ide/ide1.

Además, también está disponible un archivo drivers proporcionando el número de versión de los

varios controladores usados en los canales IDE:

ide-floppy version 0.99.

newide ide-cdrom version 4.61

ide-disk version 1.18

Muchos chipsets también proporcionan un archivo en este directorio con datos adicionales referentes

a las unidades conectadas a través de los canales. Por ejemplo, un chipset genérico Intel PIIX4 Ultra

33 produce el archivo /proc/ide/piix que le informará de si DMA o UDMA está o no habilitado

para los dispositivos en los canales IDE:

Intel PIIX4 Ultra 33 Chipset.

------------- Primary Channel ---------------- Secondary Channel -------------

enabled enabled

------------- drive0 --------- drive1 -------- drive0 ---------- drive1 ------

D MA enabled: yes no yes no UDMA enabled: yes no no no UDMA enabled: 2 X X X UD MA D MA PIO

Al navegar en un directorio para un canal IDE, como ide0, otorga información adicional. El archivo

channel proporciona el número de canal, mientras que el model indica el tipo de bus para el canal

(tal como pci).

3.3.5.1. Directorios de dispositivos

Dentro de cada directorio de canal IDE hay un directorio de dispositivos. El nombre del directorio de

dispositivos corresponde a la letra de la unidad en el directorio /dev/. Por ejemplo, la primera unidad

IDE en ide0 sería hda.

Nota

Existe un enlace simbólico para cada uno de estos directorios de dispositivos en el

directorio /proc/ide/.

Cada dispositivo, como un disco duro o un CD-ROM, tendrá en ese canal su propio directorio en el

que están incluidas su propia recopilación de información y estadísticas. Los contenidos de esos

directorios varían de acuerdo con el tipo de dispositivo conectado. Algunos de los archivos más útiles

habituales en diferentes dispositivos incluyen:

• cache — La caché del dispositivo.

• capacity — La capacidad del dispositivo, en bloques de 512 bytes.

Page 24: 3  el sistema de archivos proc

38

/proc/ide/

• driver — El controlador y la versión usados para controlar el dispositivo.

• geometry — La geometría física y lógica del dispositivo.

• media — El tipo de dispositivo, como por ejemplo un disk.

• model — El nombre del modelo del dispositivo.

• settings — Recopilación de parámetros actuales del dispositivo. Este archivo usualmente

contiene bastante información técnica útil. Un ejemplo de archivo settings para un disco duro

IDE estándar, se vería similar a lo siguiente:

name

value

min

max

mode

---- ----- --- --- ---- acoustic 0 0 254 rw address 0 0 2 rw bios_cyl 38752 0 65535 rw bios_head 16 0 255 rw bios_sect 63 0 63 rw bswap 0 0 1 r current_speed 68 0 70 rw failures 0 0 65535 rw init_speed 68 0 70 rw io_32bit 0 0 3 rw keepsettings 0 0 1 rw lun 0 0 7 rw max_failures 1 0 65535 rw multcount 16 0 16 rw nice1 1 0 1 rw nowerr 0 0 1 rw number 0 0 3 rw pio_mode write-only 0 255 w unmaskirq 0 0 1 rw using_dma 1 0 1 rw wcache 1 0 1 rw

3.3.6. /proc/irq/

Este directorio se usa para configurar la afinidad de una IRQ con una CPU, lo que le permite conectar

una IRQ particular a una sola CPU. De manera alternativa, puede evitar que una CPU manipule

cualquier IRQ.

Cada IRQ tiene su propio directorio, permitiendo que cada IRQ sea configurada individualmente. El

archivo /proc/irq/prof_cpu_mask es una máscara de bits que contiene los valores

predeterminados para el archivo smp_affinity en el directorio IRQ. Los valores en smp_affinity

especifican qué CPUs manipulan esa IRQ en particular.

Para más información sobre el directorio /proc/irq/refiérase a la siguiente información instalada:

/usr/share/doc/kernel-doc-<version>/Documentation/filesystems/proc.txt

Page 25: 3  el sistema de archivos proc

39

/proc/net/

3.3.7. /proc/net/

This directory provides a comprehensive look at various networking parameters and statistics. Each

directory and virtual file within this directory describes aspects of the system's network configuration.

Below is a partial list of the /proc/net/ directory:

• arp — Lists the kernel's ARP table. This file is particularly useful for connecting a hardware address

to an IP address on a system.

• Directorio atm/ — Los archivos dentro de este directorio contienen las configuraciones de

Asynchronous Transfer Mode (ATM) y estadísticas. Este directorio es principalmente usado con

redes ATM y tarjetas ADSL.

• dev — Lista los diferentes dispositivos de red configurados en el sistema, complementado con

estadísticas de transmisión y recepción. Este archivo le indica el número de paquetes que cada

interfaz ha enviado y recibido, el número de paquetes entrantes y salientes, número de errores

vistos, el número de paquetes abandonados y mucho más.

• dev_mcast — Lista los grupos multicast Layer2 en los que cada dispositivo esté escuchando.

• igmp — Lista las direcciones IP con destinatarios múltiples (multicast) a las que el sistema se ha

incorporado.

• ip_conntrack — Lista las conexiones de red para las máquinas que están reenviando

conexiones IP.

• ip_tables_names — Lista los tipos de iptables en uso. Este archivo sólo está presente si

iptables esta activo en el sistema y contiene uno o más de los siguientes valores: filter,

mangle o nat.

• ip_mr_cache — Lista de la caché de routing de múltiple destinatario.

• ip_mr_vif — Lista las interfaces virtuales de múltiple destinatario (multicast).

• netstat — Contiene una amplia colección de estadísticas de red, incluyendo la temporización

TCP, los cookies enviados y recibidos y mucho más.

• psched — Lista de parámetros de planificación global del paquete.

• raw — Lista las estadísticas de dispositivo brutos (raw).

• route — Lists the kernel's routing table.

• rt_cache — Contiene la caché de ruta actual.

• snmp — Lista de los datos del protocolo Simple Network Management Protocol (SNMP) para varios

protocolos de red en uso.

• sockstat — Proporciona estadísticas de socket.

• tcp — Contiene información detallada del socket TCP.

• tr_rif — Lista la tabla de enrutamiento de token ring RIF.

• udp — Contiene información detallada del socket UDP.

Page 26: 3  el sistema de archivos proc

40

/proc/net/

• unix — Lista sockets de dominio UNIX.

• wireless — Lista datos de la interfaz de radio.

3.3.8. /proc/scsi/

Este directorio es análogo al directorio /proc/ide/, sin embargo, es sólo para dispositivos SCSI

conectados.

El archivo primario aquí es /proc/scsi/scsi, que contiene una lista de cada dispositivo SCSI

reconocido. A partir de esta lista se puede obtener el tipo de dispositivo, así como también el nombre

del modelo, fabricante, canal SCSI y el ID.

Por ejemplo, si un sistema contiene un CD-ROM SCSI, una unidad de cinta, un disco duro y un

controlador RAID, este archivo se parecerá a:

Attached devices:

Host: scsi1

Channel: 00

Id: 05

Lun: 00

Vendor: NEC

Model: CD-ROM DRIVE:466

Rev: 1.06

Type: CD-ROM

ANSI SCSI revision: 02

Host: scsi1

Channel: 00

Id: 06

Lun: 00

Vendor: ARCHIVE

Model: Python 04106-XXX

Rev: 7350

Type: Sequential-Access

ANSI SCSI revision: 02

Host: scsi2

Channel: 00

Id: 06

Lun: 00

Vendor: DELL

Model: 1x6 U2W SCSI BP

Rev: 5.35

Type: Processor

ANSI SCSI revision: 02

Host: scsi2

Channel: 02

Id: 00

Lun: 00

Vendor: MegaRAID

Model: LD0 RAID5 34556R

Rev: 1.01

Type: Direct-Access

ANSI SCSI revision: 02

Each SCSI driver used by the system has its own directory within /proc/scsi/, which contains files

specific to each SCSI controller using that driver. From the previous example, aic7xxx/ and

megaraid/ directories are present, since two drivers are in use. The files in each of the directories

typically contain an I/O address range, IRQ information, and statistics for the SCSI controller using that

Page 27: 3  el sistema de archivos proc

41

/proc/sys/

driver. Each controller can report a different type and amount of information. The Adaptec AIC-7880

Ultra SCSI host adapter's file in this example system produces the following output:

Adaptec AIC7xxx driver version: 5.1.20/3.2.4

Compile Options:

TCQ Enabled By Default : Disabled

AIC7XXX_PROC_STATS : Enabled

AIC7XXX_RESET_DELAY : 5

Adapter Configuration:

SCSI Adapter: Adaptec AIC-7880 Ultra SCSI host adapter

Ultra Narrow Controller PCI MMAPed

I/O Base: 0xfcffe000

Adapter SEEPROM Config: SEEPROM found and used.

Adaptec SCSI BIOS: Enabled

IRQ: 30

SCBs: Active 0, Max Active 1, Allocated 15, HW 16, Page 255

Interrupts: 33726

BIOS Control Word: 0x18a6

Adapter Control Word: 0x1c5f

Extended Translation: Enabled

Disconnect Enable Flags: 0x00ff

Ultra Enable Flags: 0x0020

Tag Queue Enable Flags: 0x0000

Ordered Queue Tag Flags: 0x0000

Default Tag Queue Depth: 8

Tagged Queue By Device array for aic7xxx

host instance 1: {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}

Actual queue depth per device for aic7xxx host instance 1:

{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}

Statistics:

(scsi1:0:5:0) Device using Narrow/Sync transfers at 20.0 MByte/sec, offset 15

Transinfo settings: current(12/15/0/0), goal(12/15/0/0), user(12/15/0/0)

Total transfers 0 (0 reads and 0 writes)

< 2K 2K+ 4K+ 8K+ 16K+ 32K+ 64K+ 128K+

Reads: 0 0 0 0 0 0 0 0 Writes: 0 0 0 0 0 0 0 0

(scsi1:0:6:0) Device using Narrow/Sync transfers at 10.0 MByte/sec, offset 15

Transinfo settings: current(25/15/0/0), goal(12/15/0/0), user(12/15/0/0)

Total transfers 132 (0 reads and 132 writes)

< 2K 2K+ 4K+ 8K+ 16K+ 32K+ 64K+ 128K+

Reads: 0 0 0 0 0 0 0 0 Writes: 0 0 0 1 131 0 0 0

Esta salida revela la velocidad de transmisión a los dispositivos SCSI conectados al controlador

basado en el canal ID, así como estadísticas detalladas referentes a la cantidad y tamaño de los

archivos leídos o escritos por ese dispositivo. Por ejemplo, este controlador se está comunicando con

el CD-ROM a 20 megabytes por segundo, mientras que la unidad de cinta sólo se está comunicando

a 10 megabytes por segundo.

3.3.9. /proc/sys/

El directorio /proc/sys/ es diferente de otros en /proc/ porque no sólo proporciona información

sobre el sistema pero también permite al administrador activar y desactivar inmediatamente

características del kernel.

Page 28: 3  el sistema de archivos proc

42

/proc/sys/

Atención

Tenga mucho cuidado al cambiar la configuración de un sistema en producción

usando los diversos archivos en el directorio /proc/sys/. La modificación del valor

incorrecto puede dejar el kernel inestable, requiriendo que se reinicie el sistema.

Por esta razón, asegúrese de que las opciones sean válidas para ese archivo antes

de intentar cambiar un valor en /proc/sys/.

Una buena forma de determinar si un archivo particular se puede configurar o si tan sólo está

diseñado para proporcionar información, es listándolo con la opción -l en el intérprete de comandos

de la shell. Si se puede escribir en el archivo, quizás podrá utilizarlo para configurar el kernel de algún

modo. Por ejemplo, un listado parcial de /proc/sys/fs sería de la siguiente manera:

-r--r--r--

1 root

root

0 May 10 16:14 dentry-state

-rw-r--r-- 1 root root 0 May 10 16:14 dir-notify-enable -r--r--r-- 1 root root 0 May 10 16:14 dquot-nr -rw-r--r-- 1 root root 0 May 10 16:14 file-max -r--r--r-- 1 root root 0 May 10 16:14 file-nr

En este listado, los archivos dir-notify-enable y file-max pueden escribirse y, por

consiguiente, usarse para la configuración del kernel. Los otros archivos sólo proporcionan

retroalimentación sobre las configuraciones actuales.

Para cambiar un valor en el archivo /proc/sys tiene que repetir el valor nuevo en el archivo. Por

ejemplo, para habilitar la System Request Key en un kernel en ejecución, escriba el comando:

echo 1 > /proc/sys/kernel/sysrq

Esto cambiará el valor para sysrq de 0 (off) a 1 (on).

Unos cuantos archivos de configuración /proc/sys contienen más de un valor. Para enviar nuevos

valores correctamente, coloque un espacio entre cada valor traspasado con el comando echo, como

se ha hecho a continuación:

echo 4 2 45 > /proc/sys/kernel/acct

Nota

Any configuration changes made using the echo command disappear when the

system is restarted. To make configuration changes take effect after the system is

rebooted, refer to Sección 3.4, “Uso del comando sysctl”.

El directorio/proc/sys contiene directorios diferentes que controlan diferentes aspectos de la

ejecución de un kernel.

Page 29: 3  el sistema de archivos proc

43

/proc/sys/

3.3.9.1. /proc/sys/dev/

Este directorio proporciona parámetros para dispositivos particulares en el sistema. La mayoría de

sistemas tienen al menos dos directorios cdrom y raid. Los kernels personalizados pueden tener

otros directorios, tales como parport, que proporciona la habilidad de compartir un puerto paralelo

entre múltiples controladores de dispositivo.

El directorio cdrom contiene un archivo llamado info que revela algunos parámetros importantes del

CD-ROM:

CD-ROM information, Id: cdrom.c 3.20 2003/12/17

drive name: hdc drive speed: 48 drive # of slots: 1 Can close tray: 1 Can open tray: 1 Can lock tray: 1 Can change speed: 1 Can select disk: 0 Can read multisession: 1 Can read MCN: 1 Reports media changed: 1 Can play audio: 1 Can write CD-R: 0 Can write CD-RW: 0 Can read DVD: 0 Can write DVD-R: 0 Can write DVD-RAM: 0 Can read MRW: 0 Can write MRW: 0 Can write RAM: 0

Este archivo se puede escanear con la finalidad de descubrir las cualidades de un CD-ROM

desconocido. Si tiene a su disposición múltiples CD-ROMs en un sistema, cada dispositivo tendrá su

propia columna de información.

Various files in /proc/sys/dev/cdrom, such as autoclose and checkmedia, can be used to

control the system's CD-ROM. Use the echo command to enable or disable these features.

Si se compila el soporte RAID en el kernel, tendrá a su disposición un directorio /proc/sys/dev/

raid/ con al menos dos archivos dentro del mismo: speed_limit_min y speed_limit_max.

Estas configuraciones determinan la aceleración de los dispositivos RAID para tareas intensivas de E/

S, tales como la resincronización de discos.

3.3.9.2. /proc/sys/fs/

Este directorio contiene un compendio de opciones y de información referente a varios aspectos del

sistema de archivos, incluyendo la información de cuotas, manipulación del archivos, inode y dentry.

El directorio binfmt_misc se usa para proporcionar soporte del kernel para formatos binarios

misceláneos.

Los archivos importantes en /proc/sys/fs/ incluyen:

• dentry-state — Proporciona el estado del directorio de la caché. El archivo se vería de la

siguiente manera:

Page 30: 3  el sistema de archivos proc

44

/proc/sys/

57411 52939 45 0 0 0

El primer número revela el número total de las entradas de la caché del directorio, mientras que

el segundo número visualiza el número de entradas inutilizadas. El tercero, le indica el número de

segundos en que un directorio ha sido liberado y puede ser reclamado y el cuarto mide las páginas

que han sido requeridas por el sistema en la actualidad. Los últimos dos números no están en uso y

tan sólo visualizan ceros.

• dquot-nr — Muestra el número máximo de entradas de cuota de disco cacheado.

• file-max — Lista el número máximo de manejadores de archivos que el kernel puede asignar.

Si incrementa el valor de este archivo puede solucionar los errores causados por la falta de

manejadores de archivos disponibles.

• file-nr — Lista el número de manejadores de archivos asignados, manipuladores de archivos

usados, así como el número máximo de manejadores de archivos.

• overflowgid y overflowuid — Define el ID de grupo establecido y el ID de usuario,

respectivamente, para el uso con el sistema de archivos que tan sólo soporta los IDs de grupo y

usuario de 16 bits.

• super-max — Controla el número máximo de superbloques disponible.

• super-nr — Visualiza el número actual de superbloques en uso.

3.3.9.3. /proc/sys/kernel/

Este directorio contiene una variedad de archivos de configuración diferentes que afectan

directamente a la operación del kernel. Algunos de los archivos más importantes incluyen:

• acct — Controla la suspensión del proceso de contabilización basado en el porcentaje de espacio

libre disponible en el sistema de archivos conteniendo el registro (log). Por defecto, el archivo

aparecerá de la siguiente manera:

4 2 30

El primer valor fija el porcentaje de espacio libre necesario para reanudar el proceso de inicio de

sesión, mientras que el segundo valor indica el umbral del porcentaje de espacio libre cuando se

suspende el inicio de sesión. El tercer valor fija el intervalo en segundos, en que el kernel interroga

al sistema de archivos para ver si el inicio de sesión se suspende o continua.

• cap-bound — Controla las configuraciones de las capability bounding, que proporcionan una lista

de capacidades para cualquier proceso en el sistema. Si una capacidad no está listada aquí, ningún

proceso, por muy privilegiado que sea éste, puede realizarlo. La idea inicial es hacer que el sistema

sea más seguro asegurando que no acontezcan ciertas cosas, por lo menos llegados a un cierto

nivel del proceso de arranque.

Para una lista de los valores válidos para este archivo virtual, refiérase a la siguiente

documentación instalada:

/lib/modules/<kernel-version>/build/include/linux/capability.h.

Page 31: 3  el sistema de archivos proc

45

/proc/sys/

• ctrl-alt-del — Controls whether Ctrl+Alt+Delete gracefully restarts the computer using

init (0) or forces an immediate reboot without syncing the dirty buffers to disk (1).

• domainname — Configura el nombre de dominio del sistema, tal como example.com.

• exec-shield — Configura la característica Exec Shield del kernel. Exec Shield proporciona

protección en contra de ciertos tipos de ataques de sobrecarga de la memoria intermedia.

Hay dos valores posibles para este archivo virtual:

• 0 — Inhabilita Exec Shield.

• 1 — Habilita Exec Shield. Este es el valor predeterminado.

Importante

Si un sistema está ejecutando aplicaciones de seguridad confidencial que se

iniciaron mientras Exec Shield estaba desactivado, estas aplicaciones se deberan

iniciar una vez más cuando Exec Shield esté habilitado nuevamente.

• exec-shield-randomize — Habilita la ubicación aleatoria de varios elementos en memoria.

Esto ayuda a impedir que atacantes potenciales puedan ubicar programas y demonios en memoria.

Cada vez que un programa o demonio arranca, se coloca en un espacio de memoria diferente,

nunca la dirección de memoria es estática o absoluta.

Hay dos valores posibles para este archivo virtual:

• 0 — Desactiva la aleatorización de Exec Shield. Esto puede ser útil para propósitos de

depuración de aplicaciones.

• 1 — Permite la aleatorización de Exec Shield. Este es el valor predeterminado. Nota: el archivo

exec-shield también se debe colocar a 1 para que exec-shield-randomize esté activo.

• hostname — Configura el nombre del sistema host, por ejemplo www.example.com.

• hotplug — Configura la utilidad a utilizar cuando se detecta un cambio en la configuración del

sistema. Principalmente se usa con USB y Cardbus PCI. El valor por defecto de /sbin/hotplug

no debería ser cambiado a menos que esté probando un nuevo programa para cumplir con este

papel.

• modprobe — Fija la ubicación del programa a usar para cargar los módulos del kernel. El valor por

defecto es /sbin/modprobe que significa que kmod lo llamará para cargar el módulo cuando un

hilo del kernel llame kmod.

• msgmax — Fija el tamaño máximo de cualquier mensaje enviado desde un proceso a otro y está

fijado en 8192 bytes por defecto. Debería tener cuidado al incrementar este valor, ya que los

mensajes en cola entre procesos son almacenados en una memoria de kernel sin memoria de

intercambio (swap). Cualquier incremento en msgmax incrementará los requerimientos de RAM de

su sistema.

• msgmnb — Establece el número máximo de bytes en una única cola de mensajes. Por defecto es

16384.

• msgmni — Establece el número máximo de identificadores de la cola de mensajes. Por defecto, 16.

Page 32: 3  el sistema de archivos proc

46

/proc/sys/

• osrelease — Lista el número de versión del kernel de Linux. Este archivo tan sólo puede ser

alterado al cambiar la fuente del kernel y recompilarla.

• ostype — Visualiza el tipo de sistema operativo. Por defecto, este archivo está configurado para

Linux y este valor tan sólo puede ser cambiado al cambiar la fuente del kernel y recompilarla.

• overflowgid y overflowuid — Define el ID de grupo establecido y el ID de usuario,

respectivamente, para el uso con llamadas del sistema a arquitecturas que tan sólo soportan IDs de

grupo y usuario de 16 bits.

• panic — Define el número de segundos que el kernel pospone el arranque del sistema cuando

se experimenta una emergencia en el kernel. Por defecto, el valor está establecido en 0, lo que

deshabilita el rearranque automático tras una emergencia.

• printk — Este archivo controla una variedad de configuraciones relacionadas con la impresión

o los mensajes de error de registro. Cada mensaje de error remitido por el kernel tiene un nivel de

registro asociado a éste que define la importancia del mensaje. Los valores de loglevel aparecen en

el orden siguiente:

• 0 — Emergencia del Kernel. No se puede utilizar el sistema.

• 1 — Alerta del kernel. Se debe actuar inmediatamente.

• 2 — La condición del kernel se considera crítica.

• 3 — Condición de error general del kernel.

• 4 — Condición de aviso general del kernel.

• 5 — Nota del kernel de una condición normal pero significativa.

• 6 — Mensaje informativo del kernel.

• 7 — Mensajes de depuración del kernel.

En el archivo printk aparecen cuatro valores:

6 4 1 7

Cada uno de estos valores define una regla diferente para tratar con los mensajes de error. El

primer valor, llamado nivel de registro de consola, define la prioridad más baja de mensajes que

se imprimirán en la consola. (Observe que, cuanto más baja sea ésta, más alto será el número de

nivel de registro.) El segundo valor establece el nivel de registro por defecto para mensajes sin un

nivel de registro explícito. El tercer valor establece el nivel de registro más bajo posible para el nivel

de registro de la consola. El último valor establece el valor por defecto para el nivel de registro de la

consola.

• Directorio random — Lista un número de valores relacionados a la generación de números

aleatorios para el kernel.

• rtsig-max — Configura el número máximo de señales en tiempo real POSIX que el sistema

podría haber puesto en cola en un momento dado. El valor por defecto es 1024.

Page 33: 3  el sistema de archivos proc

47

/proc/sys/

• rtsig-nr — Lista el número actual de señales POSIX en tiempo real que el kernel ha puesto en

cola.

• sem — Configura los valores de semáforo dentro del kernel. Un semáforo es un objeto System V

IPC que es usado para controlar la utilización de un proceso particular.

• shmall— Sets the total amount of shared memory pages that can be used at one time, system-

wide. By default, this value is 2097152.

• shmmax — Establece el mayor tamaño de segmento de memoria compartida que permite el kernel,

en bytes. Por defecto, este valor es 33554432. No obstante, el kernel soporta valores con mucho

más margen.

• shmmni — Establece el número máximo de segmentos de memoria compartida para el sistema

completo, en bytes. Por defecto, este valor es 4096

• sysrq — Activa la llave de petición de sistema, si este valor difiere del establecido por defecto 0.

The System Request Key allows immediate input to the kernel through simple key combinations.

For example, the System Request Key can be used to immediately shut down or restart a system,

sync all mounted file systems, or dump important information to the console. To initiate a System

Request Key, type Alt+SysRq+ <system request code> . Replace <system request

code> with one of the following system request codes:

• r — Inhabilita el modo sin formato para el teclado y lo configura a XLATE (un modo de teclado

más limitado el cual no reconoce modificadores tales como Alt, Ctrl, o Shift para todas las

teclas).

• k — Mata todos los procesos activos en una consola virtual. También llamada Llave de Acceso

Segura (SAK), a menudo se utiliza para verificar que el indicador de comandos del inicio de

conexión es generado desde init y no una copia troyana diseñada para capturar nombres de

usuarios y contraseñas.

• b — Reinicia el kernel sin primero desmontar los sistemas de archivos o sincronizar los discos

conectados al sistema.

• c — Apaga el sistema sin primero desmontar los sistemas de archivos o sincronizar los discos

conectados al sistema.

• o — Apaga el sistema.

• s — Intenta sincronizar los discos conectados al sistema.

• u — Intenta desmontar y volver a montar todos los sistemas de archivos como de sólo lectura.

• p — Coloca en la salida todas las banderas y registros a la consola.

• t — Coloca en la consola una lista de los procesos.

• m — Coloca en la consola las estadísticas de la memoria.

• 0 hasta 9 — Configura el nivel de registro para la consola.

• e — Mata todos los procesos usando SIGTERM, excepto init.

• i — Mata todos los procesos usando SIGKILL, excepto init.

Page 34: 3  el sistema de archivos proc

48

/proc/sys/

• l — Mata todos los procesos usando SIGKILL (incluyendo init). Después de emitir este código

de llave de petición del sistema, el sistema no se puede utilizar.

• h — Muestra texto de ayuda.

Esta característica es útil cuando se utiliza un kernel de desarrollo o cuando se estén

experimentando congelamientos del sistema.

Atención

La característica de llave del petición del sistema es considerada un riesgo de

seguridad porque una consola desatendida puede permitir a un atacante obtener

acceso al sistema. Por esta razón, esta desactivada por defecto.

Refer to /usr/share/doc/kernel-doc-<version>/Documentation/sysrq.txt for more

information about the System Request Key.

• sysrq-key — Define el código para la Llave de petición de sistema, (por defecto es 84).

• sysrq-sticky — Define si la llave de petición del sistema es una combinación de llaves acorde.

Los valores aceptados son como sigue:

• 0 — Alt+SysRq and the system request code must be pressed simultaneously. This is the

default value.

• 1 — Alt+SysRq must be pressed simultaneously, but the system request code can be pressed

anytime before the number of seconds specified in /proc/sys/kernel/sysrq-timer

elapses.

• sysrq-timer — Configura el número máximo de segundos que pueden pasar antes de presentar

el código de petición del sistema. El valor por defecto es 10.

• tainted — Indica si hay un módulo no GPL cargado.

• 0 — No se cargó ningún módulo no GPL.

• 1 — Está cargado al menos un módulo sin una licencia GPL (incluyendo módulos sin licencia).

• 2 — Al menos un módulo fué cargado a la fuerza con el comando insmod -f.

• threads-max — Establece el número máximo de hilos que puede usar el kernel, con un valor por

defecto de 2048.

• version — Visualiza la fecha y la hora en los que el kernel fue compilado por última vez. El primer

campo en este archivo, tal como #3, está relacionado con el número de veces que se ha construido

un kernel desde la base de la fuente.

3.3.9.4. /proc/sys/net/

Este directorio contiene diversos subdirectorios que tratan tópicos sobre redes. Las diferentes

configuraciones en el momento en que el kernel fue compilado colocan diferentes directorios aquí

tales como ethernet/, ipv4/, ipx/ y ipv6/. Los administradores de sistemas podrán ajustar la

configuración de la red en un sistema en funcionamiento alterando los archivos en estos directorios.

Page 35: 3  el sistema de archivos proc

49

/proc/sys/

Debido a la amplia variedad de posibles opciones de red disponibles con Linux, tan sólo se

comentarán los directorios /proc/sys/net/.

El directorio /proc/sys/net/core/ contiene una variedad de configuraciones que controlan la

interacción entre el kernel y las capas de red. Los archivos más importantes son:

• message_burst — Configura la cantidad de tiempo en décimas de segundos requeridos para

escribir un mensaje nuevo de aviso. Este valor se utiliza para prevenir ataques de Rechazo de

servicios (o Denial of Service, DoS) y la configuración por defecto es 50.

• message_cost — Configura un costo en cada mensaje de aviso. Cuanto más alto es el valor de

este archivo (por defecto 5), más probable es que el mensaje de aviso sea ignorado. También se

utiliza para prevenir ataques de DoS.

The idea of a DoS attack is to bombard the targeted system with requests that generate errors and

fill up disk partitions with log files or require all of the system's resources to handle the error logging.

The settings in message_burst and message_cost are designed to be modified based on the

system's acceptable risk versus the need for comprehensive logging.

• netdev_max_backlog — Establece el número máximo de paquetes permitido para hacer cola

cuando una interfaz en particular recibe paquetes a una velocidad superior de la que el kernel

puede procesarlos. El valor por defecto para este archivo es 300.

• optmem_max — Configura el tamaño máximo de la memoria intermedia auxiliar por socket.

• rmem_default — Establece el tamaño por defecto de la memoria intermedia de recepción del

socket en bytes.

• rmem_max — Establece el tamaño máximo de la memoria intermedia de recepción en bytes.

• wmem_default — Establece el tamaño por defecto de la memoria intermedia de envíos del socket

en bytes.

• wmem_max — Establece el tamaño máximo de la memoria intermedia de envíos del socket en

bytes.

El directorio /proc/sys/net/ipv4/ contiene configuraciones de red adicionales. Muchas de estas

configuraciones, usadas en conjunto, son muy útiles para prevenir ataques al sistema o cuando se

usa el sistema para que actúe como un enrutador.

Atención

Un cambio erróneo en estos archivos puede afectar la conectividad remota del

sistema.

Aquí tiene una lista de algunos de los archivos más importantes en el directorio /proc/sys/net/

ipv4/:

• icmp_destunreach_rate, icmp_echoreply_rate, icmp_paramprob_rate y

icmp_timeexeed_rate — Establece la tasa máxima de paquetes ICMP a enviar, en centésimas

de un segundo, para hosts bajo ciertas condiciones. Una configuración de 0 elimina cualquier

retraso y no es una buena idea.

Page 36: 3  el sistema de archivos proc

50

/proc/sys/

• icmp_echo_ignore_all y icmp_echo_ignore_broadcasts — Permite que el kernel ignore

paquetes ICMP ECHO desde cada host o tan sólo aquéllos que se originen desde direcciones

broadcast y de destinatario múltiple, respectivamente. 0 permite que el kernel responda, mientras

un 1 ignora los paquetes.

• ip_default_ttl — Establece el Time To Live (TTL) predeterminado, que limita el número de

saltos que un paquete puede efectuar antes de alcanzar su destino. Si incrementa este valor, la

ejecución del sistema puede disminuir.

• ip_forward — Permite interfaces en el sistema para reenviar paquetes a otro. Por defecto, este

archivo está fijado en 0. Si se configura este valor a 1 activa el reenvío de paquetes.

• ip_local_port_range — Especifica el rango de puertos a usar por TCP o UDP cuando se

necesita un puerto local. El primer número es el puerto más bajo que puede utilizar, y el segundo

especifica el puerto más alto. Cualquier sistema que se crea que necesitará más puertos que los

predeterminados 1024 hasta 4999 debería usar el rango 32768 hasta 61000.

• tcp_syn_retries — Proporciona un límite en el número de veces que el sistema retransmitirá un

paquete SYN cuando se intenta establecer una conexión.

• tcp_retries1 — Establece el número de retransmisiones permitidas que intentan responder una

conexión de entrada. 3 por defecto.

• tcp_retries2 — Establece el número de retransmisiones permitidas de paquetes TCP. 15 por

defecto.

El archivo llamado

/usr/share/doc/kernel-doc-<version>/Documentation/networking/ ip-sysctl.txt

contiene una lista completa de archivos y opciones disponibles en el directorio /proc/sys/net/

ipv4/:

Existe un número de otros directorios dentro del directorio /proc/sys/net/ipv4/ y cada uno cubre

un aspecto diferente de la pila de red. El directorio /proc/sys/net/ipv4/conf/ permite a cada

interfaz del sistema ser configurada en diferentes formas, incluyendo el uso de valores por defecto

para dispositivos no configurados (en el subdirectorio /proc/sys/net/ipv4/conf/default/) y

configuraciones que invalidan todas las configuraciones especiales (en el subdirectorio /proc/sys/

net/ipv4/conf/all/).

El directorio /proc/sys/net/ipv4/neigh/ contiene configuraciones para la comunicación con

un host que está conectado directamente al sistema (llamado un vecino de red) y también contiene

configuraciones diferentes para sistemas que están a más de un salto de distancia.

Enrutamiento por encima de IPV4 también tiene su propio directorio /proc/sys/net/ipv4/

route/. A diferencia de conf/ y neigh/, el directorio /proc/sys/net/ipv4/route/ contiene

especificaciones que aplican al enrutamiento con cualquier interfaz en el sistema. Muchas de estas

configuraciones tal como max_size, max_delay y min_delay están relacionadas con el control del

tamaño de la caché de enrutamiento. Para limpiar la caché de enrutamiento escriba cualquier valor al

archivo flush.

Encontrará información adicional sobre estos directorios y los posibles valores de sus archivos de

configuración en:

Page 37: 3  el sistema de archivos proc

51

/proc/sys/

/usr/share/doc/kernel-doc-<version>/Documentation/filesystems/proc.txt

3.3.9.5. /proc/sys/vm/

This directory facilitates the configuration of the Linux kernel's virtual memory (VM) subsystem. The

kernel makes extensive and intelligent use of virtual memory, which is commonly referred to as swap

space.

Los siguientes archivos se encuentran habitualmente en el directorio /proc/sys/vm:

• block_dump — Configura la depuración de bloques de E/S cuando está activo. Se registran

todas las operaciones de lectura/escritura o que impliquen ensuciar bloques hechas a archivos.

Esto puede ser muy útil para efectos de diagnóstico del giros del disco para la conservación de la

batería de las portátiles. Se pueden recuperar todas las salidas cuando block_dump está activado,

mediante dmesg. El valor por defecto es 0.

Tip

Si block_dump está activado a la vez que la depuración del kernel, es prudente

detener el demonio klogd, pues generará actividad del disco errónea causada por

block_dump.

• dirty_background_ratio — Configura la escritura de los datos sucios a este porcentaje total

de memoria, a través del demonio pdflush. El valor por defecto es 10.

• dirty_expire_centisecs — Define cuando los datos en memoria que se encuentran marcados

como 'dirty' son lo suficientemente antiguos como para ser candidatos a escritura. Los datos en

memoria por más tiempo que este intervalo, son escritos la próxima vez que se active un demonio

pdflush. El valor por defecto es 3000, expresado en cientos de segundos.

• dirty_ratio — Comienza la escritura activa de los datos sucios a este porcentaje total de

memoria para el generador de datos sucios, a través de pdflush. El valor por defecto es 40.

• dirty_writeback_centisecs — Define el intervalo entre activaciones del demonio pdflush, que

escribe periódicamente los datos en memoria al disco. El valor por defecto es 500, expresado en

cientos de segundos.

• laptop_mode — Minimiza el número de veces que un disco duro necesita girar manteniendo los

giros por el mayor tiempo posible, y por ende, conservando energía en las baterías de las portatiles.

Esto inclementa la eficiencia al combinar todos los procesos futuros de E/S juntos, reduciendo la

frecuencia de los giros. El valor por defecto es 0, pero se activa automáticamente en caso de que

se use la bateria en la portátil.

Este valor es controlado automáticamente por el demonio acpid una vez que se le notifica al

usuario que la energía de la batería está activada. No se necesitan modificaciones o interacciones

por parte del usuario si la portátil soporta la especificación de ACPI (Advanced Configuration and

Power Interface).

Para más información, consulte la siguiente documentación instalada:

/usr/share/doc/kernel-doc-<version>/Documentation/laptop-mode.txt

Page 38: 3  el sistema de archivos proc

52

/proc/sys/

• lower_zone_protection — Determina qué tan agresivo es el kernel en defender las zonas de

ubicación de memoria baja. Esto es efectivo cuando se utiliza con máquinas configuradas con el

espacio de memoria highmem activado. El valor por defecto es 0, sin protección. Todos los demás

valores enteros están en megabytes, y por lo tanto, la memoria lowmem está protegida de ser

asignada por los usuarios.

Para más información, consulte la siguiente documentación instalada:

/usr/share/doc/kernel-doc-<version>/Documentation/filesystems/proc.txt

• max_map_count — Configura el número máximo de áreas de mapa de memoria que puede tener

un proceso. En la mayoría de los casos, el valor por defecto de 65536 es apropiado.

• min_free_kbytes — Obliga a que Linux VM (el gestor de memoria virtual) mantenga un número

mínimo de kilobytes libres. El VM utiliza este número para computarizar un valor pages_min para

cada zona lowmem en el sistema. El valor por defecto es en relación al número total de memoria en

la máquina.

• nr_hugepages — Lista el número actual de páginas hugetlb configuradas en el kernel.

Para más información, consulte la siguiente documentación instalada:

/usr/share/doc/kernel-doc-<version>/Documentation/vm/hugetlbpage.txt

• nr_pdflush_threads — Indica el número de demonios pdflush que se están ejecutando

actualmente. Este archivo es de sólo lectura, y no debería ser cambiado por el usuario. Bajo

grandes cargas de E/S, el kernel incrementa el valor por defecto de dos.

• overcommit_memory — Configura las condiciones bajo las cuales una petición de gran memoria

es aceptada o rechazada. Están disponibles los siguientes tres modos:

• 0 — El kernel lleva a cabo un manejo de memoria heurístico, estimando la cantidad de memoria

disponible y suspendiendo las peticiones que son obviamente inválidas. Desafortunadamente,

puesto que la memoria es asignada usando heurísticas en vez de un algoritmo preciso, esta

configuración puede algunas veces ocasionar la sobrecarga de la memoria disponible en el

sistema. Esta es la configuración por defecto.

• 1 — El kernel no lleva a cabo ningún manejo de asignaciones extra de memoria. Con esta

configuración, el potencial de sobrecarga de memoria se incrementa, pero también el rendimiento

para las tareas intensivas de memoria (tales como aquellas ejecutadas por software científico).

• 2 — El kernel suspende las peticiones de memoria que consumen todo el swap más el

porcentaje de memoria física RAM especificado en /proc/sys/vm/overcommit_ratio. Esta

configuración es mejor para aquellos que deseen menos riesgos de comprometer en exceso la

memoria.

Nota

Esta configuración solamente es recomendada para los sistemas con áreas

swap más grandes que la memoria física.

• overcommit_ratio — Especifica el porcentaje de memoria física RAM considerada cuando /

proc/sys/vm/overcommit_memory es configurado a 2. El valor por defecto es 50.

Page 39: 3  el sistema de archivos proc

53

/proc/sysvipc/

• page-cluster — Establece el número de páginas leídas en un solo intento. El valor por defecto

de 3 establecido en 16 páginas, es apropiado para la mayoría de los sistemas.

• swappiness — Establece cuánto swap debería hacer una máquina. Mientras más alto es el

número, ocurrirá mayor swapping. Por defecto, este valor es 60.

Toda la documentación basada en el kernel se puede encontrar en la ubicación local siguiente:

/usr/share/doc/kernel-doc-<version>/Documentation/, which contains additional

information.

3.3.10. /proc/sysvipc/

Este directorio contiene información sobre los recursos System V IPC. Los archivos de este directorio

están relacionados con las llamadas al System V IPC de mensajes (msg), semáforos (sem), y

memoria compartida (shm).

3.3.11. /proc/tty/

Este directorio contiene información sobre los dispositivos tty disponibles y usados actualmente en el

sistema. Originalmente conocido como dispositivos teletipo, cualquier terminal de datos basado en

carácteres se le conoce como dispositivos tty.

In Linux, there are three different kinds of tty devices. Serial devices are used with serial connections,

such as over a modem or using a serial cable. Virtual terminals create the common console

connection, such as the virtual consoles available when pressing Alt+<F-key> at the system

console. Pseudo terminals create a two-way communication that is used by some higher level

applications, such as XFree86. The drivers file is a list of the current tty devices in use, as in the

following example:

serial

/dev/cua

5

64-127 serial:callout

serial /dev/ttyS 4 64-127 serial pty_slave /dev/pts 136 0-255 pty:slave pty_master /dev/ptm 128 0-255 pty:master pty_slave /dev/ttyp 3 0-255 pty:slave pty_master /dev/pty 2 0-255 pty:master /dev/vc/0 /dev/vc/0 4 0 system:vtmaster /dev/ptmx /dev/ptmx 5 2 system /dev/console /dev/console 5 1 system:console /dev/tty /dev/tty 5 0 system:/dev/tty unknown /dev/vc/%d 4 1-63 console

El archivo /proc/tty/driver/serial lista las estadísticas en uso y el estado de cada una de las

líneas de serie tty.

Para que se puedan utilizar los dispositivos tty como dispositivos de red, el kernel de Linux reforzará la

disciplina de línea en el dispositivo. Esto permite que el controlador coloque un tipo específico de

encabezamiento con cada bloque de datos transmitido por el dispositivo, haciendo posible que el lado

remoto de la conexión vea el bloque de datos como uno más en la línea de bloques de datos. SLIP

y PPP son disciplinas de línea comunes y se usan a menudo para conectar sistemas en un enlace

serial.

En el archivo ldiscs encontrará disciplinas de líneas registradas e información más detallada en el

directorio ldisc.

Page 40: 3  el sistema de archivos proc

54

/proc/sysvipc/

3.3.12. /proc/<PID>/

Out of Memory (OOM) refers to a computing state where all available memory, including swap space,

has been allocated. When this situation occurs, it will cause the system to panic and stop functioning

as expected. There is a switch that controls OOM behavior in /proc/sys/vm/panic_on_oom.

When set to 1 the kernel will panic on OOM. A setting of 0 instructs the kernel to call a function named

oom_killer on an OOM. Usually, oom_killer can kill rogue processes and the system will survive.

The easiest way to change this is to echo the new value to /proc/sys/vm/panic_on_oom.

# cat /proc/sys/vm/panic_on_oom

1

# echo 0 > /proc/sys/vm/panic_on_oom

# cat /proc/sys/vm/panic_on_oom

0

It is also possible to prioritize which processes get killed by adjusting the oom_killer score. In /

proc/<PID>/ there are two tools labelled oom_adj and oom_score. Valid scores for oom_adj are

in the range -16 to +15. To see the current oom_killer score, view the oom_score for the process.

oom_killer will kill processes with the highest scores first.

This example adjusts the oom_score of a process with a PID of 12465 to make it less likely that

oom_killer will kill it.

# cat /proc/12465/oom_score

79872

# echo -5 > /proc/12465/oom_adj

# cat /proc/12465/oom_score

78

There is also a special value of -17, which disables oom_killer for that process. In the example

below, oom_score returns a value of 0, indicating that this process would not be killed.

# cat /proc/12465/oom_score

78

# echo -17 > /proc/12465/oom_adj

# cat /proc/12465/oom_score

0

A function called badness() is used to determine the actual score for each process. This is done by

adding up 'points' for each examined process. The process scoring is done in the following way:

1. The basis of each process's score is its memory size.

2. The memory size of any of the process's children (not including a kernel thread) is also added to

the score

3. The process's score is increased for 'niced' processes and decreased for long running processes.

Page 41: 3  el sistema de archivos proc

55

Uso del comando sysctl

4. Processes with the CAP_SYS_ADMIN and CAP_SYS_RAWIO capabilities have their scores

reduced.

5. The final score is then bitshifted by the value saved in the oom_adj file.

Thus, a process with the highest oom_score value will most probably be a non-priviliged, recently

started process that, along with its children, uses a large amount of memory, has been 'niced', and

handles no raw I/O.

3.4. Uso del comando sysctl El comando /sbin/sysctl es usado para visualizar, configurar y automatizar configuraciones del

kernel en el directorio /proc/sys/.

Para tener una vista rápida de todas las variables configurables en el directorio /proc/sys/, escriba

el comando /sbin/sysctl -a como root. Esto creará una lista grande y exhaustiva, de la cual le

mostramos un pequeño parte:

net.ipv4.route.min_delay = 2 kernel.sysrq = 0 kernel.sem = 250 32000 32 128

Esta es la misma información que vería si echara un vistazo a cada uno de los archivos

individualmente. La única diferencia es la localización del archivo. Por ejemplo, el archivo /proc/

sys/net/ipv4/route/min_delay está representado por net.ipv4.route.min_delay, con las

barras oblicuas del directorio sustituídas por puntos y la porción asumida proc.sys.

El comando sysctl se puede usar en vez de echo para asignar valores a los archivos en los que se

puede escribir en el directorio /proc/sys/ . Por ejemplo, en vez de usar el comando

echo 1 > /proc/sys/kernel/sysrq

utilice el comando sysctl equivalente como se muestra:

sysctl -w kernel.sysrq="1"

kernel.sysrq = 1

A pesar de que es muy útil durante las pruebas el poder rápidamente efectuar configuraciones de

valores simples en /proc/sys/, esto no funciona bien en un ambiente de producción puesto que las

configuraciones especiales en /proc/sys/ se pierden cuando se vuelve a arrancar el sistema. Para

conservar las configuraciones personalizadas, añádalas al archivo /etc/sysctl.conf.

Cada vez que el sistema arranque, el programa init ejecuta el script /etc/rc.d/rc.sysinit.

Este script contiene un comando para ejecutar sysctl mediante el uso de /etc/sysctl.conf

para determinar los valores pasados al kernel. Cualquier valor añadido a /etc/sysctl.conf surtirá

efecto cada vez que el sistema arranque.

3.5. Recursos adicionales A continuación están las fuentes adicionales de información sobre el sistema de archivos proc.

Page 42: 3  el sistema de archivos proc

56

Uso del comando sysctl

3.5.1. Documentación instalada

Algunas de la mejor documentación sobre el archivo proc está instalada por defecto en el

sistema.

• /usr/share/doc/kernel-doc-

<version>/Documentation/filesystems/proc.txt — Contains assorted, but

limited, information about all aspects of the /proc/ directory.

• /usr/share/doc/kernel-doc-<version>/Documentation/sysrq.txt — An

overview of

System Request Key

options.

• /usr/share/doc/kernel-doc-<version>/Documentation/sysctl/ — A

directory containing a variety of sysctl tips, including modifying values that

concern the kernel (kernel.txt), accessing file systems (fs.txt), and virtual

memory use (vm.txt).

• /usr/share/doc/kernel-doc-

<version>/Documentation/networking/ip- sysctl.txt — A

detailed overview of IP networking options.

3.5.2. Sitios web útiles

• http://www.linuxhq.com/ — Este sitio mantiene una base de datos completa de fuentes,

parches y documentación para varias versiones del kernel de Linux.