5.3. Directorios en /proc

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

5.3.1. Directorios de proceso

Cada directorio /proc/ contiene unos cuantos directorios nombrados con un número. Un listado de los mismos empezarí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

A estos directorios se les llama directorios de proceso, ya que pueden hacer referencia a un ID de proceso y contener información específica para ese proceso. El propietario y grupo de cada directorio de proceso está configurado para que el usuario ejecute el proceso. Cuando se finaliza el proceso, el directorio del proceso /proc desaparece. Sin embargo, mientras que se está ejecutando el proceso, una gran cantidad de información específica a ese proceso está contenida en varios archivos del directorio de procesos.

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

5.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.

5.3.2. /proc/bus/

Este directorio contiene información específica sobre los diversos busses disponibles en el sistema. Por ejemplo, en un sistema estándar que contenga busses ISA, PCI y USB, los datos actuales de cada uno de estos busses están disponibles en el directorio bajo /proc/bus/.

Los contenidos de los subdirectorios y archivos disponibles varían según la configuración precisa de su sistema. No obstante, cada uno de los directorios para cada uno de los tipos de bus contiene al menos un directorio para cada bus de ese tipo. Estos directorios bus individuales, habitualmente referenciados con números, tales como 00, contienen archivos binarios que se refieren a los varios dispositivos disponibles en ese bus.

Por ejemplo, un sistema con un bus USB sin ningún USB conectado a este tiene un directorio /proc/bus/usb que contiene varios archivos:

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/ contiene archivos que hacen un seguimiento de los diferentes dispositivos en cualquier bus USB, así como los controladores requeridos para su uso. El directorio /proc/bus/usb/001/ contiene todos los dispositivos del primer bus USB. Al mirar el contenido del archivo devices, se puede identificar el hub raíz USB en la tarjeta madre.

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

5.3.3. /proc/driver/

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

rtc es un archivo habitual aquí que proporciona salida desde el driver para el Real Time Clock (RTC) del sistema, dispositivo que guarda el tiempo mientras que el sistema está apagado. Un ejemplo de salida de datos desde /proc/driver/rtc:

rtc_time	: 01:38:43
rtc_date	: 1998-02-13
rtc_epoch	: 1900
alarm		: 00:00:00
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 obtener más información sobre el RTC, revise /usr/src/linux-2.4/Documentation/rtc.txt.

5.3.4. /proc/fs

Este directorio muestra cómo se exportan los sistemas de archivos. Si está usando un servidor NFS, escriba cat /proc/fs/nfs/exports para visualizar los sistemas de archivos que se comparten y los permisos acordados a esos sistemas de archivos. Para mayor información sobre archivos compartidos con NFS, consulte el Capítulo 9.

5.3.5. /proc/ide/

Este directorio contiene una cantidad muy surtida de información sobre los dispositivos IDE del sistema. Cada canal IDE está representado como un directorio separado, como /proc/ide/ide0 y /proc/ide/ide1. Además, un archivo drivers también está disponible, al proporcionar el número de versión de varios controladores usados en los canales IDE:

ide-cdrom   version 4.59
ide-floppy  version 0.97
ide-disk    version 1.10

Muchos chipsets proporcionan un archivo de información en este directorio que aporta datos adicionales referentes a las unidades conectadas a través de los canales. Por ejemplo, un chipset genérico Intel PIIX4 Ultra 33 produce un /proc/ide/piix que le informará de si DMA o UDMA está o no habilitado para los dispositivos en los canales IDE:



                              Intel PIIX4 Ultra 33 Chipset.
------------- Primary Channel ---------------- Secondary Channel -------------
                 enabled                          enabled
------------- drive0 --------- drive1 -------- drive0 ---------- drive1 ------
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 para el primer canal, obtendrá más información. El archivo channel proporciona el número de canal, mientras que model le facilita el tipo de bus para el canal (como pci).

5.3.5.1. Directorios de dispositivo

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.

NotaNota
 

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.

  • 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 habitualmente contiene bastante información técnica útil. Un ejemplo de archivo settings para un disco duro IDE estándar:

    name                value          min          max          mode
    ----                -----          ---          ---          ----
    bios_cyl            784            0            65535        rw
    bios_head           255            0            255          rw
    bios_sect           63             0            63           rw
    breada_readahead    4              0            127          rw
    bswap               0              0            1            r
    current_speed       66             0            69           rw
    file_readahead      0              0            2097151      rw
    ide_scsi            0              0            1            rw
    init_speed          66             0            69           rw
    io_32bit            0              0            3            rw
    keepsettings        0              0            1            rw
    lun                 0              0            7            rw
    max_kb_per_request  64             1            127          rw
    multcount           8              0            8            rw
    nice1               1              0            1            rw
    nowerr              0              0            1            rw
    number              0              0            3            rw
    pio_mode            write-only     0            255          w
    slow                0              0            1            rw
    unmaskirq           0              0            1            rw
    using_dma           1              0            1            rw

