Drivers de dispositivo de computador são o que permitem que seu sistema operacional diga ao hardware dentro de seu computador e aos periféricos que você conectou o que fazer.
Como aplicativos e sistemas operacionais, esses drivers de hardware podem consistir em código-fonte disponível abertamente escondido atrás de blogs binários e um longo contrato de licença de usuário final.
Então, quais são as diferenças entre drivers de hardware fechados e de código aberto? Além disso, como essas diferenças afetam você?
O que é um driver de hardware?
Existem drivers de hardware para habilitar seu software do computador para se comunicar com o hardware. Às vezes eles vêm integrados ao sistema operacional do seu computador. Outras vezes, você mesmo precisa baixar e instalar os drivers.
Muitos drivers para Microsoft Windows estão disponíveis para download. Dispositivos de PC mais antigos geralmente vinham com CD-ROMs que incluíam os drivers para fazer seu hardware funcionar. Hardware significa qualquer coisa, desde um microfone USB até uma placa gráfica para jogos.
No Linux, os drivers geralmente vêm embutidos no sistema operacional, que vem com seus prós e contras. Na maioria das vezes, quando você conecta um novo dispositivo, ele simplesmente funciona. Este é especialmente o caso de hardware mais antigo que teve tempo de entrar no kernel do Linux. Mas às vezes, especialmente com dispositivos mais novos, seu computador não reconhece o novo dispositivo e os drivers compatíveis com Linux são menos propensos a estarem disponíveis para download online.
Por que muitos drivers são proprietários
Um componente de computador ou dispositivo externo pode parecer principalmente um produto físico, mas o software que alimenta o dispositivo geralmente torna um produto mais atraente do que outro. Muitas empresas veem o código que alimenta esse software como sua vantagem competitiva sobre outras empresas.
Em vez de disponibilizar esse código publicamente, eles permitem que apenas aqueles sem a empresa ou determinados contratados vejam o código. O código é considerado informação proprietária. O software resultante é um software proprietário, também conhecido como software de código fechado.
A competição entre AMD e NVIDIA é uma das mais acirradas em hardware de computador. A NVIDIA há muito tempo leva vantagem sobre os rivais e está menos inclinada a fornecer drivers de hardware de código aberto. O código dentro desses drivers pode, sem dúvida, permitir que um concorrente existente alcance ou facilite a entrada de uma nova empresa no campo sem desenvolver código do zero.
Sistemas operacionais proprietários possuem drivers proprietários
Há também uma necessidade aqui de abordar o elefante na sala. O Microsoft Windows é o sistema operacional de desktop mais usado no mundo. O Windows consiste em código-fonte fechado.
Os drivers de hardware se integram ao sistema operacional em um nível tão baixo. Desde o Windows 8, os computadores Windows só podem executar drivers assinados. Isso significa que os drivers devem ser certificados pela Microsoft e, como o Windows é proprietário, esses drivers também devem ser.
Talvez menos surpreendente, a Apple também certifica drivers no macOS. Mas no nível do kernel, o macOS é baseado em várias tecnologias de código aberto. O macOS também usa o sistema CUPS de código aberto para gerenciar impressoras. Mas se você estiver instalando um driver, provavelmente é proprietário.
O Chrome OS do Google é uma exceção aqui. O Chrome OS é tecnicamente proprietário, mas é construído sobre uma base de código aberto. Como o Chrome OS usa o kernel Linux, ele usa os drivers de código aberto e os blobs binários fechados que acompanham o kernel. Mas se você precisar executar hardware adicional que não seja compatível imediatamente, não é exatamente para isso que o Chrome OS se destina.
Qual é a necessidade de drivers abertos?
Isso significa que a questão dos drivers de código aberto versus drivers de código fechado afeta amplamente os usuários do Linux. Aqui a preferência é o oposto dos outros sistemas operacionais de desktop. Nenhuma empresa desenvolve e distribui o Linux, então não há uma empresa para certificar os drivers. O desenvolvimento do Linux está espalhado entre pessoas de todo o mundo, alguns trabalhando como voluntários e outros como funcionários de várias empresas. Funciona melhor para todos quando o código-fonte dos drivers está disponível.
As vantagens dos drivers de código aberto refletem muitas das vantagens do software de código aberto no geral.
- Colaboração de software mais fácil: Muitas pessoas podem desenvolver software juntas quando não há uma empresa atuando como guardiã do código-fonte.
- Softwares em que você pode confiar: Sem acesso ao código-fonte, você não sabe realmente o que um programa está fazendo.
- Maior privacidade: É raro que um software de código aberto rastreie o que você está fazendo, pois é fácil para alguém redistribuir outra cópia do software com o rastreamento removido.
- Longevidade do software: Quando uma empresa perde o interesse em um programa ou dispositivo, geralmente para de distribuí-los. O código-fonte aberto permite que qualquer outra pessoa continue disponibilizando o software.
No Linux, quando um driver é de código aberto, há uma chance maior de que tudo simplesmente funcione. Seu hardware também provavelmente conterá menos bugs.
Por exemplo, os usuários do Linux podem esperar animações de desktop mais suaves usando gráficos integrados à Intel do que gráficos NVIDIA placa, porque os desenvolvedores gráficos do Linux não têm acesso ao funcionamento interno do chip NVIDIA para resolver todos os insetos. As peculiaridades podem aparecer em lugares inesperados, como ao fechar um laptop para colocá-lo em repouso. Como resultado, os usuários do Linux que desejam uma experiência mais suave, mas também precisam de uma placa gráfica poderosa, podem acabar preferindo a AMD, uma empresa que fornece mais drivers de código aberto.
Se o Linux fosse mais amplamente usado em desktops, você provavelmente veria uma pressão maior nas empresas para liberar drivers abertos. No Linux, o código-fonte aberto é mais uma vantagem competitiva, um recurso ao qual muitos usuários dão peso ao tomar suas decisões de compra. Mas com os usuários de Linux representando uma porcentagem tão pequena do total de usuários de computador, a questão de tornar um driver de código aberto quase nunca surge. No Windows e no macOS, um driver de código aberto não será certificado.
Código aberto vs. Proprietário: Qual você deve usar?
Na maioria dos computadores, você não tem escolha. No Windows e no macOS, seus drivers são proprietários. No Chrome OS, independentemente de seus drivers serem abertos ou fechados, esse conhecimento é amplamente desconhecido e irrelevante para sua experiência.
Mas se você estiver usando Linux, essa questão é importante. A menos que você precise da energia extra que um driver proprietário pode fornecer, como para jogos, hardware com drivers de código aberto geralmente oferece uma experiência melhor. E esses drivers se alinham melhor com o espírito e a funcionalidade mais amplos que distinguem o Linux de outros sistemas operacionais.