qual é a diferença entre o driver de dispositivo e o módulo do kernel [duplicado]

9

Eu sei que o driver é um software que pode se comunicar com o hardware para controlar o dispositivo que está conectado ao computador. Ao mesmo tempo, o módulo do kernel é um pequeno código que pode ser inserido no kernel para melhorar o desempenho do kernel. . Eu quero perguntar como o driver funciona junto com o kernel e qual é a principal diferença entre o driver de dispositivo e o módulo do kernel, e também como eles funcionam?

    
por harianja 03.05.2014 / 23:36

2 respostas

8

Weeeeellll .....

Um módulo do kernel é algo muito específico: uma parte do kernel que está sendo carregada como um módulo (ou seja, dinamicamente), depois que o kernel principal é iniciado. Isso pode ser qualquer coisa.

Para usar o hardware, você precisa de algumas partes que residem principalmente no kernel por dois motivos:

  1. Para poder executar operações de hardware que não podem ser feitas ou que são impraticáveis no espaço do usuário ou para manter o estado fora do escopo do processo.
  2. Porque seria muito ineficiente fazer no espaço do usuário

Para gerenciar a maioria dos hardwares, você precisa de uma contraparte do espaço do kernel. Isso pode ser compilado como parte do kernel ou como um módulo que é carregado posteriormente sob demanda. Com os módulos, é possível não carregar todos eles.

Mas os módulos não precisam estar relacionados apenas ao hardware. Existem módulos que apenas adicionam funcionalidade como (por exemplo) ipv6, opções de firewall, etc.

Um driver, por outro lado, é algo que fornece acesso fácil ao hardware em geral. Geralmente incorpora todas as coisas específicas do hardware e expõe uma API genérica. E por genérico quero dizer algo que é genérico o suficiente, mas não necessariamente global ou padrão. Por exemplo. um driver para placas gráficas ATI exporá uma API comum para todas as placas ATI, mas pode não ser o mesmo que outras placas.

Os drivers podem ser feitos no espaço do usuário, no kernel (embutido ou módulo) ou podem ter pernas em ambas as extremidades. Por exemplo, os drivers da placa gráfica de nowdays têm uma parte no kernel e uma parte no espaço do usuário (por exemplo, o servidor X, DRI, etc)

    
por 04.05.2014 / 00:07
-1

Um módulo é apenas um monte de código que pode ser carregado no Linux.
No Linux: - Frequentemente, os módulos serão drivers de dispositivo (ou seja,) o software que aciona alguma peça específica de hardware (dispositivo). No entanto, existem drivers e módulos que não controlam o hardware. Por exemplo, alguns sistemas Linux podem ter suporte a IPv6 como um módulo carregável. Ou sistemas de arquivos como o ISO-9660 podem ser drivers ou módulos.
Para mais detalhes: - link

    
por 10.05.2014 / 22:12