Por que o arquivo do driver do Linux é muito menor do que no Windows?

0

Recentemente eu instalei um driver de dispositivo gráfico no Linux, descobri que são apenas dezenas de KB. Mas isso é dezenas de MB no Windows. Eu quero saber porque?

    
por Matthewgao 21.06.2013 / 08:04

2 respostas

1

Os drivers do kernel para o Linux (os arquivos .ko) tratam apenas o acesso ao hardware, bem como algumas funcionalidades básicas.

Para drivers gráficos, isso seria

  • modo de texto
  • modo gráfico framebuffer (incluindo aceleração 2D simples como "copie esta área")
  • uma interface para a fila de comandos de renderização

tudo isso pode ser implementado em alguns kilobytes, especialmente quando outros componentes são reutilizados.

Operações complexas como renderização OpenGL, compilação e envio de Shader, etc. não são tratadas no kernel, pois isso prejudicaria a estabilidade do sistema. Em vez disso, elas são tratadas em um processo separado, geralmente o servidor X ou um programa que usa gráficos 3D, e uma lista de comandos é enviada ao driver, que simplesmente passa para o cartão. Novamente, esse driver reutiliza componentes com muita força.

No Windows, a filosofia é espremer tudo isso no módulo do kernel (.sys), já que não há benefícios da componentização (os vários fornecedores geralmente não trabalham juntos).

    
por 07.11.2013 / 16:28
0

bem, isso seria porque a maioria dos arquivos de driver necessários realmente estará lá no Linux, então é por isso que não são necessários muitos arquivos para esse dispositivo gráfico. onde, como no caso do Windows, esses drivers de dispositivo podem não estar incluídos no núcleo, e é por isso que mais arquivos de driver são necessários. Por isso, tamanho maior.

    
por 21.06.2013 / 13:55

Tags