sysfs es un pseudo sistema de archivos proporcionado por el kernel de Linux que exporta información sobre varios subsistemas del kernel, dispositivos de hardware y controladores de dispositivos asociados desde el modelo de dispositivo del kernel al espacio de usuario a través de archivos virtuales . [1] Además de proporcionar información sobre varios dispositivos y subsistemas del kernel, los archivos virtuales exportados también se utilizan para su configuración.
sysfs proporciona una funcionalidad similar al mecanismo sysctl que se encuentra en los sistemas operativos BSD , con la diferencia de que sysfs se implementa como un sistema de archivos virtual en lugar de ser un mecanismo de kernel especialmente diseñado y que, en Linux, los parámetros de configuración de sysctl están disponibles en /proc/sys/ como parte de procfs , no sysfs que está montado en /sys/ . [2]
Durante el ciclo de desarrollo 2.5, se introdujo el modelo de controlador de Linux para corregir las siguientes deficiencias de la versión 2.4:
Sysfs fue diseñado para exportar la información presente en el árbol de dispositivos , lo que dejaría de saturar procfs. Fue escrito por Patrick Mochel. [3] [4] Más tarde, Maneesh Soni escribió el parche de almacenamiento de respaldo de sysfs para reducir el uso de memoria en sistemas grandes.
Durante el siguiente año de desarrollo de la versión 2.5, las capacidades de infraestructura del modelo de controlador y driverfs comenzaron a resultar útiles para otros subsistemas. [5] [6] Se desarrollaron kobjects para proporcionar un mecanismo de gestión de objetos central y driverfs pasó a llamarse sysfs para representar su agnosticismo de subsistemas.
Sysfs se monta en el punto de montaje /sys . Si no se monta automáticamente durante la inicialización, se puede montar manualmente utilizando el mount
comando: mount -t sysfs sysfs /sys
. [1]
Varias utilidades utilizan Sysfs para acceder a información sobre el hardware y sus controladores ( módulos del kernel ), como udev o HAL . Se han escrito scripts para acceder a información obtenida previamente a través de procfs , y algunos scripts configuran controladores de dispositivos y dispositivos a través de sus atributos.
sysctl se utiliza para modificar los parámetros del núcleo en tiempo de ejecución. Los parámetros disponibles son los que se enumeran en /proc/sys/. Procfs es necesario para la compatibilidad de sysctl en Linux. Puede utilizar sysctl tanto para leer como para escribir datos de sysctl.