proc

PROC(5)                  Manual del Programador de Linux                 PROC(5)



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.

       [número]
              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)