/sys
это старый . Он был представлен до того, как ядро Linux достигло 2.6 (тогда, когда было разделение на 2.4 / 2.5). Поскольку в первом выпуске Ubuntu использовалось ядро 2.6 , каждая версия Ubuntu имела /sys
.
/dev
содержит фактические файлы устройства. Он не обеспечивает доступ ко всем устройствам , что ядро знает (например, сетевыми устройствами, для одного - ? Почему сетевые интерфейсы не в / разработчика , как и другие устройства , Почему Ethernet устройства не отображаются в «/ DEV»? ). Это интерфейс самого устройства - вы пишете на устройство, читаете с него и т. Д.
/sys
интерфейс к ядру В частности, он обеспечивает представление информации и параметров конфигурации, аналогичное файловой системе, которое обеспечивает ядро /proc
. Запись в эти файлы может или не может записывать на фактическое устройство, в зависимости от настроек, которые вы меняете. Это не только для управления устройствами, хотя это общий случай использования.
Более подробную информацию можно найти в документации ядра :
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.
Например:
Один из способов настройки яркости монитора ноутбука:
echo N > /sys/class/backlight/acpi_video0/brightness
Чтобы получить MAC-адрес сетевой карты:
cat /sys/class/net/enp1s0/address
Чтобы получить текущие регуляторы масштабирования процессора:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
И так далее...
/sys
существует уже более десяти лет .