sysfs es un pseudosistema 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 del 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 que luego ya no saturaría los procesos. Fue escrito por Patrick Mochel. [3] [4] Maneesh Soni escribió más tarde el parche del almacén de respaldo sysfs para reducir el uso de memoria en sistemas grandes.
Durante el siguiente año de desarrollo de 2.5, las capacidades de infraestructura del modelo de controlador y los controladores comenzaron a resultar útiles para otros subsistemas. [5] [6] kobjects se desarrollaron para proporcionar un mecanismo central de gestión de objetos y se cambió el nombre de driverfs a sysfs para representar el agnosticismo del subsistema.
Sysfs se monta debajo del punto de montaje /sys . Si no se monta automáticamente durante la inicialización, se puede montar manualmente usando el mount
comando: mount -t sysfs sysfs /sys
. [1]
Sysfs es utilizado por varias utilidades para acceder a información sobre el hardware y su controlador ( 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 kernel en tiempo de ejecución. Los parámetros disponibles son los enumerados en /proc/sys/. Se requiere Procfs para la compatibilidad con sysctl en Linux. Puede utilizar sysctl para leer y escribir datos de sysctl.