Procfs

De Wikipedia, la enciclopedia libre

En los sistemas operativos tipo Unix, procfs es la abreviatura de sistema de ficheros de procesos (process filesystem). Un pseudo sistema de ficheros que se utiliza para permitir el acceso a la información del núcleo sobre los procesos. Dado que proc no es un sistema de ficheros real, no consume ningún espacio de almacenamiento, y sólo consume una limitada cantidad de memoria.

El sistema de archivos se monta con frecuencia en /proc. Está soportado bajo Solaris, BSD y GNU/Linux, el último de los cuales lo extiende para incluir datos que no son propios de los procesos.

Historia[editar]

La implementación de la versión de /proc utilizada en la octava edición de Unix, estaba implementada por Tom J. Killina, quien presentó un escrito titulado Processes as Files en USENIX, junio de 1984. Se diseñó para reemplazar la llamada al sistema ptrace utilizada en el seguimiento de los procesos.

Roger Falulkner y Ron Gomes portaron el /proc de V8 al SVr4, y publicaron un escrito titulado El Sistema de Ficheros de Procesos y el Modelo de Procesos en UNIX System V en USENIX, enero de 1991. Este tipo de procfs soportaba la creación de procesos, pero los ficheros sólo podían ser accedidos mediante las funciones read(), write(), e ioctl().

4.4BSD implementó /proc con subdirectorios para cada proceso, y la habilidad de acceder a la memoria, registros, y el estado actual. En Solaris 2.6 /proc (finalizado en 1996) también tuvo un directorio diferente para cada proceso, además de un fichero especial ctl que permitía el control, seguimiento y manipulación de los procesos.

GNU/Linux[editar]

Bajo GNU/Linux, /proc proporciona información sobre cualquier proceso en ejecución en /proc/PID, pero además incluye:

  • Un enlace simbólico al proceso actual en /proc/self
  • Información sobre el hardware, núcleo y la configuración de módulos
  • Acceso a las opciones dinámicamente configurables del núcleo bajo /proc/sys

Las utilidades básicas que utilizan /proc bajo Linux se encuentran en el paquete procps, y necesitan que /proc esté montado para realizar su función.

En el núcleo 2.6, la mayoría de los ficheros no relacionados con los procesos que se encontraban en /proc se movieron a otro sistema de ficheros virtual llamado sysfs (montado en /sys).