sysfs es un sistema de archivos virtual que normalmente se monta en /sys. Representa objetos del kernel y sus relaciones mediante directorios, enlaces simbólicos y pequeños archivos de atributos. Las herramientas y los gestores de descubrimiento de dispositivos lo utilizan para comprender el modelo actual de dispositivos del kernel.
Dispositivos · Lección 4
sysfs
Aprende cómo sysfs expone el modelo actual de dispositivos, controladores, buses y clases del kernel de Linux bajo `/sys`.
Recorrer el modelo de dispositivos
Entre las vistas importantes del nivel superior se encuentran:
/sys/devices/: la jerarquía de dispositivos físicos y lógicos/sys/class/: dispositivos agrupados por clase funcional, como bloques o red/sys/bus/: buses, sus dispositivos y controladores/sys/block/: una vista práctica de los dispositivos de bloques/sys/dev/: enlaces indexados por los números mayor y menor de dispositivos de caracteres o bloques
Muchas entradas situadas fuera de /sys/devices son enlaces simbólicos hacia la jerarquía canónica. Resuelve un enlace con readlink -f cuando necesites la ruta real del padre:
$ readlink -f /sys/class/block/sda
El nombre del ejemplo puede no existir en sistemas que utilicen otras interfaces de almacenamiento.
¿Qué subárbol de sysfs contiene la jerarquía principal de dispositivos del kernel?
Leer atributos
Los archivos de atributos exponen valores o controles individuales. En un dispositivo de bloques, algunos ejemplos pueden ser:
$ cat /sys/class/block/sda/dev
8:0
$ cat /sys/class/block/sda/ro
0
$ cat /sys/class/block/sda/size
1953525168
dev comunica los números mayor y menor del dispositivo. ro comunica el indicador de solo lectura del dispositivo de bloques. En los dispositivos de bloques de Linux, size se expresa convencionalmente en sectores de 512 bytes, con independencia del tamaño de sector físico del dispositivo. Consulta siempre la documentación de la ABI del kernel para conocer las unidades y el significado de un atributo concreto.
¿Qué contiene normalmente el atributo dev de sysfs de un dispositivo de bloques?
Relacionar `/sys` y `/dev`
/dev contiene nodos que las aplicaciones abren para realizar E/S con dispositivos. /sys expone relaciones entre objetos, propiedades, estado y determinados controles. Un nodo de bloques como /dev/sda puede corresponderse con /sys/dev/block/8:0, que se resuelve al objeto de sysfs pertinente.
Las dos interfaces se complementan. Ninguna contiene por sí sola un inventario completo de todos los datos del hardware, y un dispositivo puede desaparecer mientras se examina.
¿Qué afirmación distingue correctamente /sys de /dev?
Escribir atributos de forma segura
Algunos atributos de sysfs permiten escrituras que pueden cambiar el estado de energía, la vinculación de controladores, el comportamiento de las colas, la autorización de dispositivos, los LED u otros controles activos. Una escritura de texto correcta puede tener efectos inmediatos en el hardware o en los servicios; no equivale a editar un archivo de configuración persistente.
Lee la ABI documentada y el valor actual, identifica cómo debe hacerse persistente el ajuste y realiza pruebas únicamente en un sistema autorizado. Nunca cambies recursivamente permisos ni escribas valores adivinados por todo /sys.
¿Por qué puede ser importante para el funcionamiento escribir en un atributo de sysfs?
Utiliza Explorar dispositivos de hardware en Linux para recorrer sysfs en modo de solo lectura y relacionarlo con nodos de dispositivo.
Lección completada
Has completado sysfs
Ahora puedes utilizar sysfs como una vista estructurada de los objetos activos del kernel.
Recorre las vistas de dispositivos, clases, buses, bloques y números de dispositivo.
Lee un atributo documentado cada vez y utiliza las unidades correctas.
Relaciona los objetos de sysfs con los nodos de
/dev.Trata los atributos que permiten escrituras como interfaces de control activas.
Guarda tu progreso
Crea una cuenta gratuita para guardar esta lección y continuar en cualquier dispositivo.
Crear una cuenta gratuita