/sys
es vieja . Se introdujo antes de que el kernel de Linux alcanzara 2.6 (cuando había una división 2.4 / 2.5). Desde que la primera versión de Ubuntu usó un kernel 2.6 , cada versión de Ubuntu ha tenido un /sys
.
/dev
contiene los archivos reales del dispositivo. No proporciona acceso a todos los dispositivos que el núcleo sabe de (tales como dispositivos de Ethernet, para uno - ¿Por qué son las interfaces de red no en / dev igual que otros dispositivos , ¿Por qué los dispositivos Ethernet no aparecen en "/ dev"? ). Es una interfaz para el dispositivo en sí mismo: usted escribe en el dispositivo, lee de él, etc.
/sys
es una interfaz para el kernel. Específicamente, proporciona una vista similar a la de un sistema de archivos de información y configuraciones de configuración que proporciona el núcleo, muy similar /proc
. Escribir en estos archivos puede o no escribir en el dispositivo real, dependiendo de la configuración que esté cambiando. No es solo para administrar dispositivos, aunque ese es un caso de uso común.
Se puede encontrar más información en la documentación del kernel :
Top Level Directory Layout
~~~~~~~~~~~~~~~~~~~~~~~~~~
The sysfs directory arrangement exposes the relationship of kernel
data structures.
The top level sysfs directory looks like:
block/
bus/
class/
dev/
devices/
firmware/
net/
fs/
devices/ contains a filesystem representation of the device tree. It maps
directly to the internal kernel device tree, which is a hierarchy of
struct device.
bus/ contains flat directory layout of the various bus types in the
kernel. Each bus's directory contains two subdirectories:
devices/
drivers/
devices/ contains symlinks for each device discovered in the system
that point to the device's directory under root/.
drivers/ contains a directory for each device driver that is loaded
for devices on that particular bus (this assumes that drivers do not
span multiple bus types).
fs/ contains a directory for some filesystems. Currently each
filesystem wanting to export attributes must create its own hierarchy
below fs/ (see ./fuse.txt for an example).
dev/ contains two directories char/ and block/. Inside these two
directories there are symlinks named <major>:<minor>. These symlinks
point to the sysfs directory for the given device. /sys/dev provides a
quick way to lookup the sysfs interface for a device from the result of
a stat(2) operation.
Por ejemplo:
Una forma de configurar el brillo de un monitor portátil es:
echo N > /sys/class/backlight/acpi_video0/brightness
Para obtener la dirección MAC de una tarjeta de red:
cat /sys/class/net/enp1s0/address
Para obtener los gobernadores de escala de CPU actuales:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Y así...
/sys
ha existido por más de una década ahora .