Provided by:
manpages-es_1.55-9_all 
NOMBRE
proc - pseudo-sistema de ficheros de información de procesos
DESCRIPCIÓN
/proc es un pseudo-sistema de ficheros que se usa como interfaz para
las estructuras de datos del núcleo en lugar de leer e interpretar
/dev/kmem. La mayor parte de este sistema de ficheros es de sólo
lectura, pero algunos ficheros permiten cambiar variables del núcleo.
El siguiente resumen proporciona una rápida visita a la jerarquía
/proc.
[nmero]
Hay un subdirectorio numérico para cada proceso en ejecución; el
nombre del subdirectorio es el ID del proceso. Cada uno de ellos
contiene los siguientes pseudo ficheros y directorios.
cmdline
Éste contiene la línea de órdenes completa para el
proceso, a menos que el proceso entero se haya
intercambiado a disco o a menos que el proceso sea un
proceso zombie. En cualquiera de estos dos últimos casos,
no hay nada en el fichero, es decir, una lectura sobre
este fichero devolverá 0 caracteres. Los argumentos de la
línea de órdenes aparecen en este fichero como un
conjunto de cadenas separadas por nulos, con un byte nulo
adicional tras la última cadena.
cwd Éste es un enlace hacia el directorio de trabajo actual
del proceso. Por ejemplo, para encontrar el directorio de
trabajo actual del proceso 20, puede hacer esto:
cd /proc/20/cwd; /bin/pwd
Dese cuenta que la orden pwd es frecuentemente una orden
interna del shell, y podría no funcionar adecuadamente.
En bash, debe usar pwd -P.
environ
Este fichero contiene el entorno del proceso. Las
entradas están serparadas por caracteres nulos, y podría
haber un carácter nulo al final. Por tanto, para mostrar
el entorno del proceso 1, debería hacer:
(cat /proc/1/environ; echo) | tr "\000" "\n"
(Una razón por la que alguien querría hacer esto, la
puede encontrar en lilo(8).)
exe En la versiones 2.2 y 2.4 de Linux exe es un enlace
simbólico que contiene el nombre de la ruta actual de la
orden ejecutada. El enlace simbólico exe se puede
resolver de forma normal - el intentar abrir exe abrirá
el ejecutable. Incluso puede teclear /proc/[number]/exe
para ejecutar otra copia del mismo proceso [número].
En Linux 2.0 y versiones anteriores exe es un puntero al
fichero binario que fue ejecutado y aparece como un
enlace simbólico. Una llamada readlink(2) aplicada al
fichero especial "exe" devuelve una cadena con el
formato:
[dispositivo]:nodo-i
Por ejemplo, [0301]:1502 sería el nodo-i 1502 sobre el
dispositivo con número mayor 03 (discos IDE, MFM, etc.) y
número menor 01 (primera partición del primer disco.
find(1) con la opción -inum se puede usar para buscar el
fichero.
fd Éste es un subdirectorio que contiene una entrada por
cada fichero que tiene abierto el proceso, nombrada con
el descriptor del fichero, y la cual es un enlace
simbólico al fichero real (como lo es la entrada exe).
Por tanto, 0 es la entrada estándar, 1 es la salida
estándar, 2 es la salida estándar de error, etc.
Los programas que no leen de la entrada estándar, sino
que leen de un fichero, y que no escriben en la salida
estándar, sino que escriben en un fichero, pueden ser
engañados de la siguiente manera, suponiendo que -i es la
opción que designa al fichero de entrada y -o la opción
que designa al fichero de salida:
foobar -i /proc/self/fd/0 -o /proc/self/fd/1
y de esta manera su programa funcionará como filtro.
Note que esto no funcionará en programas que realizan
accesos aleatorios sobre sus ficheros, ya que los
ficheros del directorio fd no permiten este tipo de
acceso.
/proc/self/fd/N es aproximadamente lo mismo que /dev/fd/N
en algunos sistemas UNIX y sistemas al estilo UNIX. De
hecho, la mayoría de los guiones shell MAKEDEV de Linux
enlazan simbólicamente /proc/self/fd con /dev/fd.
maps Fichero que contiene las regiones de memoria actualmente
asociadas y sus permisos de acceso.
El formato es:
Dirección perms desplaz disp nodo-i ruta
08048000-08056000 r-xp 00000000 03:0c 64593 /usr/sbin/gpm
08056000-08058000 rw-p 0000d000 03:0c 64593 /usr/sbin/gpm
08058000-0805b000 rwxp 00000000 00:00 0
40000000-40013000 r-xp 00000000 03:0c 4165 /lib/ld-2.2.4.so
40013000-40015000 rw-p 00012000 03:0c 4165 /lib/ld-2.2.4.so
4001f000-40135000 r-xp 00000000 03:0c 45494 /lib/libc-2.2.4.so
40135000-4013e000 rw-p 00115000 03:0c 45494 /lib/libc-2.2.4.so
4013e000-40142000 rw-p 00000000 00:00 0
bffff000-c0000000 rwxp 00000000 00:00 0
donde dirección es el espacio de direcciones del proceso
que ocupa, perms es un conjunto de permisos:
r = leer
w = escribir
x = ejecutar
s = compartido
p = privado (copia en escritura)
desplaz es el desplazamiento dentro del fichero/cosa,
disp es el dispositivo (mayor:menor) y nodo-i es el nodo-
i en ese dispositivo. 0 indica que no hay un nodo-i
asociado a la región de memoria, como ocurriría con la
región bss del proceso.
En Linux 2.0 no existe un campo que dé el nombre de la
ruta.
mem A través del fichreo mem se puede acceder a las páginas
de la memoria de un proceso mediante open(2), read(2) y
fseek(3).
root Unix y Linux soportan la idea de una raíz del sistema de
ficheros por proceso, asignada por la llamada al sistema
chroot(2). Root apunta a la raíz del sistema de ficheros
y se comporta como lo hacen exe, fd/*, etc.
stat Información de estado del proceso. Ésta es usada por
ps(1). Se define en /usr/src/linux/fs/proc/array.c.
Los campos, en orden, junto con sus indicadores de
formato apropiados para scanf(3), son:
pid %d Identificador del proceso.
comm %s
Nombre de fichero del ejecutable, en paréntesis.
Éste es visible dependiendo de si el ejecutable
ha sido o no intercambiado.
state %c
Un carácter de la cadena "RSDZTW" donde R
significa en ejecución, S bloqueado de forma
interrumpible, D bloqueado de forma
ininterrupible en una espera de disco, Z zombie,
T proceso en ejecución paso a paso o parado (en
una señal) y W transfiriendo páginas.
ppid %d
El PID del padre.
pgrp %d
El identificador del grupo de procesos del
proceso.
session %d
El identificador de sesión del proceso.
tty_nr %d
El terminal que usa el proceso.
tpgid %d
El identificador del grupo de procesos del
proceso al que pertenece actualmente la terminal
a la que está conectado el proceso.
flags %u
Las banderas del proceso. El bit "math" es el 4
(en decimal) y el bit "paso a paso" el 10 (en
decimal).
minflt %lu
El número de fallos de página menores producidos
por el proceso que no han necesitado la carga de
una página de memoria desde disco.
cminflt %lu
El número de fallos de página menores producidos
por el proceso y sus hijos.
majflt %lu
El número de fallos de página mayores producidos
por el proceso que han necesitado la carga de una
página de memoria desde disco.
cmajflt %lu
El número de fallos de página mayores producidos
por el proceso y sus hijos.
utime %ld
El número de jiffies que este proceso se ha
planificado en modo usario.
stime %ld
El número de jiffies que este proceso se ha
planificado en modo núcleo.
cutime %ld
El número de jiffies que este proceso y sus hijos
se han planificado en modo usuario.
cstime %ld
El número de jiffies que este proceso y sus hijos
se han planificado en modo núcleo.
priority %ld
El valor ‘‘nice’’ estándar, más 15. El valor
nunca es negativo dentro del núcleo.
nice %ld
El valor ‘‘nice’’, que va desde 19 (el más
generoso) hasta -19 (el más codicioso).
0 %ld Este valor se fija a 0 en el propio código y
representa el lugar que ocupaba de un campo
eliminado.
itrealvalue %u
El tiempo en jiffies antes de que la siguiente
señal SIGALRM sea enviada al proceso.
starttime %lu
Tiempo en jiffies desde el arranque del sistema
hasta el inicio de la ejecución del proceso.
vsize %lu
Tamaño de la memoria virtual en bytes.
rss %ld
Tamaño del conjunto residente (RSS): número de
páginas que el proceso tiene en memoria real,
menos 3 (para propósitos administrativos). Dicho
conjunto está formado por las páginas que
componen actualmente el espacio de código, datos
y pila. No incluye aquellas páginas que no se han
cargado bajo demanda o que se han intercambiado a
disco.
rlim %lu
Límite actual, en bytes, del RSS del proceso
(normalmente, 4294967295 en i386).
startcode %lu
Dirección por encima de la cual se puede ejecutar
el código del programa.
endcode %lu
Dirección por debajo de la cual se puede ejecutar
el código del programa.
startstack %lu
Dirección de comienzo de la pila.
kstkesp %lu
El valor actual del registro ESP (puntero de
pila), tal como se encuentra en la página de pila
del proceso.
kstkeip %lu
Valor actual del EIP (puntero de instrucción).
signal %lu
Mapa de bits de señales pendientes (normalmente
0).
blocked %lu
Mapa de bits de señales bloqueadas (normalmente
0, 2 para los shells).
sigignore %lu
Mapa de bits de señales ignoradas.
sigcatch %lu
Mapa de bits de señales capturadas.
wchan %lu
Este es el ‘‘canal’’ en el que está esperando el
proceso. Es la dirección de una llamada al
sistema y se puede mirar en una lista de nombres
si necesita un nombre textual. (Pruebe ps -l para
ver WCHAN en acción.)
nswap %lu
Número de páginas intercambiadas - no guardadas.
cnswap %lu
nswap acumulativo para los procesos hijos.
exit_signal %d
Señal a enviar al padre cuando muramos.
processor %d
Número de CPU en la que se ejecutó por última
vez.
statm Proporciona información, en páginas, sobre la situación
de memoria. Las columnas son:
size tamaño total del programa
resident tamaño del conjunto residente
share páginas compartidas
trs texto (código)
drs datos/pila
lrs biblioteca
dt páginas modificadas
status Proporciona gran parte de la información de stat y statm
en un formato que es mucho más fácil de leer para una
persona.
apm Proporciona información sobre la batería y la versión de APM
cuando se ha definido CONFIG_APM en el instante de compilación
del núcleo.
bus Contiene subdirectorios para los buses instalados.
pccard Subdirectorio para dispositivos PCMCIA cuando se ha
definido CONFIG_PCMCIA en el instante de compilación del
núcleo.
drivers
pci Contiene varios subdirectorios de buses y pseudoficheros
que contienen información sobre buses pci, dispositivos
instalados y manejadores (drivers) de dispositivo.
Algunos de estos ficheros no son ASCII.
devices
Información sobre dispositivos pci. Se puede
acceder a los mismos a través de lspci(8) y
setpci(8).
cmdline
Argumentos pasados al núcleo de Linux al arrancar. Normalmente
se hace a través de un gestor de arranque como lilo(1).
cpuinfo
Este es una colección de elementos dependientes de la CPU y de
la arquitectura del sistema. Para cada arquitectura soportada,
una lista diferente. Dos entradas comunes son processor que da
el número de CPU y bogomips, una constante del sistema que se
calcula durante el arranque del núcleo. Las máquinas SMP tienen
información para cada CPU.
devices
Lista de números mayores de dispositivo y grupos de
dispositivos. Esta puede ser usada por los guiones MAKEDEV para
consistencia con el núcleo.
dma Esta es una lista de los canales DMA (acceso directo a memoria)
ISA registrados en uso.
driver Subdirectorio vacío.
execdomains
Lista de dominios de ejecución (personalidades ABI).
fb Información sobre el frame buffer cuando se define CONFIG_FB
furante la compilación del núcleo.
filesystems
Lista de los sistemas de ficheros que fueron compilados dentro
del núcleo. Incidentalmente, mount(1) usa esto para circular a
través de diferentes sistemas de ficheros cuando no se
especifica ninguno.
fs Subdirectorio vacío.
ide ide existe en sistemas con bus ide. Hay directorios para cada
canal ide y dispositivo conectado. Los ficheros incluyen:
cache tamaño del buffer en KB
capacity número de sectores
driver versión del manejador
geometry geometría física y lógica
identify en hexadecimal
media tipo de medio
model número de modelo del fabricante
settings configuración de la unidad
smart_thresholds en hexadecimal
smart_values en hexadecimal
La utilidad hdparm(8) proporciona acceso a esta información en
un formato amigable.
interrupts
Éste es usado para registrar el número de interrupciones para
cada IRQ sobre (al menos) la arquitectura i386. El formato es
muy fácil de leer, realizado en ASCII.
iomem Mapa de memoria de E/S en Linux 2.4.
ioports
Ésta es una lista de las regiones de puertos de entrada/salida
actualmente registrados que están en uso.
kcore Este fichero representa la memoria física del sistema y su
formato es el de un fichero core ELF. Con este pseudofichero y
un binario del núcleo con información sobre símbolos
(/usr/src/linux/vmlinuz), se puede usar GDB para examinar el
estado actual de cualquier estrutura de datos del núcleo.
La longitud total de este fichero es el tamaño de la memoria
física (RAM) más 4KB.
kmsg Este fichero se puede usar en lugar de la llamada al sistema
syslog(2) para leer mensajes del núcleo. Un proceso debe tener
permisos de superusuario para leer este fichero y sólo un
proceso debe leer este fichero. Este fichero no se debe leer si
se está ejecutando un proceso syslog que usa la llamada al
sistema syslog(2) para registrar mensajes del núcleo.
A la información de este fichero se accede con el programa
dmesg(8).
ksyms Éste mantiene las difiniciones de símbolos exportados del núcleo
usadas por las herramientas de manejo de modulos(X) para enlazar
dinámicamente módulos.
loadavg
Los números de carga media dan el número promedio de trabajos en
la cola de ejecución (estado R) o en espera de E/S de disco
(estado D) en los últimos 1, 5 y 15 minutos. Estos números son
idénticos a los números de carga media dados por uptime(1) y
otros programas.
locks Este fichero muestra los bloqueos de fichero (flock(2) y
fcntl(2)) y arrendamientos (fcntl(2)) actuales.
malloc Este fichero sólo está presente si se definió CONFIGDEBUGMALLOC
durante la compilación.
meminfo
Éste es usado por free(1) para informar de la cantidad de
memoria libre y usada en el sistema (tanto física como de
intercambio) así como de la memoria compartida y los buffers
usados por el núcleo.
El formato es el mismo que el de free(1), salvo que los datos se
dan en bytes y no en KB.
modules
Lista de módulos que han sido cargados por el sistema. Véase
también lsmod(8).
mtrr Memory Type Range Registers. Vea
/usr/src/linux/Documentation/mtrr.txt para más detalles.
net directorio que contiene varios pseudoficheros, los cuales dan el
estado de algunas partes de la capa de red. Estos ficheros
contienen estructuras ASCII y, por tanto, se pueden leer con
cat. Sin embargo, la aplicación netstat(8) proporciona un acceso
mucho más claro a estos ficheros.
arp Este mantiene un vaciado ASCII legible de la tabla ARP
del núcleo usada para la resolución de direcciones.
Mostrará tanto las entradas ARP aprendidas dinámicamente
como las preprogramadas. El formato es:
IP address HW type Flags HW address Mask Device
192.168.0.50 0x1 0x2 00:50:BF:25:68:F3 * eth0
192.168.0.250 0x1 0xc 00:00:00:00:00:00 * eth0
Aquí ‘IP address’ es la dirección IPv4 de la máquina y ‘HW type’
es el tipo de hardware de la dirección según el RFC 826. ‘Flags’
son las banderas internas de la estructura ARP (tal y como se
definen en /usr/include/linux/if_arp.h) y ‘HW address’ es, si se
conoce, la dirección de la capa física asociada a la dirección
IP.
dev El pseudofichero dev contiene información de estado del
dispositivo de red. Da el número de paquetes recividos y
enviados, el número de errores y colisiones y otras
estadísticas básicas. Estas son usadas por el programa
ifconfig(8) para informar del estado del dispositivo. El
formato es:
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 2776770 11307 0 0 0 0 0 0 2776770 11307 0 0 0 0 0 0
eth0: 1215645 2751 0 0 0 0 0 0 1782404 4324 0 0 0 427 0 0
ppp0: 1622270 5552 1 0 0 0 0 0 354130 5669 0 0 0 0 0 0
tap0: 7714 81 0 0 0 0 0 0 7714 81 0 0 0 0 0 0
·
dev_mcast
Se define en /usr/src/linux/net/core/dev_mcast.c:
indx ifterface_name dmi_u dmi_g dmi_address
2 eth0 1 0 01005e000001
3 eth1 1 0 01005e000001
4 eth2 1 0 01005e000001
igmp Internet Group Management Protocol. Se define en
/usr/src/linux/net/core/igmp.c.
rarp Este fichero usa el mismo formato que el fichero arp y
contiene la actual base de datos de asociaciones inversas
usada para proporcionar los servicios de búsqueda de
direcciones inversas de Si RARP no está configurado
dentro del núcleo, este fichero no estará presente.
raw Contiene un vaciado de la tabla de conectores RAW. La
mayor parte de esta información no es útil salvo para
propósitos de depuración. El valor ‘sl’ es el número de
entrada hash del núcleo para el conector. ‘local address’
es la pareja formada por la dirección local y el número
de puerto. ‘St’ es el estado interno del conector.
‘tx_queue’ y ‘rx_queue’ son las colas de datos de entrada
y salida en términos de uso de memoria del núcleo. Los
campos ‘tr’, ‘tm->when’ y ‘rexmits’ no los usa RAW. El
campo ‘uid’ contiene el idenficador de usario efectivo
del creador del conector.
snmp Este fichero contiene los datos ASCII que necesitan las
Bases de Información para Administración de IP, ICMP, TCP
y UDP para un agente SNMP.
tcp Contiene un vaciado de la tabla de conectores TCP. La
mayor parte de esta información no es útil salvo para
propósitos de depuración. El valor ‘sl’ es el número de
la ranura hash del núcleo para el conector. ‘local
address’ es la pareja formada por la dirección local y el
número de puerto. ‘remote address’ es la pareja formada
por la dirección remota y el número de puerto (si hay
conexión). ‘St’ es el estado interno del conector.
‘tx_queue’ y ‘rx_queue’ son las colas de datos de entrada
y salida en términos de uso de memoria del núcleo. Los
campos ‘tr’, ‘tm->when’ y ‘rexmits’ contienen información
del núcleo del estado del conector y sólo son útiles para
depuración. El campo ‘uid’ contiene el idenficador de
usario efectivo del creador del conector.
udp Contiene un vaciado de la tabla de conectores UDP. La
mayor parte de esta información no es útil salvo para
propósitos de depuración. El valor ‘sl’ es el número de
la entrada hash del núcleo para el conector. ‘local
address’ es la pareja formada por la dirección local y el
número de puerto. ‘remote address’ es la pareja formada
por la dirección remota y el número de puerto (si hay
conexión). ‘St’ es el estado interno del conector.
‘tx_queue’ y ‘rx_queue’ son las colas de datos de entrada
y salida en términos de uso de memoria del núcleo. Los
campos ‘tr’, ‘tm->when’ y ‘rexmits’ no son usados por
UDP. El campo ‘uid’ contiene el idenficador de usario
efectivo del creador del conector. El formato es:
sl local_address rem_address st tx_queue rx_queue tr rexmits tm->when uid
1: 01642C89:0201 0C642C89:03FF 01 00000000:00000001 01:000071BA 00000000 0
1: 00000000:0801 00000000:0000 0A 00000000:00000000 00:00000000 6F000100 0
1: 00000000:0201 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0
unix Lista de conectores de dominio UNIX presentes dentro del
sistena y el estado de cada uno de ellos. El formato es:
Num RefCount Protocol Flags Type St Path
0: 00000002 00000000 00000000 0001 03
1: 00000001 00000000 00010000 0001 01 /dev/printer
Aquí ‘Num’ es el número de entrada en la tabla del núcleo,
‘RefCount’ es el número de usuarios del conector, ‘Protocol’ es,
actualmente, siempre 0, ‘Flags’ representa las banderas internas
del núcleo que contienen el estado del conector. Actualmente,
‘Type’ es siempre 1 (los conectores de dominio UNIX del tipo
datagrama todavía no están soportados en el núcleo). ‘St’ es el
estado interno del conector y ‘Path’ es, si existe, la ruta
asociada del conector.
partitions
Contains major and minor numbers of each partition as well as
number of blocks and partition name.
pci Es una lista de todos los dispositivos PCI encontrados durante
la inicialización del núcleo y sus configuraciones respectivas.
scsi Directorio con pseudoficheros SCSI de nivel medio y varios
directorios de manejadores (drivers) SCSI de bajo nivel, que
contienen un fichero para cada host SCSI presente en el sistema,
cada uno de los cuales da el estado de alguna parte del
subsystema de E/S SCSI. Estos ficheros contienen estructuras
ASCII y, por tanto, son legibles con cat.
También se puede escribir en algunos de estos ficheros para
reconfigurar el subsistema o para activar y desactivar ciertas
características.
scsi Esta es una lista de todos los dispositivos SCSI
conocidos por el núcleo. La lista es similar a la que se
ve durante el arranque. Actualmente, scsi únicamente
soporta la orden add-single-device que permite al
superusuario añadir a la lista de dispositivos conocidos
un dispositivo conectado "en caliente".
echo ‘scsi add-single-device 1 0 5 0‘ > /proc/scsi/scsi
hará que el host scsi1 explore el canal SCSI 0 en busca
de un dispositivo en la dirección ID 5 LUN 0. Si ya hay
un dispositivo conocido en esa dirección o si la
dirección es inválida, se devolverá un error.
drivername
Actualmente, drivername puede ser NCR53c7xx, aha152x,
aha1542, aha1740, aic7xxx, buslogic, eata_dma, eata_pio,
fdomain, in2000, pas16, qlogic, scsi_debug, seagate,
t128, u15-24f, ultrastore o wd7000. Estos directorios
presentan todos los manejadores que registraron al menos
un HBA SCSI. Cada directorio contiene un fichero por host
registrado. Cada fichero host tiene como nombre el número
que el host obtuvo durante la inicialización.
La lectura de estos ficheros mostrará normalmente la
configuración del manejador y el host, estadísticas, etc.
La escritura en estos ficheros permite diferentes cosas
sobre diferentes hosts. Por ejemplo, con las órdenes
latency y nolatency, el superusuario puede activar y
desactivar en el manejador eata_dma el código para la
medición de la latencia de las órdenes. Con las órdenes
lockup y unlock, el superusuario puede controlar las
búsquedas de bus simuladas por el manejador scsi_debug.
self Este directorio hace referencia al proceso que está accediendo
al sistema de ficheros /proc y es idéntico al directorio de
/proc cuyo nombre es el PID del mismo proceso.
slabinfo
Información sobre las memorias cachés del núcleo. Las columnas
son:
cache-name
num-active-objs
total-objs
object-size
num-active-slabs
total-slabs
num-pages-per-slab
Vea slabinfo(5) para más detalles.
stat Estadísticas del núcleo/sistema. Varían con la arquitectura.
Entradas comunes son:
cpu 3357 0 4313 1362393
El número de jiffies (centésimas de segundo) que el
sistema gastó en modo usuario, modo usuario con baja
prioridad (nice), modo supervisor y en la tarea ‘idle’,
respectivamente. El último valor debe ser 100 veces la
segunda entrada del pseudofichero uptime.
page 5741 1808
El número de páginas que el sistema cargó y el número de
páginas que fueron descargadas (desde disco).
swap 1 0
El número de páginas de intercambio que han sido
introducidas y sacadas.
intr 1462898
El número de interrupciones recibidas desde el arranque
del sistema.
disk_io: (2,0):(31,30,5764,1,2) (3,0):...
(mayor,menor):(noinfo, ops_lectura, bloqs_leídos,
ops_escritura, bloqs_escritos)
ctxt 115315
El número de cambios de contexto que el sistema ha
sufrido.
btime 769041601
Instante de arranque, en segundos desde el 1 de Enero de
1970
processes 86031
Número de llamadas al sistema ‘fork’ desde el arranque.
swaps Áreas de intercambio en uso. Véase también swapon(8).
sys Este directorio (presente desde la versión 1.3.57) contiene
varios ficheros y subdirectorios correspondientes a variables
del núcleo. Estas variables se pueden leer y algunas veces
modificar usando el sistema de ficheros proc y la llamada al
sistema sysctl(2). Actualmente, existen los subdirectorios abi,
debug, dev, fs, kernel, net, proc, rxrpc, sunrpc y vm
que contienen a su vez más ficheros y subdirectorios.
abi Este directorio puede contener ficheros con datos ABI
(‘application binary information‘). No existe en algunos
sistemas.
debug Este directorio puede estar vacío.
dev Este directorio contiene información específica de
dispositivos (por ejemplo, dev/cdrom/info). En algunos
sistemas puede estar vacío.
fs Éste contiene el subdirectorio binfmt_misc y los ficheros
dentry-state, dir-notify-enable, dquot-nr, file-max,
file-nr, inode-max, inode-nr, inode-state, lease-break-
time, leases-enable, overflowgid, overflowuid super-max y
super-nr, cuya función se deduce cláramente a partir del
nombre.
Se puede encontrar documentación para los ficheros de
/proc/sys/binfmt_misc en el fichero
Documentation/binfmt_misc.txt de los fuentes del núcleo.
El fichero dentry-state contiene seis números, nr_dentry,
nr_unused, age_limit (edad en segundos), want_pages (páginas
solicitadas por el sistema) y dos valores ‘‘tontos’’. nr_dentry
parece ser 0 todo el tiempo. nr_unused seems parece ser el
número de dentries sin usar. age_limit es la edad en segundos
tras la cual se puede reclamar una entrada dentry cuando hay
poca memoria y want_pages no es cero después de que el núcleo
haya llamado a shrink_dcache_pages() y no se haya reducido
todavía el tamaño de la dcache.
El fichero dir-notify-enable se puede usar para activar o
desactivar en todo el sistema la interfaz dnotify descrita en
fcntl(2). Un valor 0 en este fichero desactiva la interfaz y un
valor 1 la activa.
El fichero dquot-max muestra el número máximo de entradas de
cuota de disco en la caché correspondiente. Este fichero no
existe en algunos sistemas (2.4). Si el número de entradas
libres en la caché de cuotas de disco es muy pequeño y el número
de usuarios simultáneos que tiene es muy grande, tal vez quiera
subir este límite.
El fichero dquot-nr el número de entradas de cuota de disco
asignadas y el número de entradas libres.
El fichero file-max es un límite global del sistema sobre el
número de ficheros abiertos por todos los procesos. (Véase
también setrlimit(2), que un proceso puede usar para establecer
el límite por proceso, RLIMIT_NOFILE, del número de ficheros que
se pueden abrir.) Si obtiene un montón de mensajes de error que
indican que se ha quedado sin manejadores de fichero, intente
incrementar este valor:
echo 100000 > /proc/sys/fs/file-max
La constante del núcleo NR_OPEN impone un límite superior sobre
el valor que se puede colar en file-max.
Sin incrementa file-max, asegúrese de incrementar inode-max a
3-4 veces el nuevo valor de file-max, o se quedará sin nodos-i.
El fichero (de sólo lectura) file-nr proporciona el número de
ficheros abiertos en este momento. Contiene tres números: el
número de manejadores de fichero asignados, el número de
manejadores de fichero libres y el número máximo de manejadores
de fichero. El núcleo reserva manejadores de fichero
dinámicamente, pero no los libera otra vez. Si el número de
ficheros asignados está cercano al máximo, debería considerar el
incrementar dicho máximo. Cuando el número de manejadores de
fichero libres es grande, ha encontrado un pico en su uso de
manejadores de fichero y probablemente no necesite incrementar
el máximo.
El fichero inode-max contiene el número máximo de nodos-i en
memoria. Este fichero podría no existir en algunos sistemas
(2.4). Este valor debería ser 3-4 veces más grande que el valor
de file-max, ya que stdin, stdout y los conectores de red
también necesitan un nodo-i para poder manejarlos. Si se queda
sin nodos-i con frecuencia, necesitará incremetar este valor.
El fichero inode-nr contiene contiene los dos primeros valores
de inode-state.
El fichero inode-state contiene siete números: nr_inodes,
nr_free_inodes, preshrink y cuatro valores sin utilidad.
nr_inodes es el número de nodos-i que el sistema ha asignado.
Este número puede ser ligeramente mayor que inode-max ya que
Linux reserva nodos-i usando páginas enteras. nr_free_inodes
representa el número de nodos-i libres. preshrink es distinto de
cero cuando nr_inodes > inode-max y el sistema necesita recortar
la lista de nodos-i en lugar de reservar más.
El fichero lease-break-time especifica el periodo de gracia que
el núcleo concede a un proceso que posee un arrendamiento de
fichero (fcntl(2)) después de que le haya enviado una señal a
ese proceso notificándole que otro proceso está esperando para
abrir el fichero. Si el arrendatario no elimina o reduce la
categoría del arrendamiento dentro del periodo de gracia, el
núcleo elimina el arrendamiento por la fuerza.
El fichero leases-enable se puede usar para activar o desactivar
los arrendamientos de ficheros (fcntl(2)) de forma global. Si
este fichero contiene el valor 0, los arrendamientos están
desactivados. Si el valor es distinto de 0, los arrendamientos
están permitidos.
Los ficheros overflowgid y overflowuid le permiten cambiar el
valor del UID y GID fijos. El valor por omisión es 65534.
Algunos sistemas de ficheros sólo permiten UIDs y GIDs de 16
bits, aunque en Linux los UIDs y GIDs son de 32 bits. Cuando uno
de estos sistemas de ficheros está montado con escrituras
permitidas, cualquier UID y GID que excediera 65535 se
traduciría al valor de desbordamiento antes de ser escrito en
disco.
El fichero super-max controla el número máximo de superbloques
y, por tanto, el número máximo de sistemas de ficheros montados
que puede tener el núcleo. Sólo necesita incrementar super-max
si necesita montar más sistemas de ficheros que el valor actual
de super-max le permite. El fichero super-nr contiene el número
de sistemas de ficheros montados actualmente.
kernel Este directorio contiene los ficheros acct, cad_pid, cap-
bound, core_uses_pid, ctrl-alt-del, dentry-state,
domainname, hostname, htab-reclaim (sólo en PowerPC),
java-appletviewer (binfmt_java, obsoleto), java-
interpreter (binfmt_java, obsoleto), l2cr (sólo en
PowerPC), modprobe, msgmax, msgmnb, msgmni, osrelease,
ostype, overflowgid, overflowuid, panic, powersave-nap
(sólo en PowerPC), printk, random, real-root-dev, reboot-
cmd (són en SPARC), rtsig-max, rtsig-nr, sem, sg-big-
buff, shmall, shmmax, shmmni, sysrq, tainted, threads-
max, version y zero-paged (sólo en PowerPC) cuya función
está bastante clara a partir del nombre.
El fichero acct contiene tres números: highwater, lowwater y
frequency. Si está activa la contabilidad de procesos al estido
de BSD, estos valores controlan su comportamiento. Si el espacio
libre en el sistema de ficheros donde se encuentra el registro
cae por debajo del porcentaje ‘lowwater’, la contabilidad se
suspende. Si el espacio libre supera el porcentaje ‘highwater’,
la contabilidad se reanuda. ‘Frequency’ determina la frecuencia
con la que el núcleo comprueba la cantidad de espacio libre (el
valor está en segundos). Los valores por omisión son 4, 2 y 30.
Esto es, suspende la contabilidad si el espacio libre es igual o
inferior al 2%; reanúdala si el espacio libre es igual o
superior al 4%; considera válida la información sobre el espacio
libre durante 30 segundos.
El fichero cap-bound contiene el valor del conjunto de
capacidades limitantes del núcleo. (expresado como un entero
decimal con signo). Durante un exec, se hace un Y-lógico entre
este conjunto y la capacidades permitidas al proceso.
El fichero core_uses_pid se puede usar en Linux 2.4 para
controlar la forma de dar nombre a un fichero de vaciado de
memoria (‘‘core dump’’). Si este fichero contiene el valor 0, el
fichero simplemente se llama core. Si el valor es distinto de
cero, el fichero de vaciado de memoria incluye el ID del proceso
en un nombre de la forma core.PID.
El fichero ctrl-alt-del controla la gestión de la combinación
Ctrl-Alt-Del del teclado. Cuando el valor de este fichero es 0,
se captura Ctrl-Alt-Del y se envía al programa init(1) para
tratar un reinicio elegante. Cuando este valor es > 0, la
reacción de Linux a un ‘‘Vulcan Nerve Pinch’’ (tm) (N.T.: frase
con la que también se conoce al saludo de los tres dedos) será
un reinicio inmediato, sin ni siquiera escribir en disco los
buffers modificados. Nota: cuando un programa (como dosemu)
tiene el teclado en modo ‘crudo’, el programa interpreta ctrl-
alt-del antes de que la combinación de teclas alcance la capa
tty del núcleo y es asunto del programa decidir qué hacer con
ella.
Los ficheros domainname y hostname se pueden usar para
establecer el nombre de dominio NIS/YP y el nombre de host de su
ordenador exactamente de la misma forma que las órdenes
domainname y hostname, es decir:
# echo "darkstar" > /proc/sys/kernel/hostname
# echo "mydomain" > /proc/sys/kernel/domainname
tienen el mismo efecto que
# hostname "darkstar"
# domainname "mydomain"
Observe, sin embargo, que el clásico darkstar.frop.org tiene el
nombre de host ‘‘darkstart’’ y el nombre de dominio DNS
(Internet Domain Name Server) ‘‘frop.org’’, que no se debe
confundir con el nombre de dominio NIS (Network Information
Service) o YP (Yellow Pages). En general, estos dos nombres de
dominio son diferentes. Para una discusión más detallada, vea la
página de manual hostname(1).
Si al fichero htab-reclaim (sólo en PowerPC) se le asigna un
valor distinto de cero, el PowerPC htab (vea el fichero del
núcleo Documentation/powerpc/ppc_htab.txt) se reduce cada vez
que el sistema alcanza el bucle ocioso.
El fichero l2cr (sólo en PowerPC) contiene una bandera que
controla la caché L2 de las placas base de los procesadores G3.
Si contiene 0, la caché se desactiva. Una valor distinto de cero
la activa.
El fichero modprobe se describe en el fichero
Documentation/kmod.txt de los fuentes del núcleo.
El fichero msgmax es un límite global del sistema que especifica
el número máximo de bytes de un único mensaje escrito en una
cola de mensajes System V.
El fichero msgmni define el límite global del sistema para el
número de identificadores de colas de mensajes. (Este fichero
sólo existe en Linux 2.4 y posteriores.)
El fichero msgmnb es un parámetro global del sistema que se usa
para inicializar el valor msg_qbytes para las colas de mensajes
creadas posteriormente. El valor de configuración msg_qbytes
especifica el número máximo de bytes que se pueden escribir en
una cola de mensajes.
Los ficheros ostype y osrelease dan subcadenas de /proc/version.
Los ficheros overflowgid y overflowuid duplican los ficheros
/proc/sys/fs/overflowgid y /proc/sys/fs/overflowuid.
El fichero panic da los accesos de lectura/escritura sobre la
variable del núcleo panic_timeout. Si esto es 0, el núcleo
entrará en un bucle infinito ante una situación de pánico; si no
es cero, indica que el núcleo debe autoreinicializarse después
de ese número de segundos. Cuando usa el manejador del
dispositivo guardián software, el valor recomendado es 60.
El fichero powersave-nap (sólo en PowerPC) contiene una bandera.
Si está activa, Linux-PPC usará el modo ‘nap’ de ahorro de
energía, en caso contrario usará el modo ‘doze’.
Los cuatro valores del fichero printk son console_loglevel,
default_message_loglevel, minimum_console_level y
default_console_loglevel. Estos valores influyen en el
comportamiento de printk() cuando se muestran o guardan en
registro mensajes de error. Vea syslog(2) para obtener más
información sobre los diferentes ‘loglevels’ (niveles de
registro). Los mensajes con una prioridad mayor que
console_loglevel se mostrarán en la consola. Los mensajes sin
una prioridad explícita se mostrará con prioridad
default_message_level. minimum_console_loglevel es el valor
mínimo (el más alto) que se puede asignar a console_loglevel.
default_console_loglevel es el valor por omisión para
console_loglevel.
El directorio random contiene varios parámetros que controlan el
funcionamiento del fichero /dev/random.
El fichero real-root-dev se documenta en el fichero
Documentation/initrd.txt de los fuentes del núcleo.
El fichero reboot-cmd (sólo en Sparc) parece ser una forma de
proporcionar un argumento al cargador de arranque de la
ROM/Flash de la SPARC. ¿Quizás para decirle qué hacer tras
rearrancar?.
El fichero rtsig-max se puede usar para ajustar el número máximo
de señales (encoladas) POSIX de tiempo real que pueden estar
pendientes en el sistema.
El fichero rtsig-nr muestra el número de señales POSIX de tiempo
real que hay encoladas actualmente.
El fichero sem (disponible desde la versión 2.4 de Linux)
contiene 4 números que definen límites para los semáforos IPC de
System V. Estos campos son, en orden:
SEMMSL Número máximo de semáforos por conjunto de semáforos.
SEMMNS Límite global del sistema para el número de semáforos en
todos los conjuntos de semáforos.
SEMOPM Número máximo de operaciones que se pueden especificar
en una llamada semop(2).
SEMMNI Límite global del sistema para el número máximo de
identificadores de semáforo.
El fichero sg-big-buff muestra el tamaño del buffer del
dispositivo SCSI genérico (sg). Todavía no puede ajustarlo,
pero puede cambiarlo al compilar editando include/scsi/sg.h y
cambiando el valor de SG_BIG_BUFF. No obstante, no debería
existir ninguna razón para cambiar este valor.
El fichero shmall contiene un límite global del sistema para el
número total de páginas de memoria compartida System V.
El fichero shmmax se puede usar para consultar y establecer el
límite en tiempo de ejecución del tamaño máximo de segmento (IPC
de System V) de memoria compartida que se puede crear.
Actualmente, se permiten en el núcleo segmentos de memoria
compartida de hasta 1 Gb. El valor por omisión de este valor es
SHMMAX.
El fichero shmmni (disponible desde la versión 2.4 de Linux)
especifica el número máximo de segmentos de memoria compartida
System V que se pueden crear en todo el sistema.
El fichero version contiene una cadena como:
#5 Wed Feb 25 21:49:24 MET 1998.TP
El ‘#5’ significa que ésta es la quinta compilación del núcleo a
partir de esta base de los fuentes y la fecha que hay detrás
indica el instante en el que se construyó el núcleo.
El fichero zero-paged (sólo en PowerPC) contiene una bandera.
Cuando está activa (valor distinto de cero), Linux-PPC se
decicará a rellenar páginas con ceros en el bucle ocioso,
posiblemente acelerando la ejecución de get_free_pages.
net Este directorio contiene cosas de redes.
proc Este directorio puede estar vacío.
sunrpc Este directorio da soporte a las llamadas a
procedimientos remotos de Sun para sistemas de ficheros
de red (NFS). Este fichero podría no existir en algunos
sistemas.
vm Este directorio contiene ficheros para el ajuste de la
gestión de memoria y la gestión de buffers y cachés.
sysvipc
Subdirectorio que contiene los pseudoficheros msg, sem y shm.
Estos ficheros listan los objetos IPC (Interprocess
Communication) de System V (respectivamente: colas de mensajes,
semáforos y memoria compartida) que actualmente existen en el
sistema, proporcionando información similar a aquella disponible
a través de ipcs(1). Estos ficheros poseen encabezados y se
formatean (mostrando un objeto IPC por línea) para una mejor
interpretación. ipc(5) proporciona datos adicionales sobre la
información mostrada por estos ficheros.
tty Subdirectorio que contiene pseudoficheros y subdirectorios para
los manejadores (drivers) tty y las disciplinas de líneas.
uptime Este fichero contien dos números: los segundos que el sistema
lleva funcionando y los segundos gastados en el proceso ‘idle’.
version
Esta cadena identifica la versión del núcleo que se está
ejecutando actualmente. Incluye el contenido de
/proc/sys/ostype, /proc/sys/osrelease y /proc/sys/version. Por
ejemplo:
Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994
VÉASE TAMBIÉN
cat(1), find(1), free(1), mount(1), ps(1), tr(1), uptime(1), chroot(2),
mmap(2), readlink(2), syslog(2), slabinfo(5), hier(7), arp(8),
dmesg(8), hdparm(8), ifconfig(8), lsmod(8), lspci(8), netstat(8),
procinfo(8), route(8) /usr/src/linux/Documentation/filesystems/proc.txt
CONFORME A
Esto conforma aproximadamente con el núcleo 2.4.17 de Linux. Por favor,
actualice esto cuando sea necesario.
Ultima actualización para la versión 2.4.17 de Linux.
ATENCIÓN
Observe que muchas cadenas (por ejemplo, el entorno y la línea de
ordenes) están en formato interno, con los subcampos terminados por
bytes NUL, por lo que puede encontrar que las cosas son más legibles si
usa od -c o tr "\000" "\n" para leerlas. Alternativamente, también
funciona bien echo cat <file>.
Esta página de manual está incompleta, posiblemente inexacta y es el
tipo de cosas que necesitan ser actualizadas con mucha frecuencia.
RECONOCIMIENTOS
El material sobre /proc/sys/fs y /proc/sys/kernel se basa en gran
medida en los ficheros de documentación de los fuentes del núcleo
escritos por Rik van Riel.
13 julio 2002 PROC(5)