5.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/, consulte:
/usr/src/linux-2.4/Documentation/filesystems/proc.txt

5.3.7. /proc/net/

El directorio proporciona una visión exhaustiva de diversos parámetros y estadísticas de red. Cada uno de los archivos cubre una cantidad específica de información relacionada con la red en el sistema:

5.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, 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

Además, cada driver SCSI usado por el sistema tiene su propio directorio en /proc/scsi/, que contiene archivos específicos para cada controlador SCSI que utiliza ese controlador. En el ejemplo anterior de sistema, los directorios aic7xxx y megaraid están presentes, como aquellos dos drivers que se están utilizando. Los archivos en cada uno de los directorios contienen típicamente un rango de E/S, información de IRQ, y estadísticas para el controlador SCSI particular usando ese controlador. Cada controlador puede remitir un tipo y cantidad de información diferente. El archivo del adaptador Adaptec AIC-7880 Ultra SCSI en este ejemplo produce una salida como la siguiente:

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

En esta pantalla, se puede ver la velocidad de transmisión a los diversos 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.

5.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.

AvisoAviso
 

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, 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:

echo1>/proc/sys/kernel/sysrq

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

El objetivo de la System Request Key es el de permitirle darle al kernel entrada inmediata mediante combinaciones simples de teclas. Por ejemplo, se puede usar el System Request Key para apagar de inmediato el sistema o reiniciarlo, sincronizar todos los sistemas de archivos montados o volcar información importante a la consola. Esta característica es más útil cuando se utiliza un kernel de desarrollo o si está experimentando bloqueos del sistema. Sin embargo, es considerado un riesgo de seguridad para una consola desatendida y por lo tanto es desactivado por defecto bajo Red Hat Linux.

Para obtener más información sobre la clave de petición de sistema, remítase a /usr/src/linux-2.4/Documentation/sysrq.txt.

Unos cuantos archivos de configuración /proc/sys contienen más de un valor. Para enviar 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

NotaNota
 

Cualquier cambio de configuración que haga mediante el comando echo desaparecerá cuando vuelva a iniciarse el sistema. Para hacer que cambios de configuración tengan efecto después que el sistema es reiniciado, consulte Sección 5.4.

El directorio/proc/sys contiene directorios diferentes que controlan diferentes aspectos de la ejecución de un kernel.

5.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, parport, que proporciona la habilidad de compartir un puerto paralelo entre drivers de dispositivo múltiple.

El directorio cdrom contiene un archivo llamado info, que revela algunos parámetros importantes de CD-ROM:

CD-ROM information, Id:  cdrom.c 3.12  2000/10/18

drive name:		hdc
drive speed:		32
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

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.

Se pueden utilizar diversos archivos en /proc/sys/dev/cdrom, como autoclose y checkmedia, para controlar el CD-ROM del sistema. Use el comando echo para activar o desactivar estas características.

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.

5.3.9.2. /proc/sys/fs/

Este directorio contiene un compendio de opciones y de información referente a varios aspectos del sistema de archivos, incluyendo la información de cuotas, manipulación del archivos, inode y dentry.

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

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

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

    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 e uso y tan sólo visualizan ceros.

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

  • file-max — Permite cambiar el número máximo de manipulaciones de archivos que asignará el kernel. Si incrementa el valor de este archivo resolverá los errores causados por la falta de manejadores de archivos disponibles.

  • file-nr — Visualiza el número de manipulación de archivos asignados, manipulación de archivos usados, así como el número máximo de manipulación de archivos, en este orden.

  • 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.

