Sysfs

sysfs é um pseudo sistema de arquivos fornecido pelo núcleo do Linux que exporta informações sobre vários subsistemas do núcleo, dispositivos de hardware e controladores de dispositivos associados a partir do modelo de dispositivos do núcleo para o espaço do usuário, por meio de arquivos virtuais.[1] Além disso para fornecer informações sobre vários dispositivos e subsistemas do núcleo, os arquivos virtuais exportados também são utilizados para sua configuração.

O sysfs fornece funcionalidade similar ao mecanismo do sysctl encontrado em sistemas operacionais BSD, com a diferença que o sysfs é implementado como um sistema de arquivos virtual em vez de ser apenas um mecanismo embutido no núcleo do sistema par essa finalidade, e assim, no Linux, os parâmetros de configuração do sysctl são disponibilizados em /proc/sys/ como parte do procfs, não do sysfs que é montado em /sys/.[2]

História

Durante o ciclo de desenvolvimento 2.5, o modelo de driver do Linux foi introduzido para corrigir várias deficiências da versão 2.4:

  • Nenhum método unificado de representação de relacionamentos de driver de dispositivo existia;
  • Não havia nenhum mecanismo de hotplug genérico;
  • procfs era confuso com muitas informações não-processo.

O sysfs é projetado para exportar as informações presentes na árvore de dispositivos que então não amontoariam mais o procfs. Ele foi escrito por Patrick Mochel.[3][4] Maneesh Soni mais tarde escreveu o patch de armazenamento anterior do sysfs para reduzir o uso de memória em sistemas grandes.

Durante ano seguinte do desenvolvimento 2.5, as capacidades de infra-estrutura do modelo de driver e do driverfs, anteriormente chamados ddfs, começaram a revelar-se útil para outros subsistemas.[5][6] kobjects foram desenvolvidos para fornecer um mecanismo central de gestão de objetos e o driverfs foi renomeado para sysfs para representar o seu agnosticismo de subsistema.

Sysfs é montado sob o ponto de montagem /sys.

Barramentos suportados

PCI
Exporta informações sobre dispositivos PCI.
USB
Contém dispositivos USB e hosts USB.
Barramentos S/390
Como a arquitetura do S/390 contém dispositivos não encontrados em outros lugares, 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 a interface IUCV da VM.

Sysfs e o espaço de usuário

O Sysfs é usado por vários utilitários para acessar informações sobre o hardware e o seu driver (módulos do núcleo), como o udev ou o HAL. Scripts foram escritos para acessar informações previamente obtidas via procfs, e alguns scripts configuram drivers de dispositivos e os dispositivos através de seus atributos.

Ver também

Referências

  1. Patrick Mochel and Mike Murphy. «sysfs - _The_ filesystem for exporting kernel objects». kernel.org 
  2. SUSE. «sysctl man page». FreeBSD. sysctl is used to modify kernel parameters at runtime. The parameters available are those listed under /proc/sys/. Procfs is required for sysctl support in Linux. You can use sysctl to both read and write sysctl data. 
  3. Torvalds, Linus (18 de outubro de 2002). «Linux v2.5.44 - and offline for a week» 
  4. Torvalds, Linus (4 de novembro de 2002). «Linux v2.5.46» 
  5. Mochel, Patrick (17 de outubro de 2001). «[RFC] New Driver Model for 2.5» 
  6. Jansen, Tim (1 de novembro de 2001). «Re: [PATCH] 2.5 PROPOSAL: Replacement for current /proc of shit.» 

Ligações externas

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.