Qual é a relação entre os “domínios” dos drivers de dispositivos Linux?

Qual é a relação entre os “domínios” dos drivers de dispositivos Linux?

Enquanto leio sobre os drivers de dispositivos Linux e a API de gerenciamento de energia, continuo encontrando termos como "nível de sistema", "subsistema", "plataforma", "classe" e assim por diante.

Qual é a relação entre eles? O sistema é um subtipo de plataforma? Ou sistema e plataforma existem em paralelo sem relação de inclusão? Como a “classe” difere do “sistema”? Para que serve cada domínio (ou seja, se eu quiser implementar uma determinada funcionalidade, deve ser uma funcionalidade de nível de classe, ou funcionalidade de plataforma, ou alguma outra etc.)?

Resumindo, alguém pode me explicar o que são essas coisas diferentes?

Responder1

Estes são difíceis de definir. Geralmente, no contexto da enumeração de dispositivos,

  • Dispositivos de "plataforma" são itens normalmente encontrados em um PC ou em um Raspberry Pi.

    O kernel começa procurando por eles, porque o kernel foi compilado para rodar em um PC ou em um RPi. Alguns dos componentes da placa-mãe, CPU e memória se enquadram nesta categoria.

  • um "subsistema" é basicamente um grupo de drivers com funcionalidades semelhantes para hardware diferente.

    Os drivers individuais podem então, por sua vez, usar drivers de outro subsistema. Por exemplo, os drivers do subsistema "som" lidam com placas de som individuais e apresentam uma interface de placa de som comum, enquanto um driver pode usar o subsistema PCI para localizar a placa de som, independentemente do tipo de chip Southbridge usado.

  • um driver de "classe" lida com dispositivos de diferentes fornecedores que implementam uma interface comum.

    Isto é típico para dispositivos USB, onde existe, por exemplo, um padrão para dispositivos de armazenamento em massa e um único driver controla todos os dispositivos que afirmam ser compatíveis.

informação relacionada