Red Hat Enterprise Linux 3: Manual de referencia | ||
---|---|---|
Anterior | Capítulo 5. El sistema de archivos /proc | Siguiente |
Grupos comunes de información referente al kernel agrupado en directorios y subdirectorios en /proc/.
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 |
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:
cmdline — Contiene el comando que se ejecutó cuando se arrancó el proceso.
cpu — Proporciona información específica sobre el uso de cada uno de las CPUs del sistema. Un proceso que se ejecuta en un sistema CPU dual produciría una salida similar a la siguiente:
cpu 11 3 cpu0 0 0 cpu1 11 3 |
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.
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 00000000 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:
Tamaño total del programa, en kilobytes.
Tamaño de las porciones de memoria, en kilobytes.
Número de páginas compartidas.
Número de páginas que son código.
Número de páginas de datos/pila.
Número de páginas de bibliotecas.
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.
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.
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 PCI y USB, los datos actuales en cada uno de estos busses 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.
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 |
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: el dispositivo que mantiene el tiempo mientras que el sistema está apagado. Un ejemplo de salida de datos desde /proc/driver/rtc sería similar a:
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.
Este directorio muestra qué sistemas de archivos están siendo exportados. 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.
Este directorio contiene información sobre los dispositivos IDE del sistema. Cada canal IDE está representado como un directorio separado, tal como /proc/ide/ide0 y /proc/ide/ide1. Además, también está disponible un archivo drivers proporcionando el número de versión de los varios controladores usados en los canales IDE:
ide-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 el archivo /proc/ide/piix que le informará de si DMA o UDMA está o no habilitado para los dispositivos en los canales IDE:
Intel PIIX4 Ultra 33 Chipset. ------------- Primary Channel ---------------- Secondary Channel ------------- enabled enabled ------------- drive0 --------- drive1 -------- drive0 ---------- drive1 ------ 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).
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.
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, se vería similar a lo siguiente:
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 |
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:
/usr/src/linux-2.4/Documentation/filesystems/proc.txt |
El directorio proporciona una visión exhaustiva de diversos parámetros y estadísticas de red. Cada directorio y archivo virtual dentro de este directorio describe aspectos sobre la configuración de la red en el sistema. Abajo se muestra un listado parcial del directorio /proc/net/:
arp — Lista la tabla del kernel ARP. Este archivo es particularmente útil para conectar la dirección del hardware a una dirección IP de un sistema.
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 entregados 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 — Lista la tabla de enrutamiento del kernel.
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.
unix — Lista sockets de dominio UNIX.
wireless — Lista datos de la interfaz de radio.
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 |
Cada controlador SCSI usado por el sistema tiene su propio directorio en /proc/scsi/, que contiene archivos específicos para cada controlador SCSI que utiliza ese driver. En el ejemplo anterior, los directorios aic7xxx y megaraid están presentes, puesto que hay dos controladores en uso. Los archivos en cada uno de los directorios contienen típicamente un rango de direcciones 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 |
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.
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.
![]() | Aviso |
---|---|
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 |
---|---|
Cualquier cambio de configuración que haga mediante el comando echo desaparecerá cuando vuelva a iniciarse el sistema. Para hacer que cambios en la configuración tengan efecto después que el sistema es reiniciado, consulte la Sección 5.4. |
El directorio/proc/sys contiene directorios diferentes que controlan diferentes aspectos de la ejecución de un kernel.
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.
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 del directorio de la caché. 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 — Lista el número máximo de manejadores de archivos que el kernel puede asignar. Si incrementa el valor de este archivo puede solucionar los errores causados por la falta de manejadores de archivos disponibles.
file-nr — Lista el número de manejadores de archivos asignados, manipuladores de archivos usados, así como el número máximo de manejadores de archivos.
overflowgid y overflowuid — Define el ID de grupo establecido y el ID de usuario, respectivamente, para el uso con el sistema de archivos que tan sólo soporta los IDs de grupo y usuario de 16 bits.
super-max — Controla el número máximo de superbloques disponible.
super-nr — Visualiza el número actual de superbloques en uso.
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 segundo valor fija el porcentaje de umbral de espacio libre cuando se suspende el proceso de registro, mientras que el primer valor indica el porcentaje de espacio libre requerido para que 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 las capacidades de bounding en línea en el siguiente URL:
http://lwn.net/1999/1202/kernel.php3 |
ctrl-alt-del — Controla si
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 a utilizar cuando se detecta un cambio en la configuración del sistema. Principalmente se usa con USB y Cardbus PCI. El valor por defecto de /sbin/hotplug no debería ser cambiado a menos que esté probando un nuevo programa para cumplir con este papel.
modprobe — Fija la ubicación del programa a usar para cargar los módulos del kernel. El valor por defecto es /sbin/modprobe que significa que kmod lo llamará para cargar el módulo cuando un hilo del kernel llame kmod.
msgmax — Fija el tamaño máximo de cualquier mensaje enviado desde un proceso a otro y está fijado en 8192 bytes por defecto. Debería tener cuidado al incrementar este valor, ya que los mensajes en cola entre procesos son almacenados en una memoria de kernel sin memoria de intercambio (swap). Cualquier incremento en msgmax incrementará los requerimientos de RAM de su sistema.
msgmnb — Establece el número máximo de bytes en una única cola de mensajes. Por defecto, 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 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 cualquier otro momento. El valor por defecto es 1024.
rtsig-nr — Lista el número actual de señales POSIX en tiempo real que el kernel ha puesto en cola.
sem — Configura los valores de semáforo dentro del kernel. Un semáforo es un objeto System V IPC que es usado para controlar la utilización de un proceso particular.
shmall — 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 llave de petición de sistema, si este valor difiere del establecido por defecto 0.
La Llave de petición del sistema permite darle entradas inmediatas al kernel mediante combinaciones simples de teclas. Por ejemplo, se puede usar la Llave de petición del sistema para apagar de inmediato el sistema o reiniciarlo, sincronizar todos los sistemas de archivos montados o volcar información importante a la consola. Para iniciar una Llave de petición del sistema, escriba
r — Deshabilita un modo crudo para el teclado y lo configura a XLATE (un modo de teclado más limitado el cual no reconoce modificadores tales como
k — Mata todos los procesos activos en una consola virtual. También llamada Llave de acceso segura (SAK), a menudo es utilizada para verificar que el indicador de comandos del inicio de conexión es generado desde init y no una copia troyana 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 through 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.
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 la 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. |
Para obtener más información sobre la llave de petición del sistema, remítase a /usr/src/linux-2.4/Documentation/sysrq.txt.
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 —
1 —
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 se carga un módulo no GPL.
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.
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. Los administradores de sistemas podrán ajustar la configuración de la red en un sistema en funcionamiento alterando los archivos en estos directorios.
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 usa para prevenir ataques 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.
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 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 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 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.
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 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.
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 |
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 valores relacionados con el demonio del kernel bdflush.
kswapd — Establece los 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 que esté 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.
hugetlb_pool — Especifica el tamaño en megabytes de hugepages — páginas de memoria contínuas muy grandes. Estas páginas se pueden utilizar para crear grandes mapas de memoria virtual TLB, los cuales son útiles para las aplicaciones de base de datos que usan la RAM de forma intensiva. TLB es una caché en CPU especialmente diseñada para tales mapas de memoria virtual.
Aunque esta funcionalidad se puede ajustar al momento de ejecución, es sensible a problemas de fragmentación cuando crece el pool, mientras que el campo MemFree de /proc/meminfo es bajo. Por esta razón, puede que sea necesario colocar nuevas configuraciones en /etc/sysctl.conf y reiniciar. Consulte la Sección 5.4 para información sobre sysctl.
Para obtener más información sobre la configuración de hugepages, remítase a /usr/src/linux-2.4/Documentation/vm/hugetlbpage.txt.
![]() | Importante |
---|---|
A pesar de haber sido mencionado en hugetlbpage.txt, el archivo /proc/sys/vm/nr_hugepages no existe dentro de Red Hat Enterprise Linux. En su lugar hugetlb_pool se debería utilizar para configurar el número de hugepages disponibles para el sistema. También, es importante recordar que nr_hugepages utiliza unidades de hugepage, mientras que hugetlb_pool configura hugepages en megabytes. |
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. Bajo esta configuración, el potencial de sobrecarga de memoria se incrementa, pero también el rendimiento para las tareas intensivas de memoria (tales como aquellas ejecutadas por software científico).
2 — El kernel suspende las peticiones de memoria que consumen todo el swap más el porcentaje de memoria física RAM especificado en /proc/sys/vm/overcommit_ratio. Esta configuración es mejor para aquellos que deseen menos riesgos de comprometer en exceso la memoria.
![]() | Nota |
---|---|
Esta configuración solamente es recomendada para los sistemas con áreas swap más grandes que la memoria física. |
overcommit_ratio — Especifica el porcentaje de memoria física RAM considerada cuando /proc/sys/vm/overcommit_memory es configurado a 2. El valor por defecto es 50.
pagecache — Controla el porcentaje total de memoria del sistema usado para el caché de páginas. Lo siguiente es una salida típica para este archivo:
1 15 100 |
El primer valor establece la memoria mínima a utilizar como memoria temporal (buffer) y memoria de páginas caché. El valor del medio establece el porcentaje de memoria del sistema dedicado a la memoria del buffer y memoria de páginas caché donde el subsistema de manejo de memoria comienza a aclarar el buffer de caché más que otros tipos de memoria para compensar la falta de memoria libre. El valor final especifica la memoria máxima a utilizar como buffer, pero aún no está implementado.
page-cluster — Establece el número de páginas leídas en un solo intento. El valor por defecto de 3 establecido en 16 páginas, es apropiado para la mayoría de los sistemas.
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
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).
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 módem o usando un cable serial. Los Terminales virtuales crean las conexiones de consola comunes, tales como las consolas virtuales disponibles al pulsar
serial /dev/cua 5 64-127 serial:callout serial /dev/ttyS 4 64-127 serial pty_slave /dev/pts 136 0-255 pty:slave pty_master /dev/ptm 128 0-255 pty:master pty_slave /dev/ttyp 3 0-255 pty:slave pty_master /dev/pty 2 0-255 pty:master /dev/vc/0 /dev/vc/0 4 0 system:vtmaster /dev/ptmx /dev/ptmx 5 2 system /dev/console /dev/console 5 1 system:console /dev/tty /dev/tty 5 0 system:/dev/tty unknown /dev/vc/%d 4 1-63 console |
El archivo /proc/tty/driver/serial lista las estadísticas en uso y el estado de cada una de las líneas de serie tty.
Para que se puedan utilizar los dispositivos tty como dispositivos de red, el kernel de Linux reforzará la disciplina de línea en el dispositivo. Esto permite que el controlador coloque un tipo específico de encabezamiento con cada bloque de datos transmitido por el dispositivo, haciendo posible que el lado remoto de la conexión vea el bloque de datos como uno más en la línea de bloques de datos. SLIP y PPP son disciplinas de línea comunes y se usan a menudo para conectar sistemas en un enlace serial.
En el archivo ldiscs encontrará disciplinas de líneas registradas e información más detallada en el directorio ldisc.