Entradas em sysfs pode ser classificado com base no tipo de barramento, tipo de objeto, tipo de dispositivo, relacionamentos entre pais/filhos, etc. Symblinks auxilia na redução de redundâncias.
O que vamos cobrir?
Neste artigo, exploraremos o sysfs FileSystem no Linux. Vamos começar com uma visão geral do sysfs.
Visão geral do sysfs Sistema de arquivo
O SYSFS foi introduzido no Linux pela primeira vez no kernel versão 2.6.0.
O sysfs é um sistema de arquivos virtual no Linux. Isso significa que os arquivos em sysfs Não reside em um disco ou em qualquer mídia física. No entanto, o conteúdo dos sistemas de arquivos é armazenado na memória. Originalmente, sysfs foi baseado no RAMFS e foi chamado de DDFS (sistema de arquivos de driver de dispositivo).
Sysfs envia dados para o espaço do usuário usando arquivos virtuais. Esses dados compreendem dados sobre vários subsistemas de kernel, dispositivos de hardware e drivers de dispositivo associados.
Geralmente, sysfs está montado no /sys partição e é montado automaticamente pelo sistema. Além disso, ele pode ser montado manualmente na inicialização usando o fstab arquivo:
$ MONT -T SYSFS SYSFS /SYS
Do comando anterior, observamos que o sysfs está montado em /sys. Este é o local padrão onde o sysfs está montado em.
A hierarquia SYSFS
Sysfs é um aglomerado de arquivos, pastas e symblinks. A maioria dos arquivos dentro /sys são somente leitura. Alguns arquivos também são graváveis, o que ajuda na modificação das variáveis do kernel. Symblinks são amplamente utilizados para vincular entradas em toda a árvore do sistema de arquivos.
Recomendamos usar o comando "árvore" para ver uma visão completa deste diretório. Em nosso sistema, o comando "árvore" mostra um total de 9480 diretórios e 38635 arquivos, que é uma extensa coleção de arquivos e diretórios.
No nível superior, 11 principais subdiretos são criados na inicialização do sistema. Esses subdiretórios são representações dos principais subsistemas registrados com o sysfs. Na inicialização, esses subsistemas são registrados no núcleo Kobject. Depois que a inicialização é feita, eles começam a encontrar objetos registrados em seus diretórios correspondentes.
Arquivos e subdiretórios do sistema de arquivos /sys
Vamos agora ver alguns arquivos e subdiretórios do /sys sistema de arquivos e discuta seu propósito básico. Os subdiretos virtuais mais importantes no nível superior de /sys são blocos, ônibus, hipervisor, classe, dispositivos, kernel, firmware, módulo e energia.
1. /sys/bloco: Possui um symblink e diretórios para cada dispositivo de bloco descoberto no sistema. Esses symblinks apontam para seus respectivos diretórios sob o diretório /sys/dispositivos. Existem muitas subdiretas dentro aqui:
Esses dispositivos de bloco, mostrados na cor ciana, têm atributos contendo informações sobre as partições. Exemplos desses subdiretos são SDA, SDB, etc.
2. /sys/ônibus: Um barramento é um meio/canal entre um processador e um dispositivo ou dispositivos. Exemplos de tipos de barramento incluem PCI, PCMCIA, SCSI ou USB. Para cada tipo de ônibus no kernel, há um subdiretório que reside no /sys/ônibus diretório. Cada um desses subdiretores tem mais dois subdiretos: dispositivos e drivers.
i) Dispositivos: ele contém links simbólicos nas entradas em /sys /dispositivos (a árvore de dispositivo global) para cada dispositivo descoberto no barramento.
ii) Driver: Ele contém um subdiretório para cada driver de dispositivo carregado no barramento. Esses subdiretos contêm atributos para gerenciar parâmetros e links simbólicos do driver.
3. /sys/classe: Uma aula é uma visão de alto nível de um dispositivo. Este diretório contém ainda mais um nível de subdiretos para cada classe de dispositivos registrados no sistema. Essas classes podem ser terminais, dispositivos de rede, dispositivos de som, etc. Esses subdiretos contêm links simbólicos para cada dispositivo em uma classe. Esses symblinks apontam para as entradas no /sys/dispositivos diretório.
4. /sys/classe/rede: Todo symlink neste diretório representa qualquer um dos dispositivos de rede reais ou virtuais, que são visíveis no espaço de nome de rede do processo acessando o diretório. Todo desses symblink aponta para as entradas no /sys/dispositivos diretório.
5. /sys/dispositivos: O /sys/dispositivo O diretório contém toda a árvore de dispositivos do kernel na visualização do sistema de arquivos. Inclui cada dispositivo físico encontrado pelos tipos de barramento registrados no kernel.
6. /sys/firmware: Ele contém interfaces para gerenciar objetos e atributos que são específicos de firmware. Aqui, o firmware é um código executado na inicialização do sistema. Por exemplo, a plataforma pode ser X86 BIOS, OpenFirmware e IA64. Existem muitos arquivos na pasta EFI como exemplo.
Saída de amostra:
$ LS Firmware/Efi/
config_table ESRT FW_VENDOR SYSTAB SYSTAB
efivars fw_platform_size mok-variables Runtime-map vars
Cada um desses arquivos contém algum valor para um parâmetro.
7. /sys/kernel: Existem muitos arquivos e pastas neste subdiretório que fornecem dados sobre o kernel ativo.
8. /sys/módulo: Para cada módulo carregado no kernel, há um subdiretório que reside neste diretório. A nomeação desses subdiretos é baseada no nome do kernel correspondente. Dentro de cada diretório de módulos, há um subdiretório chamado seções que contêm atributos sobre as seções do módulo. Muitos arquivos são como CORESize, Initsize, InitState, Srcversion, etc. Da mesma forma, existem muitos subdiretos, como drivers, titulares, notas, parâmetros, etc.
9. /SYS/POWER: Representa o subsistema de energia e tem apenas dois atributos: disco e estado. O método pelo qual o sistema irá dormir/suspender o estado é controlado por "disco". "Estado" permite um poder para ganhar um estado de baixa potência.
Conclusão
Neste guia, aprendemos sobre os sistemas de arquivos SYSFS no Linux e também vimos vários subdiretos e seus propósitos. O SYSFS contém uma grande quantidade de dados. Mais informações podem ser encontradas nas páginas do homem e também nesta página, que está hospedada no kernel.org