El directorio /proc en Linux

Seguramente te has preguntado alguna vez qué es ese misterioso directorio /proc que hay en tu sistema de ficheros (/proc filesystem). Originariamente, este directorio estaba pensado para ofrecer información rápida y de fácil acceso sobre los procesos del sistema. En la actualidad, su misión ha ido evolucionando y ahora tiene otras utilidades.
Lo primero que debemos saber es que el directorio /proc no es un directorio real de tu sistema de ficheros, sino que es un directorio virtual que sólo se encuentra en memoria (ni se te ocurra incluirlo en tus copias de seguridad). ¿De dónde salen entonces todos estos archivos y directorios? La respuesta es: directamente del Kernel.
El sistema de archivos /proc es pues una forma de comunicarnos directamente con el Kernel, ya que nos da información en tiempo real del estado en que se encuentra, sus parámetros de configuración y otras informaciones ofrecidas por los módulos que se encuentan cargados en memoria. Pero es un canal de doble sentido, ya que podemos escribir en algunos de estos archivos para modificar ciertos parámetros de funcionamiento del kernel.
Veámoslo con un sencillo ejemplo. Con el siguiente comando podemos obtener el nombre del host de nuestra máquina:

cat /proc/sys/kernel/hostname

Pero además, podemos cambiar el nombre del host con el siguiente comando:

echo supermachine.com > /proc/sys/kernel/hostname

Evidentemente cuando reiniciemos la máquina nuestro host volverá a tener su nombre original, pero nos sirve como ejemplo.
Otro clásico es el siguiente, que nos permite activar el reenvío de paquetes TCP/IP para que Linux actúe como un router:

echo 1 > /proc/sys/net/ipv4/ip_forward

Algunos directorios y archivos interesantes son:

/proc/cpuinfo Información sobre el microprocesador.
/proc/devices Controladores de dispositivos cargados en memoria.
/proc/interrupts Información sobre las interrupciones.
/proc/loadavg Carga del sistema en tiempo real.
/proc/meminfo Información sobre la memoria RAM y Swap.
/proc/modules Modulos del kernel cargados en memoria.
/proc/net Información sobre el estado de la red.
/proc/stat Datos estadísticos sobre el estado del sistema.
/proc/uptime Número de segundos que lleva el sistema funcionando.
/proc/version Indica la versión del núcleo

Por supuesto hay bastantes más archivos y directorios interesantes, pero son tantos que los dejo para que los investigues y descubras tú mismo.
Para los programadores del kernel, este directorio tiene bastante interés, ya que ofrece una manera sencilla de comunicar nuestro módulo con el resto del mundo, pero esto ya lo veremos en otro artículo.

 

Tags: , , ,

Comments: 3

Responder »

 
  • angela merkel

    Que maravilla asi da gusto , sigue asi :D

     
     
     
  • Leandro

    Muy interesante, realmente. En varias ocasiones tuve cierta lucidés para suponer de qué se trataba, pero aquí lo que expusiste más que claramente. Gracias.

     
     
     
  • [...] El directorio /proc en Linux – Alberto García [...]

     
     
     
  • Leave a Reply
     
    Your gravatar
    Tu nombre