5.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 que contienen el log. El archivo aparecerá de la siguiente manera, por defecto:

    4	2	30

    El segundo valor fija el porcentaje de umbral de espacio libre cuando se suspende el proceso de registro, mientras que la primera columna indica el porcentaje de espacio libre requerido cuando se reanude el proceso de registro. El tercer valor fija el intervalo en segundos en que el kernel interroga al sistema de archivos para ver si el registro se suspende o continua.

  • cap-bound — Controla las configuraciones de las capability bounding, que proporcionan una lista de capacidades para cualquier proceso en el sistema. Si una capacidad no está listada aquí, ningún proceso, por muy privilegiado que sea éste, puede realizarlo. La idea inicial es hacer que el sistema sea más seguro asegurando que no acontezcan ciertas cosas, por lo menos llegados a un cierto nivel del proceso de arranque.

    Para una lista válida de los valores para este archivo virtual, consulte /usr/src/linux-2.4/include/linux/capability.h. Encontrará más información sobre capability bounding en línea en el siguiente URL: http://lwn.net/1999/1202/kernel.php3.

  • ctrl-alt-del — Controla si [Ctrl]-[Alt]-[Delete] reiniciará el ordenador adecuadaments mediante el uso de init (valor 0) o si forzará un rearranque inmediato sin la sincronización de buffers modificados al disco (valor 1).

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

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

  • hotplug — Configura la utilidad para que ésta sea usada cuando se detecta un cambio en la configuración del sistema. Principalmente se usa con USB y Cardbus PCI. El valor por defecto de /sbin/hotplug no debería ser cambiado a menos que esté probando un nuevo programa para cumplir con este papel.

  • modprobe — Fija la ubicación del programa a usar para cargar los módulos del kernel cuando éstos sean necesarios. El valor por defecto de /sbin/modprobe significa que kmod lo solicitará para cargar el módulo cuando un thread del kernel solicite kmod.

  • msgmax — Fija el tamaño máximo de cualquier mensaje enviado desde un proceso a otro, que está fijado en 8192 bytes por defecto. Debería tener cuidado al alzar este valor, ya que los mensajes en cola entre procesos están 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, 16384.

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

  • 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 loglevel asociado a éste que define la importancia del mensaje. Los valores de loglevel aparecen en el orden siguiente:

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

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

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

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

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

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

    • 6 — Mensaje informativo del kernel.

    • 7 — Mensajes de depuración del kernel.

    En el archivo printk aparecen cuatro valores:

    6	4	1	7

    Cada uno de estos valores define una regla diferente para tratar con los mensajes de error. El primer valor, llamado console loglevel, 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 loglevel.) El segundo valor establece el loglevel por defecto para mensajes adjuntos a éstos sin un loglevel explícito. El tercer valor establece la configuración del loglevel lo más bajo posible para el loglevel de la consola. El último valor establece el valor por defecto para el loglevel de la consola.

  • 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 cualquier otro momento. El valor por defecto es 1024.

  • rtsig-nr — El número actual de señales POIX en tiempo real que el kernel ha puesto en cola.

  • sem — Configura los valores de semáforo dentro del kernel. Un semáforo es un objeto System V IPC que es usado para controlar la utilización de un proceso particular.

  • shmall — Establece la cantidad total de memoria que se puede utilizar de una sola vez en el sistema, en bytes. Por defecto, este valor es 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 clave de petición de sistema, si el valor difiere del establecido por defecto 0. Ver la Sección 5.3.9 para mayor información sobre la System Request Key.

  • threads-max — Establece el número máximo de threads 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.

El directorio random almacena un número de valores relacionados a la generación de números aleatorios para el kernel.

5.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 appletalk, ethernet, ipv4, ipx, y ipv6. Dentro de estos directorios, los administradores de sistemas podrán ajustar la configuración de la red en un sistema en funcionamiento.

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 — Décimas de segundos requeridos para escribir un mensaje nuevo de aviso. Se usa para prevenir ataques Denial of Service (DoS) y la configuración por defecto es 50.

  • message_cost — También se utiliza para prevenir ataques de DoS poniendo un coste a cada mensaje de aviso. Cuanto más alto es el valor de este archivo (por defecto 5), más probable es que el aviso del mensaje sea ignorado.

    La idea de un ataque DoS es bombardear su sistema con peticiones que generen errores y llenen sus particiones con archivos logs o necesiten todos los recursos del sistema para manipular el registro de errores. Las configuraciones en message_burst y message_cost están diseñadas para ser modificadas basándose el riesgo aceptable del sistema contra la necesidad de un registro exhaustivo.

  • 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 a la que el kernel puede procesarlos. El valor por defecto para este archivo es 300.

  • optmem_max — Configura el tamaño máximo de buffer secundario por socket.

  • rmem_default — Establece el tamaño por defecto del buffer de recepción del socket en bytes.

  • rmem_max — Establece el tamaño máximo del buffer de recepción en bytes.

  • wmem_default — Establece el tamaño por defecto del buffer de envíos del socket en bytes.

  • wmem_max — Establece el tamaño máximo de la buffer 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 en usar el sistema para que actúe como un enrutador.

AtenciónAtención
 

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

Aquí tiene algunos de los archivos más importantes en el directorio ipv4:

  • icmp_destunreach_rate, icmp_echoreply_rate, icmp_paramprob_rate y icmp_timeexeed_rate — Establece el ratio máximo 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.

  • icmp_echo_ignore_all and 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. 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 en este archivo.

  • 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.

Para consultar la lista completa de archivos y opciones, vea /usr/src/linux-2.4/Documentation/networking/ip-sysctl.txt.

