sysfs - sysfs
sysfs é um pseudo sistema de arquivos fornecido pelo kernel Linux que exporta informações sobre vários subsistemas do kernel, dispositivos de hardware e drivers de dispositivo associados do modelo de dispositivo do kernel para o espaço do usuário por meio de arquivos virtuais . Além de fornecer informações sobre vários dispositivos e subsistemas do kernel, arquivos virtuais exportados também são usados para sua configuração.
O sysfs fornece funcionalidade semelhante ao mecanismo sysctl encontrado nos sistemas operacionais BSD , com a diferença de que o sysfs é implementado como um sistema de arquivo virtual em vez de ser um mecanismo de kernel construído para um propósito, e que, no Linux, os parâmetros de configuração sysctl estão disponíveis em / proc / sys / como parte de procfs , não sysfs que é montado em / sys / .
História
Durante o ciclo de desenvolvimento 2.5, o modelo de driver Linux foi introduzido para corrigir as seguintes deficiências da versão 2.4:
- Não existia nenhum método unificado de representar as relações driver-dispositivo.
- Não havia mecanismo de hotplug genérico .
- procfs estava abarrotado de informações não relacionadas ao processo.
O Sysfs foi projetado para exportar as informações presentes na árvore de dispositivos que, então, não sobrecarregariam mais o procfs. Foi escrito por Patrick Mochel. Maneesh Soni escreveu mais tarde o patch sysfs backing store para reduzir o uso de memória em sistemas grandes.
Durante o próximo ano de desenvolvimento 2.5, os recursos de infraestrutura do modelo de driver e driverfs começaram a se mostrar úteis para outros subsistemas. Os kobjects foram desenvolvidos para fornecer um mecanismo central de gerenciamento de objetos e o driverfs foi renomeado para sysfs para representar o agnosticismo de seu subsistema.
O Sysfs é montado no ponto de montagem / sys . Se não for montado durante a inicialização, você sempre pode montá-lo usando o comando: "mount -t sysfs sysfs / sys"
Ônibus suportados
- ACPI
- Exporta informações sobre dispositivos ACPI .
- PCI
- Exporta informações sobre dispositivos PCI e PCI Express .
- PCI Express
- Exporta informações sobre dispositivos PCI Express .
- USB
- Exporta informações sobre dispositivos USB .
- SCSI
- Exporta informações sobre dispositivos de armazenamento em massa , incluindo interfaces USB , PATA , SATA , SCSI , SAS e NVMe .
- Ônibus S / 390
- Como a arquitetura S / 390 contém dispositivos não encontrados em nenhum outro lugar, foram criados barramentos especiais:
- css : Contém subcanais (atualmente o único driver fornecido é para subcanais de E / S).
- ccw : Contém dispositivos conectados ao canal (acionados por CCWs ).
- ccwgroup : Dispositivos artificiais, criados pelo usuário e consistindo em dispositivos ccw. Substitui algumas das funcionalidades do chandev 2.4.
- iucv : dispositivos artificiais como dispositivos netiucv que usam da VM IUCV interface.
Sysfs e espaço do usuário
Sysfs é usado por vários utilitários para acessar informações sobre hardware e seu driver ( módulos do kernel ), como udev ou HAL . Scripts foram escritos para acessar informações obtidas anteriormente por meio de procfs , e alguns scripts configuram drivers de dispositivos e dispositivos por meio de seus atributos.