El sistema de archivos /proc
The Linux kernel has two primary functions: to control access to physical devices on the comp...
/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...
/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 q...
/proc/apm
18
Lo siguiente es un ejemplo de la salida típica de /proc/buddyinfo:
Node 0, zone DMA 90 6 2 1 1 ...
Node 0, zo...
19
/proc/crypto
model name : Intel(R) Xeon(TM) CPU 2.40GHz
stepping : 7 cpu
MHz : 2392.371
cache size : 512 KB
physical id...
20
/proc/crypto
3.2.6. /proc/devices
Este archivo muestra los diversos dispositivos de carácteres y de bloque actualmente ...
21
/proc/execdomains
4: cascade
3.2.8. /proc/execdomains
Este archivo lista los dominios de ejecución soportados en la act...
22
/proc/execdomains
La primera columna significa si el sistema de archivos está montado en un dispositivo de bloque.
Aque...
23
/proc/iomem
3.2.12. /proc/iomem
This file shows you the current map of the system's memory for each physical device:
00...
24
/proc/iomem
3.2.14. /proc/kcore
Este archivo representa la memoria física del sistema y se almacena en el formato de ar...
25
/proc/mdstat
desde una llamada de sistema flock y POSIX que representa los bloqueos nuevos POSIX desde la
llamada de si...
26
/proc/mdstat
Mapped: 42236 kB
Slab: 25912 kB
Committed_AS: 118680 kB
PageTables: 1236 kB
VmallocTotal: 3874808 kB
Vmall...
27
/proc/misc
• PageTables — Cantidad total de memoria, en kilobytes, dedicada al nivel más bajo de la tabla de
páginas.
•...
28
/proc/misc
vfat 12097 0 - Live 0x12823000
fat 38881 1 vfat, Live 0x1287b000
autofs4 20293 2 - Live 0x1284f000
sunrpc 14...
29
/proc/mtrr
3.2.23. /proc/mtrr
Este archivo se refiere a la actual Memory Type Range Registers (MTRRs), en uso dentro de...
30
/proc/mtrr
Bus 0, device 0, function 0: Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge
(rev 3). Maste...
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
6...
32
/proc/stat
cpu3 35350 6 2942 14811519 3045 0 3659
cpu4 18209 135 2263 14820076 12465 0 3373
cpu5 20795 35 1866 14825701...
33
/proc/uptime
3.2.30. /proc/uptime
El archivo contiene información sobre el tiempo que lleva encendido el sistema desde ...
34
/proc/uptime
• exe — Enlace simbólico al ejecutable de este proceso.
• fd — Directorio que contiene todos los descripto...
35
/proc/bus/
6. Número de páginas de bibliotecas.
7. Número de páginas sucias.
• status — Proporciona el estado del proce...
36
/proc/bus/
Por ejemplo, el subdirectorio /proc/bus/usb/ contiene archivos que hacen un seguimiento de los
diferentes di...
37
/proc/ide/
systems. For more on file system sharing with NFS, refer to Capítulo 19, Sistema de archivos de red
(NFS).
3...
38
/proc/ide/
• driver — El controlador y la versión usados para controlar el dispositivo.
• geometry — La geometría físic...
39
/proc/net/
3.3.7. /proc/net/
This directory provides a comprehensive look at various networking parameters and statisti...
40
/proc/net/
• unix — Lista sockets de dominio UNIX.
• wireless — Lista datos de la interfaz de radio.
3.3.8. /proc/scsi/...
41
/proc/sys/
driver. Each controller can report a different type and amount of information. The Adaptec AIC-7880
Ultra SC...
42
/proc/sys/
Atención
Tenga mucho cuidado al cambiar la configuración de un sistema en producción
usando los diversos arc...
43
/proc/sys/
3.3.9.1. /proc/sys/dev/
Este directorio proporciona parámetros para dispositivos particulares en el sistema....
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, mie...
45
/proc/sys/
• ctrl-alt-del — Controls whether Ctrl+Alt+Delete gracefully restarts the computer using
init (0) or forces ...
46
/proc/sys/
• osrelease — Lista el número de versión del kernel de Linux. Este archivo tan sólo puede ser
alterado al ca...
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 —...
48
/proc/sys/
• l — Mata todos los procesos usando SIGKILL(incluyendo init). Después de emitir este código
de llave de pet...
49
/proc/sys/
Debido a la amplia variedad de posibles opciones de red disponibles con Linux, tan sólo se
comentarán los di...
50
/proc/sys/
• icmp_echo_ignore_all y icmp_echo_ignore_broadcasts — Permite que el kernel ignore
paquetes ICMP ECHO desde...
51
/proc/sys/
/usr/share/doc/kernel-doc-<version>/Documentation/filesystems/proc.txt
3.3.9.5. /proc/sys/vm/
This directory...
52
/proc/sys/
• lower_zone_protection — Determina qué tan agresivo es el kernel en defender las zonas de
ubicación de memo...
53
/proc/sysvipc/
• page-cluster — Establece el número de páginas leídas en un solo intento. El valor por defecto
de 3 est...
54
/proc/sysvipc/
3.3.12. /proc/<PID>/
Out of Memory (OOM) refers to a computing state where all available memory, includi...
55
Uso del comando sysctl
4. Processes with the CAP_SYS_ADMIN and CAP_SYS_RAWIO capabilities have their scores
reduced.
5....
56
Uso del comando sysctl
3.5.1. Documentación instalada
Algunas de la mejor documentaciónsobre el archivo proc está insta...
Upcoming SlideShare
Loading in …5
×

