Только что я заметил этот каталог, который я никогда не видел прежде, /sys
. Я исследовал немного, и считайте, что "современные системы Linux" часто имеют этот каталог, и что он управляет устройствами. Я думал, для именно это был/dev. Я, может казаться, не нахожу большую информацию об этом каталоге, кроме того, что я упомянул, и это, заключенное в кавычки из этой страницы:
/sys является виртуальной файловой системой, к которой можно получить доступ, чтобы установить или получить информацию о представлении ядра системы.
Я выполнял Надежного человека некоторое время теперь и никогда не замечал его прежде, который является, почему я нахожу его немного странным. Кто-то заполнил бы меня? Каково различие между этим и/dev? Когда Ubuntu начинала использовать этот каталог, и почему?Спасибо.
/sys
старо. Это было представлено, прежде чем ядро Linux достигло 2.6 (назад, когда было разделение 2.4/2.5). Так как первый релиз Ubuntu использовал 2,6 ядра, каждая версия Ubuntu имела a /sys
.
/dev
содержит файлы существующего устройства. Это не обеспечивает доступ ко всем устройствам, о которых знает ядро (такие как устройства Ethernet, для одного - Почему находятся сетевые интерфейсы не в/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
И так далее...