Existe un número de otros directorios dentro del directorio /proc/sys/net/ipv4/ y cada uno cubre tópicos específicos. 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.

Routing 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, tales 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 /usr/src/linux-2.4/Documentation/filesystems/proc.txt.

5.3.9.5. /proc/sys/vm/

Este directorio facilita la configuración del subsistema de memoria virtual (VM) del kernel. El kernel hace un uso extensivo e inteligente de la memoria virtual, conocida comunmente como espacio swap.

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

  • bdflush — Establece varios valores relacionados con el demonio del kernel bdflush.

  • buffermem — Le permite controlar la cantidad porcentual de la memoria total del sistema a usar para la memoria del buffer. Una salida de datos típica para este archivo:

    2	10	60

    Los primeros y últimos valores establecen el porcentaje mínimo y máximo de memoria que ha de usarse como memoria de buffer, respectivamente. El valor del medio establece el porcentaje de memoria del sistema dedicado a la memoria de buffer donde el subsistema de gestión de memoria iniciará el borrado de la caché del buffer más que otros tipos de memoria para compensar la falta en general de memoria libre.

  • kswapd — Establece varios valores referentes al demonio de swap-out del kernel, kswapd. Este archivo tiene tres valores:

    512	32	8

    El primer valor establece el número máximo de páginas que kswapd intentará liberar en una sola vez. Cuanto mayor sea el número, más enérgico será el kernel al liberar páginas. El segundo valor establece el número mínimo de veces que kswapd intenta dejar libre una página. El tercer valor establece el número de páginas que kswapd intenta escribir en un solo intento. Una correcta sintonización de este valor final puede mejorar la ejecución de un sistema usando mucho espacio swap diciendole al kernel que escriba páginas en grandes cantidades, minimizando el número de búsquedas en disco.

  • 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.

  • overcommit_memory — Contiene un valor, que cuando no es el predeterminado 0, permite al kernel saltarse un chequeo estándar para ver si existe suficiente memoria antes de asignarlo.

    Si el valor de overcommit_memory es 1, entonces se incrementa la sobrecarga potencial del sistema pero también lo es el rendimiento para las tareas de uso intensivo de memoria, tales como aquellas de software científico.

    Para los usuarios que no quieren correr riesgos en los compromisos de memoria, existen dos opciones. Configurando overcommit_memory a 2 falla si una petición de memoria añade más de la mitad de la memoria física RAM, más swap. Colocandola a 3 falla si una petición de memoria solicita más de lo que la swap sola pueda manejar.

  • pagecache — Controla la cantidad de memoria usada por la caché de la página. Los valores en pagecache son porcentajes y funcionan de manera parecida a buffermem para reforzar los mínimos y los máximos de memoria caché de página disponible.

  • page-cluster — Establece el número de páginas leídas en un solo intento. El valor por defecto de 4 establecido en 16 páginas, es apropiado para la mayoría de los sistemas.

  • pagetable_cache — Controla el número de tablas de página que están cacheadas en una base de por-procesador. Los primeros y segundos valores están relacionados con el número mínimo y máximo de tablas de página a establecer aparte, respectivamente.

Encontrará información adicional sobre estos archivos en /usr/src/linux-2.4/Documentation/sysctl/vm.txt.

5.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).

5.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 caracteres se le conoce como dispositivos tty.

En Linux existen tres tipos diferentes de dispositivos tty. Los Dispositivos serial son usados con conexiones seriales, tales como un modem o un cable serial. Los Terminales virtuales crean las conexiones de consola comunes, tales como las consolas virtuales disponibles al pulsar [Alt]-[<F-key>] en la consola del sistema. Los Pseudo terminales crean una comunicación de dos sentidos que usan las aplicaciones de nivel alto, tales como XFree86. El archivo drivers es una lista de dispositivos tty actualmente en uso:

serial               /dev/cua        5  64-127 serial:callout
serial               /dev/ttyS       4  64-127 serial
pty_slave            /dev/pts      136   0-255 pty:slave
pty_master           /dev/ptm      128   0-255 pty:master
pty_slave            /dev/ttyp       3   0-255 pty:slave
pty_master           /dev/pty        2   0-255 pty:master
/dev/vc/0            /dev/vc/0       4       0 system:vtmaster
/dev/ptmx            /dev/ptmx       5       2 system
/dev/console         /dev/console    5       1 system:console
/dev/tty             /dev/tty        5       0 system:/dev/tty
unknown              /dev/vc/%d      4    1-63 console

El archivo /proc/tty/driver/serial lista las estadísticas en uso y el estado de cada una de las líneas de serie tty.

Para que se puedan utilizar los dispositivos tty de un modo similar a los dispositivos de red, el kernel de Linux reforzará la disciplina de línea 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, con información detallada en el directorio ldisc.