Provided by:
manpages-es_1.55-10_all 
NOMBRE
proc - pseudo-sistema de ficheros de informacion de procesos
DESCRIPCI'ON
/proc es un pseudo-sistema de ficheros que se usa como interfaz para
las estructuras de datos del nucleo en lugar de leer e interpretar
/dev/kmem. La mayor parte de este sistema de ficheros es de solo
lectura, pero algunos ficheros permiten cambiar variables del nucleo.
El siguiente resumen proporciona una rapida visita a la jerarquia
/proc.
[n'umero]
Hay un subdirectorio numerico para cada proceso en ejecucion; el
nombre del subdirectorio es el ID del proceso. Cada uno de ellos
contiene los siguientes pseudo ficheros y directorios.
cmdline
Este contiene la linea de ordenes 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 ultimos casos,
no hay nada en el fichero, es decir, una lectura sobre
este fichero devolvera 0 caracteres. Los argumentos de la
linea de ordenes aparecen en este fichero como un
conjunto de cadenas separadas por nulos, con un byte nulo
adicional tras la ultima cadena.
cwd Este 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 podria no funcionar adecuadamente.
En bash, debe usar pwd -P.
environ
Este fichero contiene el entorno del proceso. Las
entradas estan serparadas por caracteres nulos, y podria
haber un caracter nulo al final. Por tanto, para mostrar
el entorno del proceso 1, deberia hacer:
(cat /proc/1/environ; echo) | tr "\000" "\n"
(Una razon por la que alguien querria hacer esto, la
puede encontrar en lilo(8).)
exe En la versiones 2.2 y 2.4 de Linux exe es un enlace
simbolico que contiene el nombre de la ruta actual de la
orden ejecutada. El enlace simbolico exe se puede
resolver de forma normal - el intentar abrir exe abrira
el ejecutable. Incluso puede teclear /proc/[number]/exe
para ejecutar otra copia del mismo proceso [numero].
En Linux 2.0 y versiones anteriores exe es un puntero al
fichero binario que fue ejecutado y aparece como un
enlace simbolico. Una llamada readlink(2) aplicada al
fichero especial "exe" devuelve una cadena con el
formato:
[dispositivo]:nodo-i
Por ejemplo, [0301]:1502 seria el nodo-i 1502 sobre el
dispositivo con numero mayor 03 (discos IDE, MFM, etc.) y
numero menor 01 (primera particion del primer disco.
find(1) con la opcion -inum se puede usar para buscar el
fichero.
fd Este 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
simbolico al fichero real (como lo es la entrada exe).
Por tanto, 0 es la entrada estandar, 1 es la salida
estandar, 2 es la salida estandar de error, etc.
Los programas que no leen de la entrada estandar, sino
que leen de un fichero, y que no escriben en la salida
estandar, sino que escriben en un fichero, pueden ser
enganados de la siguiente manera, suponiendo que -i es la
opcion que designa al fichero de entrada y -o la opcion
que designa al fichero de salida:
foobar -i /proc/self/fd/0 -o /proc/self/fd/1
y de esta manera su programa funcionara como filtro.
Note que esto no funcionara 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 mayoria de los guiones shell MAKEDEV de Linux
enlazan simbolicamente /proc/self/fd con /dev/fd.
maps Fichero que contiene las regiones de memoria actualmente
asociadas y sus permisos de acceso.
El formato es:
Direccion 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 direccion 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 region de memoria, como ocurriria con la
region bss del proceso.
En Linux 2.0 no existe un campo que de el nombre de la
ruta.
mem A traves del fichreo mem se puede acceder a las paginas
de la memoria de un proceso mediante open(2), read(2) y
fseek(3).
root Unix y Linux soportan la idea de una raiz del sistema de
ficheros por proceso, asignada por la llamada al sistema
chroot(2). Root apunta a la raiz del sistema de ficheros
y se comporta como lo hacen exe, fd/*, etc.
stat Informacion de estado del proceso. Esta 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 parentesis.
Este es visible dependiendo de si el ejecutable ha
sido o no intercambiado.
state %c
Un caracter de la cadena "RSDZTW" donde R
significa en ejecucion, S bloqueado de forma
interrumpible, D bloqueado de forma ininterrupible
en una espera de disco, Z zombie, T proceso en
ejecucion paso a paso o parado (en una senal) y W
transfiriendo paginas.
ppid %d
El PID del padre.
pgrp %d
El identificador del grupo de procesos del
proceso.
session %d
El identificador de sesion 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
esta 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 numero de fallos de pagina menores producidos
por el proceso que no han necesitado la carga de
una pagina de memoria desde disco.
cminflt %lu
El numero de fallos de pagina menores producidos
por el proceso y sus hijos.
majflt %lu
El numero de fallos de pagina mayores producidos
por el proceso que han necesitado la carga de una
pagina de memoria desde disco.
cmajflt %lu
El numero de fallos de pagina mayores producidos
por el proceso y sus hijos.
utime %ld
El numero de jiffies que este proceso se ha
planificado en modo usario.
stime %ld
El numero de jiffies que este proceso se ha
planificado en modo nucleo.
cutime %ld
El numero de jiffies que este proceso y sus hijos
se han planificado en modo usuario.
cstime %ld
El numero de jiffies que este proceso y sus hijos
se han planificado en modo nucleo.
priority %ld
El valor ``nice'' estandar, mas 15. El valor nunca
es negativo dentro del nucleo.
nice %ld
El valor ``nice'', que va desde 19 (el mas
generoso) hasta -19 (el mas codicioso).
0 %ld Este valor se fija a 0 en el propio codigo y
representa el lugar que ocupaba de un campo
eliminado.
itrealvalue %u
El tiempo en jiffies antes de que la siguiente
senal SIGALRM sea enviada al proceso.
starttime %lu
Tiempo en jiffies desde el arranque del sistema
hasta el inicio de la ejecucion del proceso.
vsize %lu
Tamano de la memoria virtual en bytes.
rss %ld
Tamano del conjunto residente (RSS): numero de
paginas que el proceso tiene en memoria real,
menos 3 (para propositos administrativos). Dicho
conjunto esta formado por las paginas que componen
actualmente el espacio de codigo, datos y pila. No
incluye aquellas paginas que no se han cargado
bajo demanda o que se han intercambiado a disco.
rlim %lu
Limite actual, en bytes, del RSS del proceso
(normalmente, 4294967295 en i386).
startcode %lu
Direccion por encima de la cual se puede ejecutar
el codigo del programa.
endcode %lu
Direccion por debajo de la cual se puede ejecutar
el codigo del programa.
startstack %lu
Direccion de comienzo de la pila.
kstkesp %lu
El valor actual del registro ESP (puntero de
pila), tal como se encuentra en la pagina de pila
del proceso.
kstkeip %lu
Valor actual del EIP (puntero de instruccion).
signal %lu
Mapa de bits de senales pendientes (normalmente
0).
blocked %lu
Mapa de bits de senales bloqueadas (normalmente 0,
2 para los shells).
sigignore %lu
Mapa de bits de senales ignoradas.
sigcatch %lu
Mapa de bits de senales capturadas.
wchan %lu
Este es el ``canal'' en el que esta esperando el
proceso. Es la direccion 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 accion.)
nswap %lu
Numero de paginas intercambiadas - no guardadas.
cnswap %lu
nswap acumulativo para los procesos hijos.
exit_signal %d
Senal a enviar al padre cuando muramos.
processor %d
Numero de CPU en la que se ejecuto por ultima vez.
statm Proporciona informacion, en paginas, sobre la situacion
de memoria. Las columnas son:
size tamano total del programa
resident tamano del conjunto residente
share paginas compartidas
trs texto (codigo)
drs datos/pila
lrs biblioteca
dt paginas modificadas
status Proporciona gran parte de la informacion de stat y statm
en un formato que es mucho mas facil de leer para una
persona.
apm Proporciona informacion sobre la bateria y la version de APM
cuando se ha definido CONFIG_APM en el instante de compilacion
del nucleo.
bus Contiene subdirectorios para los buses instalados.
pccard Subdirectorio para dispositivos PCMCIA cuando se ha
definido CONFIG_PCMCIA en el instante de compilacion del
nucleo.
drivers
pci Contiene varios subdirectorios de buses y pseudoficheros
que contienen informacion sobre buses pci, dispositivos
instalados y manejadores (drivers) de dispositivo.
Algunos de estos ficheros no son ASCII.
devices
Informacion sobre dispositivos pci. Se puede
acceder a los mismos a traves de lspci(8) y
setpci(8).
cmdline
Argumentos pasados al nucleo de Linux al arrancar. Normalmente
se hace a traves de un gestor de arranque como lilo(1).
cpuinfo
Este es una coleccion 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 numero de CPU y bogomips, una constante del sistema que se
calcula durante el arranque del nucleo. Las maquinas SMP tienen
informacion para cada CPU.
devices
Lista de numeros mayores de dispositivo y grupos de
dispositivos. Esta puede ser usada por los guiones MAKEDEV para
consistencia con el nucleo.
dma Esta es una lista de los canales DMA (acceso directo a memoria)
ISA registrados en uso.
driver Subdirectorio vacio.
execdomains
Lista de dominios de ejecucion (personalidades ABI).
fb Informacion sobre el frame buffer cuando se define CONFIG_FB
furante la compilacion del nucleo.
filesystems
Lista de los sistemas de ficheros que fueron compilados dentro
del nucleo. Incidentalmente, mount(1) usa esto para circular a
traves de diferentes sistemas de ficheros cuando no se
especifica ninguno.
fs Subdirectorio vacio.
ide ide existe en sistemas con bus ide. Hay directorios para cada
canal ide y dispositivo conectado. Los ficheros incluyen:
cache tamano del buffer en KB
capacity numero de sectores
driver version del manejador
geometry geometria fisica y logica
identify en hexadecimal
media tipo de medio
model numero de modelo del fabricante
settings configuracion de la unidad
smart_thresholds en hexadecimal
smart_values en hexadecimal
La utilidad hdparm(8) proporciona acceso a esta informacion en
un formato amigable.
interrupts
Este es usado para registrar el numero de interrupciones para
cada IRQ sobre (al menos) la arquitectura i386. El formato es
muy facil de leer, realizado en ASCII.
iomem Mapa de memoria de E/S en Linux 2.4.
ioports
Esta es una lista de las regiones de puertos de entrada/salida
actualmente registrados que estan en uso.
kcore Este fichero representa la memoria fisica del sistema y su
formato es el de un fichero core ELF. Con este pseudofichero y
un binario del nucleo con informacion sobre simbolos
(/usr/src/linux/vmlinuz), se puede usar GDB para examinar el
estado actual de cualquier estrutura de datos del nucleo.
La longitud total de este fichero es el tamano de la memoria
fisica (RAM) mas 4KB.
kmsg Este fichero se puede usar en lugar de la llamada al sistema
syslog(2) para leer mensajes del nucleo. Un proceso debe tener
permisos de superusuario para leer este fichero y solo un
proceso debe leer este fichero. Este fichero no se debe leer si
se esta ejecutando un proceso syslog que usa la llamada al
sistema syslog(2) para registrar mensajes del nucleo.
A la informacion de este fichero se accede con el programa
dmesg(8).
ksyms Este mantiene las difiniciones de simbolos exportados del nucleo
usadas por las herramientas de manejo de modulos(X) para enlazar
dinamicamente modulos.
loadavg
Los numeros de carga media dan el numero promedio de trabajos en
la cola de ejecucion (estado R) o en espera de E/S de disco
(estado D) en los ultimos 1, 5 y 15 minutos. Estos numeros son
identicos a los numeros 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 solo esta presente si se definio CONFIGDEBUGMALLOC
durante la compilacion.
meminfo
Este es usado por free(1) para informar de la cantidad de
memoria libre y usada en el sistema (tanto fisica como de
intercambio) asi como de la memoria compartida y los buffers
usados por el nucleo.
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 modulos que han sido cargados por el sistema. Vease
tambien lsmod(8).
mtrr Memory Type Range Registers. Vea
/usr/src/linux/Documentation/mtrr.txt para mas 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 aplicacion netstat(8) proporciona un acceso
mucho mas claro a estos ficheros.
arp Este mantiene un vaciado ASCII legible de la tabla ARP
del nucleo usada para la resolucion de direcciones.
Mostrara tanto las entradas ARP aprendidas dinamicamente
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
Aqui `IP address' es la direccion IPv4 de la maquina y `HW type'
es el tipo de hardware de la direccion segun 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 direccion de la capa fisica asociada a la direccion
IP.
dev El pseudofichero dev contiene informacion de estado del
dispositivo de red. Da el numero de paquetes recividos y
enviados, el numero de errores y colisiones y otras
estadisticas basicas. 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 busqueda de
direcciones inversas de Si RARP no esta configurado
dentro del nucleo, este fichero no estara presente.
raw Contiene un vaciado de la tabla de conectores RAW. La
mayor parte de esta informacion no es util salvo para
propositos de depuracion. El valor `sl' es el numero de
entrada hash del nucleo para el conector. `local address'
es la pareja formada por la direccion local y el numero
de puerto. `St' es el estado interno del conector.
`tx_queue' y `rx_queue' son las colas de datos de entrada
y salida en terminos de uso de memoria del nucleo. 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 Informacion para Administracion 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 informacion no es util salvo para
propositos de depuracion. El valor `sl' es el numero de
la ranura hash del nucleo para el conector. `local
address' es la pareja formada por la direccion local y el
numero de puerto. `remote address' es la pareja formada
por la direccion remota y el numero de puerto (si hay
conexion). `St' es el estado interno del conector.
`tx_queue' y `rx_queue' son las colas de datos de entrada
y salida en terminos de uso de memoria del nucleo. Los
campos `tr', `tm->when' y `rexmits' contienen informacion
del nucleo del estado del conector y solo son utiles para
depuracion. 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 informacion no es util salvo para
propositos de depuracion. El valor `sl' es el numero de
la entrada hash del nucleo para el conector. `local
address' es la pareja formada por la direccion local y el
numero de puerto. `remote address' es la pareja formada
por la direccion remota y el numero de puerto (si hay
conexion). `St' es el estado interno del conector.
`tx_queue' y `rx_queue' son las colas de datos de entrada
y salida en terminos de uso de memoria del nucleo. 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
Aqui `Num' es el numero de entrada en la tabla del nucleo,
`RefCount' es el numero de usuarios del conector, `Protocol' es,
actualmente, siempre 0, `Flags' representa las banderas internas
del nucleo que contienen el estado del conector. Actualmente,
`Type' es siempre 1 (los conectores de dominio UNIX del tipo
datagrama todavia no estan soportados en el nucleo). `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 inicializacion del nucleo 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.
Tambien se puede escribir en algunos de estos ficheros para
reconfigurar el subsistema o para activar y desactivar ciertas
caracteristicas.
scsi Esta es una lista de todos los dispositivos SCSI
conocidos por el nucleo. La lista es similar a la que se
ve durante el arranque. Actualmente, scsi unicamente
soporta la orden add-single-device que permite al
superusuario anadir a la lista de dispositivos conocidos
un dispositivo conectado "en caliente".
echo `scsi add-single-device 1 0 5 0` > /proc/scsi/scsi
hara que el host scsi1 explore el canal SCSI 0 en busca
de un dispositivo en la direccion ID 5 LUN 0. Si ya hay
un dispositivo conocido en esa direccion o si la
direccion es invalida, se devolvera 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 numero
que el host obtuvo durante la inicializacion.
La lectura de estos ficheros mostrara normalmente la
configuracion del manejador y el host, estadisticas, etc.
La escritura en estos ficheros permite diferentes cosas
sobre diferentes hosts. Por ejemplo, con las ordenes
latency y nolatency, el superusuario puede activar y
desactivar en el manejador eata_dma el codigo para la
medicion de la latencia de las ordenes. Con las ordenes
lockup y unlock, el superusuario puede controlar las
busquedas de bus simuladas por el manejador scsi_debug.
self Este directorio hace referencia al proceso que esta accediendo
al sistema de ficheros /proc y es identico al directorio de
/proc cuyo nombre es el PID del mismo proceso.
slabinfo
Informacion sobre las memorias caches del nucleo. 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 mas detalles.
stat Estadisticas del nucleo/sistema. Varian con la arquitectura.
Entradas comunes son:
cpu 3357 0 4313 1362393
El numero de jiffies (centesimas de segundo) que el
sistema gasto en modo usuario, modo usuario con baja
prioridad (nice), modo supervisor y en la tarea `idle',
respectivamente. El ultimo valor debe ser 100 veces la
segunda entrada del pseudofichero uptime.
page 5741 1808
El numero de paginas que el sistema cargo y el numero de
paginas que fueron descargadas (desde disco).
swap 1 0
El numero de paginas de intercambio que han sido
introducidas y sacadas.
intr 1462898
El numero 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_leidos,
ops_escritura, bloqs_escritos)
ctxt 115315
El numero 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
Numero de llamadas al sistema `fork' desde el arranque.
swaps Areas de intercambio en uso. Vease tambien swapon(8).
sys Este directorio (presente desde la version 1.3.57) contiene
varios ficheros y subdirectorios correspondientes a variables
del nucleo. 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 mas 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 vacio.
dev Este directorio contiene informacion especifica de
dispositivos (por ejemplo, dev/cdrom/info). En algunos
sistemas puede estar vacio.
fs Este 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 funcion se deduce claramente a partir del
nombre.
Se puede encontrar documentacion para los ficheros de
/proc/sys/binfmt_misc en el fichero
Documentation/binfmt_misc.txt de los fuentes del nucleo.
El fichero dentry-state contiene seis numeros, nr_dentry,
nr_unused, age_limit (edad en segundos), want_pages (paginas
solicitadas por el sistema) y dos valores ``tontos''. nr_dentry
parece ser 0 todo el tiempo. nr_unused seems parece ser el
numero 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 despues de que el nucleo
haya llamado a shrink_dcache_pages() y no se haya reducido
todavia el tamano 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 numero maximo de entradas de
cuota de disco en la cache correspondiente. Este fichero no
existe en algunos sistemas (2.4). Si el numero de entradas
libres en la cache de cuotas de disco es muy pequeno y el numero
de usuarios simultaneos que tiene es muy grande, tal vez quiera
subir este limite.
El fichero dquot-nr el numero de entradas de cuota de disco
asignadas y el numero de entradas libres.
El fichero file-max es un limite global del sistema sobre el
numero de ficheros abiertos por todos los procesos. (Vease
tambien setrlimit(2), que un proceso puede usar para establecer
el limite por proceso, RLIMIT_NOFILE, del numero de ficheros que
se pueden abrir.) Si obtiene un monton 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 nucleo NR_OPEN impone un limite superior sobre
el valor que se puede colar en file-max.
Sin incrementa file-max, asegurese de incrementar inode-max a
3-4 veces el nuevo valor de file-max, o se quedara sin nodos-i.
El fichero (de solo lectura) file-nr proporciona el numero de
ficheros abiertos en este momento. Contiene tres numeros: el
numero de manejadores de fichero asignados, el numero de
manejadores de fichero libres y el numero maximo de manejadores
de fichero. El nucleo reserva manejadores de fichero
dinamicamente, pero no los libera otra vez. Si el numero de
ficheros asignados esta cercano al maximo, deberia considerar el
incrementar dicho maximo. Cuando el numero de manejadores de
fichero libres es grande, ha encontrado un pico en su uso de
manejadores de fichero y probablemente no necesite incrementar
el maximo.
El fichero inode-max contiene el numero maximo de nodos-i en
memoria. Este fichero podria no existir en algunos sistemas
(2.4). Este valor deberia ser 3-4 veces mas grande que el valor
de file-max, ya que stdin, stdout y los conectores de red
tambien necesitan un nodo-i para poder manejarlos. Si se queda
sin nodos-i con frecuencia, necesitara incremetar este valor.
El fichero inode-nr contiene contiene los dos primeros valores
de inode-state.
El fichero inode-state contiene siete numeros: nr_inodes,
nr_free_inodes, preshrink y cuatro valores sin utilidad.
nr_inodes es el numero de nodos-i que el sistema ha asignado.
Este numero puede ser ligeramente mayor que inode-max ya que
Linux reserva nodos-i usando paginas enteras. nr_free_inodes
representa el numero 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 mas.
El fichero lease-break-time especifica el periodo de gracia que
el nucleo concede a un proceso que posee un arrendamiento de
fichero (fcntl(2)) despues de que le haya enviado una senal a
ese proceso notificandole que otro proceso esta esperando para
abrir el fichero. Si el arrendatario no elimina o reduce la
categoria del arrendamiento dentro del periodo de gracia, el
nucleo 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 estan
desactivados. Si el valor es distinto de 0, los arrendamientos
estan permitidos.
Los ficheros overflowgid y overflowuid le permiten cambiar el
valor del UID y GID fijos. El valor por omision es 65534.
Algunos sistemas de ficheros solo 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 esta montado con escrituras
permitidas, cualquier UID y GID que excediera 65535 se
traduciria al valor de desbordamiento antes de ser escrito en
disco.
El fichero super-max controla el numero maximo de superbloques
y, por tanto, el numero maximo de sistemas de ficheros montados
que puede tener el nucleo. Solo necesita incrementar super-max
si necesita montar mas sistemas de ficheros que el valor actual
de super-max le permite. El fichero super-nr contiene el numero
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 (solo en PowerPC),
java-appletviewer (binfmt_java, obsoleto), java-
interpreter (binfmt_java, obsoleto), l2cr (solo en
PowerPC), modprobe, msgmax, msgmnb, msgmni, osrelease,
ostype, overflowgid, overflowuid, panic, powersave-nap
(solo en PowerPC), printk, random, real-root-dev, reboot-
cmd (son en SPARC), rtsig-max, rtsig-nr, sem, sg-big-
buff, shmall, shmmax, shmmni, sysrq, tainted, threads-
max, version y zero-paged (solo en PowerPC) cuya funcion
esta bastante clara a partir del nombre.
El fichero acct contiene tres numeros: highwater, lowwater y
frequency. Si esta 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 nucleo comprueba la cantidad de espacio libre (el
valor esta en segundos). Los valores por omision son 4, 2 y 30.
Esto es, suspende la contabilidad si el espacio libre es igual o
inferior al 2%; reanudala si el espacio libre es igual o
superior al 4%; considera valida la informacion sobre el espacio
libre durante 30 segundos.
El fichero cap-bound contiene el valor del conjunto de
capacidades limitantes del nucleo. (expresado como un entero
decimal con signo). Durante un exec, se hace un Y-logico 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 gestion de la combinacion
Ctrl-Alt-Del del teclado. Cuando el valor de este fichero es 0,
se captura Ctrl-Alt-Del y se envia al programa init(1) para
tratar un reinicio elegante. Cuando este valor es > 0, la
reaccion de Linux a un ``Vulcan Nerve Pinch'' (tm) (N.T.: frase
con la que tambien se conoce al saludo de los tres dedos) sera
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 combinacion de teclas alcance la capa
tty del nucleo y es asunto del programa decidir que 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 ordenes
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 clasico 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 discusion mas detallada, vea la
pagina de manual hostname(1).
Si al fichero htab-reclaim (solo en PowerPC) se le asigna un
valor distinto de cero, el PowerPC htab (vea el fichero del
nucleo Documentation/powerpc/ppc_htab.txt) se reduce cada vez
que el sistema alcanza el bucle ocioso.
El fichero l2cr (solo en PowerPC) contiene una bandera que
controla la cache L2 de las placas base de los procesadores G3.
Si contiene 0, la cache se desactiva. Una valor distinto de cero
la activa.
El fichero modprobe se describe en el fichero
Documentation/kmod.txt de los fuentes del nucleo.
El fichero msgmax es un limite global del sistema que especifica
el numero maximo de bytes de un unico mensaje escrito en una
cola de mensajes System V.
El fichero msgmni define el limite global del sistema para el
numero de identificadores de colas de mensajes. (Este fichero
solo existe en Linux 2.4 y posteriores.)
El fichero msgmnb es un parametro global del sistema que se usa
para inicializar el valor msg_qbytes para las colas de mensajes
creadas posteriormente. El valor de configuracion msg_qbytes
especifica el numero maximo 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 nucleo panic_timeout. Si esto es 0, el nucleo
entrara en un bucle infinito ante una situacion de panico; si no
es cero, indica que el nucleo debe autoreinicializarse despues
de ese numero de segundos. Cuando usa el manejador del
dispositivo guardian software, el valor recomendado es 60.
El fichero powersave-nap (solo en PowerPC) contiene una bandera.
Si esta activa, Linux-PPC usara el modo `nap' de ahorro de
energia, en caso contrario usara 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 mas
informacion sobre los diferentes `loglevels' (niveles de
registro). Los mensajes con una prioridad mayor que
console_loglevel se mostraran en la consola. Los mensajes sin
una prioridad explicita se mostrara con prioridad
default_message_level. minimum_console_loglevel es el valor
minimo (el mas alto) que se puede asignar a console_loglevel.
default_console_loglevel es el valor por omision para
console_loglevel.
El directorio random contiene varios parametros 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 nucleo.
El fichero reboot-cmd (solo en Sparc) parece ser una forma de
proporcionar un argumento al cargador de arranque de la
ROM/Flash de la SPARC. cQuizas para decirle que hacer tras
rearrancar?.
El fichero rtsig-max se puede usar para ajustar el numero maximo
de senales (encoladas) POSIX de tiempo real que pueden estar
pendientes en el sistema.
El fichero rtsig-nr muestra el numero de senales POSIX de tiempo
real que hay encoladas actualmente.
El fichero sem (disponible desde la version 2.4 de Linux)
contiene 4 numeros que definen limites para los semaforos IPC de
System V. Estos campos son, en orden:
SEMMSL Numero maximo de semaforos por conjunto de semaforos.
SEMMNS Limite global del sistema para el numero de semaforos en
todos los conjuntos de semaforos.
SEMOPM Numero maximo de operaciones que se pueden especificar
en una llamada semop(2).
SEMMNI Limite global del sistema para el numero maximo de
identificadores de semaforo.
El fichero sg-big-buff muestra el tamano del buffer del
dispositivo SCSI generico (sg). Todavia no puede ajustarlo,
pero puede cambiarlo al compilar editando include/scsi/sg.h y
cambiando el valor de SG_BIG_BUFF. No obstante, no deberia
existir ninguna razon para cambiar este valor.
El fichero shmall contiene un limite global del sistema para el
numero total de paginas de memoria compartida System V.
El fichero shmmax se puede usar para consultar y establecer el
limite en tiempo de ejecucion del tamano maximo de segmento (IPC
de System V) de memoria compartida que se puede crear.
Actualmente, se permiten en el nucleo segmentos de memoria
compartida de hasta 1 Gb. El valor por omision de este valor es
SHMMAX.
El fichero shmmni (disponible desde la version 2.4 de Linux)
especifica el numero maximo 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 esta es la quinta compilacion del nucleo a
partir de esta base de los fuentes y la fecha que hay detras
indica el instante en el que se construyo el nucleo.
El fichero zero-paged (solo en PowerPC) contiene una bandera.
Cuando esta activa (valor distinto de cero), Linux-PPC se
decicara a rellenar paginas con ceros en el bucle ocioso,
posiblemente acelerando la ejecucion de get_free_pages.
net Este directorio contiene cosas de redes.
proc Este directorio puede estar vacio.
sunrpc Este directorio da soporte a las llamadas a
procedimientos remotos de Sun para sistemas de ficheros
de red (NFS). Este fichero podria no existir en algunos
sistemas.
vm Este directorio contiene ficheros para el ajuste de la
gestion de memoria y la gestion de buffers y caches.
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,
semaforos y memoria compartida) que actualmente existen en el
sistema, proporcionando informacion similar a aquella disponible
a traves de ipcs(1). Estos ficheros poseen encabezados y se
formatean (mostrando un objeto IPC por linea) para una mejor
interpretacion. ipc(5) proporciona datos adicionales sobre la
informacion mostrada por estos ficheros.
tty Subdirectorio que contiene pseudoficheros y subdirectorios para
los manejadores (drivers) tty y las disciplinas de lineas.
uptime Este fichero contien dos numeros: los segundos que el sistema
lleva funcionando y los segundos gastados en el proceso `idle'.
version
Esta cadena identifica la version del nucleo que se esta
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'EASE TAMBI'EN
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 nucleo 2.4.17 de Linux. Por favor,
actualice esto cuando sea necesario.
Ultima actualizacion para la version 2.4.17 de Linux.
ATENCI'ON
Observe que muchas cadenas (por ejemplo, el entorno y la linea de
ordenes) estan en formato interno, con los subcampos terminados por
bytes NUL, por lo que puede encontrar que las cosas son mas legibles si
usa od -c o tr "\000" "\n" para leerlas. Alternativamente, tambien
funciona bien echo `cat <file>`.
Esta pagina de manual esta 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 documentacion de los fuentes del nucleo
escritos por Rik van Riel.
13 julio 2002 PROC(5)