/sys
é antigo . Ele foi introduzido antes do kernel do Linux atingir o 2.6 (quando havia uma divisão 2.4 / 2.5). Já que a primeira versão do Ubuntu usou um kernel 2.6 , todas versão do Ubuntu teve um% co_de %.
/sys
contém os arquivos de dispositivos reais. Ele não fornece acesso a todos os dispositivos que o kernel conhece (por exemplo, dispositivos ethernet, por um - Por que as interfaces de rede não estão em / dev como outros dispositivos? , Por que os dispositivos Ethernet não aparecem em "/ dev"? ). É uma interface para o próprio dispositivo - você escreve no dispositivo, lê a partir dele, etc.
/dev
é uma interface para o kernel. Especificamente, ele fornece uma visão de sistema de arquivos de informações e definições de configuração que o kernel fornece, muito parecido com /sys
. A gravação nesses arquivos pode ou não ser gravada no dispositivo real, dependendo da configuração que você está alterando. Não é apenas para gerenciar dispositivos, embora esse seja um caso de uso comum.
Mais informações podem ser encontradas em a documentação do 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 exemplo:
-
Uma maneira de definir o brilho de um monitor de laptop é:
echo N > /sys/class/backlight/acpi_video0/brightness
-
Para obter o endereço MAC da placa de rede:
cat /sys/class/net/enp1s0/address
-
Para obter os atuais reguladores de escalonamento da CPU:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
E assim por diante ...