3 el sistema de archivos proc

1,366 views
1,279 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,366
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

3 el sistema de archivos proc

  1. 1. 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 referenciaa /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
  2. 2. /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.
  3. 3. /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 usadopor 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, apmsó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.
  4. 4. /proc/apm 18 Lo siguiente es un ejemplo de la salida típica de /proc/buddyinfo: Node 0, zone DMA 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
  5. 5. 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é disponibleen 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
  6. 6. 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 DMAISA en uso. Un ejemplo de los archivos /proc/dma se vería similar a:
  7. 7. 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
  8. 8. 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.
  9. 9. 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. MGA G200 AGP e5000000-e57fffff : Matrox Graphics, Inc. MGA G200 AGP e8000000-e8ffffff : PCI Bus #01 e8000000-e8ffffff : Matrox Graphics, Inc. MGA 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.
  10. 10. 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 promediodel 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
  11. 11. 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
  12. 12. 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.
  13. 13. 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
  14. 14. 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 columnase 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 columnason valores no válidos diseñados para hacer coincidir el formato usado en /etc/mtab.
  15. 15. 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:
  16. 16. 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
  17. 17. 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
  18. 18. 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 encontraren 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 commandto 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 puedeleer, ni siquiera por el usuario root.
  19. 19. 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 (user@foo.redhat.com) (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.
  20. 20. 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.
  21. 21. 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.
  22. 22. 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
  23. 23. 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á disponibleun 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 DMAo UDMAestá 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 ------ DMA enabled: yes no yes no UDMA enabled: yes no no no UDMA enabled: 2 X X X UDMA DMA 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.
  24. 24. 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
  25. 25. 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.
  26. 26. 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
  27. 27. 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.
  28. 28. 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.
  29. 29. 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 commandto 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óndel 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:
  30. 30. 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 solucionarlos 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 hacerque 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.
  31. 31. 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. Principalmentese usa con USB y Cardbus PCI. El valor por defecto de /sbin/hotplug no debería ser cambiado a menos que esté probandoun 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.
  32. 32. 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 puedeutilizar 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.
  33. 33. 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 usadopara 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.
  34. 34. 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 specifiedin /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.
  35. 35. 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.
  36. 36. 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:
  37. 37. 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 habitualmenteen 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 porcentajetotal 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
  38. 38. 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á protegidade 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 VMutiliza 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 memoriase 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.
  39. 39. 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 apropiadopara 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 encontraren 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 puedanutilizar 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.
  40. 40. 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.
  41. 41. 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.
  42. 42. 56 Uso del comando sysctl 3.5.1. Documentación instalada Algunas de la mejor documentaciónsobre 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.

×