Red Hat Linux 9: Manual de referencia de Red Hat Linux | ||
---|---|---|
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 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:
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 la siguiente salida de datos:
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 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 librería 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 porciones de memoria, en kilobytes
Número de páginas compartidas
Número de páginas en código
Número de páginas de datos/grupos
Número de páginas de librería
Número de páginas sucias
status — Proporciona el estado del proceso en una forma mucho más legible que stat o statm. Ejemplo de salida de datos de sshd:
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 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 |
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.
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.
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).
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:
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/, consulte:
/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 uno de los archivos cubre una cantidad específica de información relacionada con la red en el sistema:
arp — Contiene 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.
atm — Directorio que contiene archivos con diversas configuraciones y estadísticas Asynchronous Transfer Mode (ATM) y las tarjetas ASDL.
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 — Visualiza los diversos grupos Layer2 con destinatario múltiple a los que cada dispositivo escucha.
igmp — Lista las direcciones IP con destinatarios múltiples (multicast) a las que el sistema se ha incorporado.
ip_fwchains — Revela cualquier cadena del firewall actual.
ip_fwnames — Lista todos los nombres de cadenas del firewall.
ip_masquerade — Proporciona una tabla de información de masquerading.
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 — Visualiza la tabla de ruta 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, 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.
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, 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 |
![]() | Nota |
---|---|
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.
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 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.
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
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.
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ó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.
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.
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 modem o 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 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.