El sistema de archivos sysfs: dispositivos y drivers

Si observamos la salida del comando mount en un sistema Linux, veremos varias líneas referidas a dispositivos especiales. El sistema de archivos sysfs es el asociado a uno de ellos. En realidad, se trata de un sistema de archivos virtual provisto por el kernel para que las aplicaciones puedan acceder a información sobre el hardware y drivers. En este post explicaremos algunos conceptos esenciales relacionados con el tema.

El sistema de archivos sysfs

Para empezar, mencionemos que en /sys encontramos información variada sobre dispositivos. Entre esos datos podemos ver el estado de los mismos (en funcionamiento o no), el fabricante y modelo, y el bus al que están conectados. Veamos en la Fig. 1 el contenido típico de este sistema de archivos:

tree -d -L 1 /sys
El sistema de archivos sysfs
Figura 1 – El sistema de archivos sysfs

Los subdirectorios que vemos en la imagen anterior representan los sistemas principales incluidos en sysfs. En estos directorios por lo general encontraremos archivos de texto plano que contienen un solo valor. Por ejemplo, consideremos el directorio /sys/bus. En el mismo se ubican una serie de subdirectorios que representan todos los tipos de buses que están soportados en el kernel actual (ya sea compilados estáticamente o mediante un módulo). Más particularmente, en /sys/bus/usb/devices encontraremos información sobre los buses USB disponibles en el equipo:

ls /sys/bus/usb/devices

En la Fig. 2 podemos apreciar que dentro del /sys/bus/usb/devices/usb1 encontramos un subdirectorio llamado power, y un archivo connected_duration. En el mismo se nos indica, en milisegundos, el tiempo en que ha estado conectado el bus. Este dato debe coincidir (aproximadamente) con el uptime del equipo.

Navegando el sistema de archivos sysfs
Figura 2 – Navegando el sistema de archivos sysfs

Este es solamente un ejemplo de la información disponible dentro del sistema de archivos sysfs. La gran variedad de datos a la que podemos acceder es una invitación a que dediquemos un tiempo a investigar el contenido de /sysfs por nuestra cuenta.

Espero que este post les haya resultado útil. ¡Nos leemos en el próximo!

¡Aprovechá la oportunidad de suscribirte al blog para recibir en tu correo el post nuestro de cada día, novedades, y promociones exclusivas!