The kernel mounts the filesystem sysfs under/sys
and makes information about the devices and drivers available.
Historically stuff originally found under/proc
got and will get moved to sysfs to clean procfs from device and hardware related stuff.
udev makes heavily use of sysfs since it creates the /dev
files using information from /sys
.
The files under /sys
contain just one value. The meaning of the value can be extracted from the path and filename.
As app-text/tree shows the devices are grouped in tree -L 1 shows the directories
block, bus, class, dev, devices, firmware, fs, kernel, module, power
Since many files might be put in more than one directory, sysfs make heavily use of symbolic links to have the data consistent.