El kernel de Linux tiens dos funciones primarias: controlar el acceso a los dispositivos físicos del ordenador y establecer cuándo y cómo los procesos interactuarán con estos dispositivos. El directorio /proc/ — también llamado el sistema de archivos proc — contiene una jerarquía de archivos especiales que representan el estado actual del kernel — permitiendo a las aplicaciones y usuarios mirar detenidamente en la vista del kernel del sistema.
Dentro del directorio /proc/, se puede encontrar una gran cantidad de información con detalles sobre el hardware del sistema y cualquier proceso que se esté ejecutando actualmente. Además, algunos de los archivos dentro del árbol de directorios /proc/ pueden ser manipulados por los usuarios y aplicaciones para comunicar al kernel cambios en la configuración.
En Linux, todo se guarda en archivos. La mayoría de usuarios están familiarizados con los dos primeros tipos de archivos, de texto y binarios. Sin embargo, el directorio /proc/ contiene otro tipo de archivos llamado archivo virtual. Por esta razón, es que a menudo se hace referencia a /proc/ como un sistema de archivos virtual.
Estos archivos virtuales poseen cualidades únicas. En primer lugar, la mayoría de ellos tienen un tamaño de 0 bytes. Sin embargo, cuando se visualiza el archivo, éste puede contener una gran cantidad de información. Además, la mayoría de configuraciones del tiempo y las fechas reflejan el tiempo y fecha real, lo que es un indicativo de que están siendo constantemente modificados.
Los archivos virtuales tales como /proc/interrupts, /proc/meminfo, /proc/mounts, y /proc/partitions proporcionan una vista rápida actualizada del hardware del sistema. Otros, como /proc/filesystems y el directorio /proc/sys/, proveen información de configuración del sistema e interfaces.
Para propósitos organizacionales, los archivos que contienen información sobre un tópico similar se agrupan en directorios virtuales y sub-directorios. Por ejemplo, /proc/ide/ contiene información sobre los dispositivos IDE. De la misma forma, los directorios de procesos contienen información sobre cada proceso ejecutándose en el sistema.
Mediante el uso de los comandos cat, more, o less en los archivos dentro del directorio /proc/, los usuarios pueden inmediatamente acceder una cantidad enorme de información acerca del sistema. Por ejemplo, para desplegar el tipo de CPU que tiene un equipo, escriba cat /proc/cpuinfo para recibir una salida similar a lo siguiente:
processor : 0 vendor_id : AuthenticAMD cpu family : 5 model : 9 model name : AMD-K6(tm) 3D+ Processor stepping : 1 cpu MHz : 400.919 cache size : 256 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr mce cx8 pge mmx syscall 3dnow k6_mtrr bogomips : 799.53 |
Como puede ver en el sistema de archivos /proc/, alguna información tiene sentido, mientras que otras áreas aparecen en un código extraño. Por eso es que existen utilidades para extraer información de los archivos virtuales y mostrarla en una forma útil. Ejemplos de estas utilidades incluyen lspci, apm, free, y top.
![]() | Nota |
|---|---|
Algunos archivos en el directorio /proc/ están configurados para que se puedan leer sólo por el usuario root. |
Como regla general, la mayoría de los archivos virtuales dentro del directorio /proc solamente se pueden leer. Sin embargo, algunos se pueden usar para ajustar la configuración del kernel. Esto ocurre con los archivos del subdirectorio /proc/sys/.
Para cambiar el valor de un archivo virtual, use el comando echo y el símbolo mayor que (>) para redirigir el nuevo valor al archivo. Por ejemplo, para cambiar el nombre del host rápidamente escriba:
echo www.example.com > /proc/sys/kernel/hostname |
Otros archivos actúan como conmutadores binarios o boleanos. Si escribe cat /proc/sys/net/ipv4/ip_forward verá el valor 0 o el valor 1. El valor 0 indica que el kernel no está realizando el reenvio de paquetes. Si usa el comando echo para cambiar el valor del archivo ip_forward a 1, el kernel activará inmediatamente el reenvio de paquetes.
![]() | Sugerencia |
|---|---|
Otro comando que se usa para cambiar la configuración en el subdirectorio /proc/sys/ es /sbin/sysctl. Para mayor información consulte la Sección 5.4 |
Para ver una lista de algunos de los archivos de configuración del kernel disponibles en el subdirectorio /proc/sys/, vaya a la Sección 5.3.9.