Sistema de archivo de exploración /proc en Linux

Sistema de archivo de exploración /proc en Linux

Hoy vamos a echar un vistazo al interior del /Proc directorio y desarrollar una familiaridad con él. El /Proc El directorio está presente en todos Linux sistemas, independientemente del sabor o la arquitectura.

Una idea errónea de que tenemos que aclarar de inmediato es que el /Proc el directorio es NO un verdadero Sistema de archivos, en el sentido del término. Es un Sistema de archivos virtual. Contenido dentro del procfs son información sobre procesos y otra información del sistema. Está mapeado para /Proc y montado en bota tiempo.

Sistema de archivos de exploración /proc

Primero, vayamos al /Proc directorio y eche un vistazo:

# CD /Proc

Lo primero que notará es que hay algunos archivos de sonido familiares, Y luego un montón de directorios numerados. El directorios numerados representar procesos, mejor conocido como Pids, y dentro de ellos, una orden que los ocupa. Los archivos contienen información del sistema como memorY (meminfo), Información de la CPU (cpuinfo) y disponible sistemas de archivos.

Leer también:  Comando gratuito de Linux para verificar la memoria física y el intercambio de memoria

Echemos un vistazo a uno de los archivos primero:

# Cat /Proc /Meminfo
Salida de muestra

que devuelve algo similar a esto:

MEMTOTAL: 604340 KB MEMFREE: 54240 KB Buffers: 18700 KB almacenado en caché: 369020 KB Swapcached: 0 KB Activo: 312556 KB Inactivo: 164856 KB Active (anon): 89744 KB Inactive (anon): 360 KB Active (archivo): 222812 KB Insenter (archivo): 164496 kb no evecible: 0 kb mlocked: 0 kb swaptotal: 0 kb swapFree: 0 kb sucio: 0 kb redacción de escritura: 0 kb anonpages: 89724 kb asignado: 18012 kb shmem: 412 kb slab: 50104 kb srecibagnsion: 40224 kb kb kb kb … 

Como se puede ver, /Proc/Meminfo contiene un montón de información sobre la memoria de su sistema, incluida la cantidad total disponible (en KB) y la cantidad gratuita en las dos líneas superiores.

Ejecutando el comando CAT en cualquiera de los archivos en /Proc emitirá su contenido. La información sobre cualquier archivo está disponible en la página del hombre ejecutando:

# hombre 5 /proc /

Te daré un resumen rápido en /Proc's Archivos:

  1. /proc/cmdline - Información de la línea de comandos del kernel.
  2. /Proc/Consola - Información sobre consolas actuales que incluyen TTY.
  3. /proc/dispositivos - Controladores de dispositivos actualmente configurados para el kernel en ejecución.
  4. /Proc/DMA - Información sobre los canales de DMA actuales.
  5. /proc/fb - Dispositivos FrameBuffer.
  6. /Proc/FileSystemS - Sistemas de archivos actuales compatibles con el kernel.
  7. /proc/iomem - Mapa de memoria del sistema actual para dispositivos.
  8. /proc/ioports - Regiones de puerto registradas para la comunicación de salida de entrada con el dispositivo.
  9. /Proc/LoadAvg - Promedio de carga del sistema.
  10. /proc/cerraduras - Archivos actualmente bloqueados por kernel.
  11. /Proc/Meminfo - Información sobre la memoria del sistema (ver ejemplo anterior).
  12. /Proc/Misc - Conductores misceláneos registrados para un dispositivo principal misceláneo.
  13. /proc/módulos - Módulos de núcleo cargados actualmente.
  14. /proc/monturas - Lista de todas las monturas en uso por sistema.
  15. /proc/particiones - Información detallada sobre particiones disponibles para el sistema.
  16. /Proc/PCI - Información sobre cada dispositivo PCI.
  17. /proc/stat - Registro o varias estadísticas mantenidas del último reinicio.
  18. /Proc/Swap - Información sobre el espacio de intercambio.
  19. /proc/tiempo de inicio - Información de tiempo de actividad (en segundos).
  20. /Proc/Versión - Versión del kernel, versión GCC y distribución de Linux instalada.

Dentro /Proc's Directorios numerados encontrarás algunos archivos y Enlaces. Recuerde que los números de estos directorios se correlacionan con el Pid del comando que se ejecuta dentro de ellos. Usemos un ejemplo. En mi sistema, hay un nombre de carpeta /Proc/12:

# CD /Proc /12 # LS
Salida de muestra
ATTR COREDUMP_FILTER IO MONTOS OOM_SCORE_ADJ SMAPS WCHAN AUTOGROUP CPUSET LATENCIA MOWTSTATS PAGEMAP PISTA AUXV CWD Límites de la personalidad neta Estadísticas CGROUP ENTUND

Si corro:

# Cat/Proc/12/Estado

Obtengo lo siguiente:

Nombre: XenWatch Estado: S (Sleeping) TGID: 12 PID: 12 PPID: 2 Tracerpid: 0 UID: 0 0 0 0 0 0 0 0 0 0 FDSIZE: 64 Grupos: Hilos: 1 SIGQ: 1/4592 Sigpnd: 00000000000000000000000000000000000000000000000000000000000000000000000000. SHDPND : 0000000000000000 SigBlk: 0000000000000000 SigIgn: ffffffffffffffff SigCgt: 0000000000000000 CapInh: 0000000000000000 CapPrm: ffffffffffffffff CapEff: ffffffffffffffff CapBnd: ffffffffffffffff Cpus_allowed: 1 Cpus_allowed_list: 0 Mems_allowed: 00000000,00000001 Mems_allowed_list: 0 voluntary_ctxt_switches: 84 nonvoluntary_ctxt_switches: 0

Entonces, qué significa esto? Bueno, la parte importante está en la cima. Podemos ver desde el archivo de estado que pertenece este proceso Xenwatch. Su estado actual es durmiendo, y su proceso IDENTIFICACIÓN es 12, obviamente. También podemos ver quién está ejecutando esto, como Uid y Aturdir son 0, indicando que este proceso pertenece al raíz usuario.

En cualquier directorio numerado, tendrá una estructura de archivo similar. Los más importantes y sus descripciones son las siguientes:

  1. cmdline - línea de comando del proceso
  2. reinar - variables ambientales
  3. fd - descriptores de archivo
  4. límites - contiene información sobre los límites del proceso
  5. montura - información relacionada

También notará una serie de enlaces en el directorio numerado:

  1. CWD - un enlace al directorio de trabajo actual del proceso
  2. exe - enlace al ejecutable del proceso
  3. raíz - enlace al directorio de trabajo del proceso

Esto debería hacer que comience a familiarizarse con el /Proc directorio. También debe proporcionar información sobre cómo una serie de comandos obtienen su información, como tiempo de actividad, LSOF, montar, y PD, Sólo para nombrar unos pocos.