sysfs
100%

Dispositivos · Lição 4

sysfs

Aprenda como o sysfs expõe o modelo ativo de dispositivos, drivers, barramentos e classes do kernel Linux em `/sys`.

sysfs é um sistema de arquivos virtual normalmente montado em /sys. Ele representa objetos do kernel e suas relações por meio de diretórios, links simbólicos e pequenos arquivos de atributos. Ferramentas de descoberta e gerenciadores de dispositivos o utilizam para compreender o modelo de dispositivos atual do kernel.

Navegação pelo Modelo de Dispositivos

Algumas visualizações importantes no nível superior são:

  • /sys/devices/: a hierarquia física e lógica dos dispositivos
  • /sys/class/: dispositivos agrupados por classe funcional, como bloco ou rede
  • /sys/bus/: barramentos, seus dispositivos e drivers
  • /sys/block/: uma visualização conveniente dos dispositivos de bloco
  • /sys/dev/: links indexados pelos números maiores e menores de dispositivos de caractere ou bloco

Muitas entradas fora de /sys/devices são links simbólicos para a hierarquia canônica. Resolva um link com readlink -f quando precisar do caminho pai real:

$ readlink -f /sys/class/block/sda

O nome do exemplo pode não existir em sistemas que usam outras interfaces de armazenamento.

Qual subárvore do sysfs contém a hierarquia principal de dispositivos do kernel?

Leitura de Atributos

Os arquivos de atributos expõem valores ou controles individuais. Para um dispositivo de bloco, alguns exemplos podem ser:

$ cat /sys/class/block/sda/dev
8:0
$ cat /sys/class/block/sda/ro
0
$ cat /sys/class/block/sda/size
1953525168

dev informa os números maior e menor do dispositivo. ro informa o indicador de somente leitura do dispositivo de bloco. Para dispositivos de bloco do Linux, size é convencionalmente expresso em setores de 512 bytes, independentemente do tamanho de setor físico do dispositivo. Consulte sempre a documentação da ABI do kernel para conhecer as unidades e o significado de um atributo específico.

O que o atributo dev de um dispositivo de bloco normalmente contém?

Relação entre `/sys` e `/dev`

/dev contém os nós que as aplicações abrem para a E/S dos dispositivos. /sys expõe relações entre objetos, propriedades, estados e controles selecionados. Um nó de bloco como /dev/sda pode ser associado a /sys/dev/block/8:0, que resolve para o objeto relevante do sysfs.

As duas interfaces se complementam. Nenhuma contém, sozinha, um inventário completo de todos os dados do hardware, e um dispositivo pode desaparecer enquanto é inspecionado.

Qual afirmação diferencia corretamente /sys de /dev?

Gravação Segura em Atributos

Alguns atributos do sysfs permitem escrita e podem alterar o estado de energia, a associação de drivers, o comportamento das filas, a autorização de dispositivos, LEDs ou outros controles ativos. Uma gravação de texto bem-sucedida pode causar efeitos imediatos no hardware ou nos serviços; ela não equivale a editar um arquivo de configuração persistente.

Leia a ABI documentada e o valor atual, identifique como tornar a configuração persistente e teste somente em um sistema autorizado. Nunca edite permissões recursivamente nem grave valores deduzidos em toda a árvore /sys.

Por que gravar em um atributo do sysfs pode ser operacionalmente significativo?

Lição concluída

Você concluiu sysfs

Agora você sabe usar o sysfs como uma visualização estruturada dos objetos ativos do kernel.

  • Navegue pelas visualizações de dispositivos, classes, barramentos, blocos e números de dispositivos.

  • Leia um atributo documentado por vez, usando as unidades corretas.

  • Relacione objetos do sysfs aos nós de /dev.

  • Trate atributos graváveis como interfaces de controle ativas.

Salve seu progresso

Crie uma conta gratuita para salvar esta lição e continuar em qualquer dispositivo.

Criar uma conta gratuita
Próxima Lição
Voltar para Dispositivos