Sistema de archivos /proc
100%

Procesos · Lección 10

Sistema de archivos /proc

Aprende cómo Linux expone información actual de los procesos y del kernel mediante el sistema de archivos virtual `/proc`.

Linux suele montar procfs en /proc. Este sistema de archivos virtual presenta interfaces generadas por el kernel como archivos y directorios; su contenido no son archivos persistentes ordinarios almacenados en disco. Expone tanto el estado de los procesos como cierta información del kernel relativa a todo el sistema.

Localizar directorios de procesos

Muestra el montaje y las entradas del nivel superior con:

$ findmnt /proc
$ ls /proc

Los nombres de directorio numéricos corresponden a los identificadores de procesos visibles en el espacio de nombres de PID del proceso que realiza la consulta. Por ejemplo, /proc/12345 representa el PID 12345 en el instante en que existe. /proc/self es un enlace simbólico que se resuelve al directorio propio del proceso que observa, y /proc/thread-self identifica el hilo actual.

La visibilidad y el acceso dependen de las credenciales, los espacios de nombres, la política de seguridad y opciones de montaje de procfs como hidepid. Un proceso puede terminar entre el listado de un directorio y la apertura de uno de sus archivos, por lo que su desaparición es una condición de carrera normal que las herramientas de inspección deben saber gestionar.

¿Qué representa normalmente el directorio numérico /proc/12345?

Leer información de un proceso

Cuando los permisos lo permitan, examina el archivo de estado de un proceso:

$ less /proc/12345/status

Incluye campos como el nombre y el estado del proceso, identificadores, credenciales, contadores de memoria, capacidades y máscaras de señales. Otras entradas útiles son:

  • /proc/12345/cmdline: argumentos de la línea de órdenes separados por bytes nulos
  • /proc/12345/environ: entradas del entorno, sujetas a controles de acceso y potencialmente confidenciales
  • /proc/12345/fd/: enlaces simbólicos que representan descriptores de archivo abiertos
  • /proc/12345/maps: asignaciones actuales de memoria
  • /proc/12345/cwd: enlace simbólico al directorio de trabajo actual

Trátalas como observaciones cambiantes. Los campos pueden variar según la versión del kernel, un proceso puede cambiar de estado durante la lectura de varios archivos y algunos contadores tienen matices que sus nombres no reflejan por sí solos.

¿Qué ruta contiene un resumen legible y organizado en campos para el PID 12345?

Leer interfaces de todo el sistema

No todas las entradas de /proc pertenecen a un proceso. Algunos ejemplos son:

  • /proc/cpuinfo, con información de la CPU proporcionada por el kernel
  • /proc/meminfo, con contadores de memoria del sistema
  • /proc/mounts, con la vista de los montajes que tiene el proceso actual
  • /proc/loadavg, con información sobre la carga media y las tareas preparadas para ejecutarse
  • /proc/sys/, con parámetros del kernel durante la ejecución

Algunos archivos, sobre todo los situados bajo /proc/sys, son interfaces de configuración en las que se puede escribir. No escribas en ellos solo porque parezcan archivos normales. Antes de realizar un cambio autorizado en el sistema, comprende el parámetro, su alcance, el mecanismo para hacerlo persistente y cómo revertirlo.

¿Qué entrada proporciona contadores de memoria de todo el sistema en vez del estado de un único proceso?

Utilizar `/proc` mediante herramientas

Las implementaciones de Linux de herramientas como ps, top y free obtienen gran parte de sus datos de procfs y de otras interfaces del kernel, y después los etiquetan, calculan y presentan. En el trabajo habitual, prefiere esas herramientas cuando proporcionen el campo que necesitas; lee /proc directamente para obtener detalles concretos o crear scripts solo después de estudiar la documentación de la interfaz.

Los lectores directos deben analizar los formatos correctamente, tolerar la desaparición de procesos, proteger la información confidencial y evitar suponer que una lectura constituye una instantánea atómica del sistema.

¿Por qué puede desaparecer /proc/PID entre dos órdenes de inspección?

Lección completada

Has completado Sistema de archivos /proc

Ahora puedes utilizar procfs como una interfaz actual del kernel sujeta a controles de acceso.

  • Asocia los directorios numéricos de /proc con los PID visibles.

  • Lee archivos concretos de cada proceso teniendo en cuenta las condiciones de carrera y la confidencialidad.

  • Distingue los directorios de procesos de las interfaces de todo el sistema.

  • Para una inspección habitual y fiable, prefiere herramientas y formatos documentados.

Guarda tu progreso

Crea una cuenta gratuita para guardar esta lección y continuar en cualquier dispositivo.

Crear una cuenta gratuita
Siguiente Lección
Volver a Procesos