sistema de archivos proc en Linux

El sistema de archivos proc (procfs) es un sistema de archivos virtual que se crea sobre la marcha cuando se inicia el sistema y se disuelve en el momento del apagado del sistema.

Contiene información útil sobre los procesos que se están ejecutando actualmente, se considera un centro de control e información para el kernel.

El sistema de archivos proc también proporciona un medio de comunicación entre el espacio del kernel y el espacio del usuario.

A continuación se muestra una instantánea de /proc de mi PC.

ls -l /proc

total 0
dr-xr-xr-x  9 root         root           0 Mar 31 21:34 1
dr-xr-xr-x  9 root         root           0 Mar 31 21:34 10
dr-xr-xr-x  9 avahi        avahi          0 Mar 31 21:34 1034
dr-xr-xr-x  9 root         root           0 Mar 31 21:34 1036
dr-xr-xr-x  9 root         root           0 Mar 31 21:34 1039
dr-xr-xr-x  9 root         root           0 Mar 31 21:34 1041
dr-xr-xr-x  9 root         root           0 Mar 31 21:34 1043
dr-xr-xr-x  9 root         root           0 Mar 31 21:34 1044
dr-xr-xr-x  9 root         root           0 Mar 31 21:34 1048
dr-xr-xr-x  9 root         root           0 Mar 31 21:34 105
dr-xr-xr-x  9 root         root           0 Mar 31 21:34 1078
dr-xr-xr-x  9 root         root           0 Mar 31 21:34 11
dr-xr-xr-x  9 root         root           0 Mar 31 21:34 1121
dr-xr-xr-x  9 lp           lp             0 Mar 31 21:34 1146
dr-xr-xr-x  9 postgres     postgres       0 Mar 31 21:34 1149
dr-xr-xr-x  9 mysql        mysql          0 Mar 31 21:34 1169
dr-xr-xr-x  9 postgres     postgres       0 Mar 31 21:34 1180
dr-xr-xr-x  9 postgres     postgres       0 Mar 31 21:34 1181
dr-xr-xr-x  9 postgres     postgres       0 Mar 31 21:34 1182
dr-xr-xr-x  9 postgres     postgres       0 Mar 31 21:34 1183
dr-xr-xr-x  9 postgres     postgres       0 Mar 31 21:34 1184
dr-xr-xr-x  9 root         root           0 Mar 31 21:34 1186
dr-xr-xr-x  9 root         root           0 Mar 31 21:34 12

...

Si enumera los directorios, encontrará que para cada PID de un proceso hay un directorio dedicado.
Puede verificar directorios solo en la terminal usando

ls -l /proc | grep '^d'

Ahora verifiquemos el proceso particular del PID asignado, puede obtener el PID de cualquier proceso en ejecución desde el comando ps

ps -aux

Producción:

salida de comando ps -aux

Ahora verifique el proceso resaltado con PID=7494, puede verificar que haya una entrada para este proceso en el sistema de archivos /proc.

ls -ltr /proc/7494

Producción:

total 0
-rw-r--r--  1 mandeep mandeep 0 Apr  1 01:14 oom_score_adj
dr-xr-xr-x 13 mandeep mandeep 0 Apr  1 01:14 task
-r--r--r--  1 mandeep mandeep 0 Apr  1 01:16 status
-r--r--r--  1 mandeep mandeep 0 Apr  1 01:16 stat
-r--r--r--  1 mandeep mandeep 0 Apr  1 01:16 cmdline
-r--r--r--  1 mandeep mandeep 0 Apr  1 01:17 wchan
-rw-r--r--  1 mandeep mandeep 0 Apr  1 01:17 uid_map
-rw-rw-rw-  1 mandeep mandeep 0 Apr  1 01:17 timerslack_ns
-r--r--r--  1 mandeep mandeep 0 Apr  1 01:17 timers
-r--------  1 mandeep mandeep 0 Apr  1 01:17 syscall
-r--r--r--  1 mandeep mandeep 0 Apr  1 01:17 statm
-r--------  1 mandeep mandeep 0 Apr  1 01:17 stack
-r--r--r--  1 mandeep mandeep 0 Apr  1 01:17 smaps
-rw-r--r--  1 mandeep mandeep 0 Apr  1 01:17 setgroups
-r--r--r--  1 mandeep mandeep 0 Apr  1 01:17 sessionid
-r--r--r--  1 mandeep mandeep 0 Apr  1 01:17 schedstat
-rw-r--r--  1 mandeep mandeep 0 Apr  1 01:17 sched
lrwxrwxrwx  1 mandeep mandeep 0 Apr  1 01:17 root -> /proc/2341/fdinfo
-rw-r--r--  1 mandeep mandeep 0 Apr  1 01:17 projid_map
-r--------  1 mandeep mandeep 0 Apr  1 01:17 personality

...

En Linux, /proc incluye un directorio para cada proceso en ejecución, incluidos los procesos del kernel, en directorios denominados /proc/PID, estos son los directorios presentes:

directorio descripción
/proc/PID/líneacmd Argumentos de la línea de comandos.
/proc/PID/cpu CPU actual y última en la que se ejecutó.
/proc/PID/cwd Enlace al directorio de trabajo actual.
/proc/PID/entorno Valores de las variables de entorno.
/proc/PID/exe Enlace al ejecutable de este proceso.
/proc/PID/fd Directory, que contiene todos los descriptores de archivos.
/proc/PID/mapas La memoria se asigna a ejecutables y archivos de biblioteca.
/proc/PID/mem Memoria sostenida por este proceso.
/proc/PID/raíz Enlace al directorio raíz de este proceso.
/proc/PID/stat Estado del proceso.
/proc/PID/statm Procesar la información de estado de la memoria.
/proc/PID/estado Estado del proceso en forma legible por humanos.

Algunos otros archivos en el sistema de archivos /proc son:

expediente descripción
/proc/cripto lista de módulos criptográficos disponibles
/proc/diskstats información (incluidos los números de dispositivo) para cada uno de los dispositivos de disco lógico
/proc/sistemas de archivos lista de los sistemas de archivos admitidos por el núcleo en el momento de la inclusión
/proc/kmsg reteniendo mensajes emitidos por el kernel
/proc/meminfo resumen de cómo el núcleo está administrando su memoria.
/proc/scsi información sobre cualquier dispositivo conectado a través de un controlador SCSI o RAID
/proc/tty información sobre los terminales actuales
/proc/versión que contiene la versión del kernel de Linux, el número de distribución, el número de versión de gcc (utilizado para construir el kernel) y cualquier otra información pertinente relacionada con la versión del kernel que se está ejecutando actualmente

Por ejemplo, los contenidos de /proc/crypto son

less /proc/crypto

name         : ccm(aes)
driver       : ccm_base(ctr(aes-aesni), cbcmac(aes-aesni))
module       : ccm
priority     : 300
refcnt       : 2
selftest     : passed
internal     : no
type         : aead
async        : no
blocksize    : 1
ivsize       : 16
maxauthsize  : 16
geniv        : 

name         : ctr(aes)
driver       : ctr(aes-aesni)
module       : kernel
priority     : 300
refcnt       : 3
selftest     : passed
internal     : no
type         : blkcipher
blocksize    : 1
min keysize  : 16
max keysize  : 32
ivsize       : 16
geniv        : chainiv

...

Referencias:
1) /wiki/Procfs
2) /proc

Publicación traducida automáticamente

Artículo escrito por msdeep14 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *