Esclarecendo a questão dos drivers: o problema do suporte a hardware
O dilema entre drivers de dispositivo livres e proprietários tem sido muito discutido ultimamente. Como minha primeira contribuição ao VOL, pretendo esclarecer de uma vez por todas este assunto que é mais complexo do que parece: por que a documentação do hardware é tão importante porém tão difícil de conseguir e o que podemos fazer quanto a isso?
Parte 3: Mas se a documentação é tão importante, por que é tão difícil de obter?
Como eu já disse, o projeto OpenBSD trabalha muito no sentido de suportar o hardware, e a prioridade número 1 deles é conseguir a documentação dos dispositivos. Porém muitas fabricantes de hardware têm uma resistência muito grande a liberar sua documentação. Algumas nem respondem aos pedidos (SiS, Broadcom). Outras acabam criando uma discussão interminável e nunca se consegue o que se quer. Nesses dois casos, tudo o que podemos fazer é continuar reclamando com as fabricantes.
Algumas fabricantes, no entanto, respondem com motivos pelos quais elas não podem (querem) liberar a documentação. Mas são sempre as mesmas desculpas esfarrapadas:
Há porém um outro grupo de fabricantes que requer o assino de um NDA (non-disclosure agreement) para liberar a documentação. Um NDA é um acordo de confidencialidade. Isso significa que o assinante concorda em manter a documentação em sigilo e só utilizá-la para si. Isso é mal, muito mal. Por quê? Porque o produto final é um mistério. Como ninguém mais tem acesso à documentação, nós acabamos com um driver que só pode ser mantido a muito custo. Trabalhar com um driver desses exige o uso de engenharia reversa.
E então vem a pergunta "mas quem concorda em assinar esses NDAs"? Em primeiro lugar, quem não liga para software livre: as empresas de software proprietário (Microsoft). Depois, vêm as distribuidoras de software livre que, apesar de trabalharem com software livre, no fundo só querem ganhar dinheiro e então não ligam a mínima (Red Hat).
Mas o pior de tudo não são essas empresas, afinal não se poderia esperar nada mais delas. O pior é quando os próprios desenvolvedores do Linux ou do FreeBSD concordam em assinar um NDA! Aí a casa cai, porque nós perdemos a chance de convencer essas fabricantes a liberarem a documentação. Quando nos dirigimos a elas, elas dizem que já fizeram NDAs com a comunidade do software livre e não vão nos dar a documentação.
É uma pena que alguns desenvolvedores vendam a liberdade tão facilmente, no desespero de melhorar o suporte a hardware do seu sistema. Se ao invés disso eles se unissem ao esforço do projeto OpenBSD de obter a documentação do hardware, nós provavelmente conseguiríamos muito mais do que já conseguimos (e acredite, nós conseguimos convencer diversas fabricantes - hoje, o OpenBSD é o sistema operacional livre com o melhor suporte nativo - sem blobs e sem ndiswrapper - a controladoras de rede Wireless por exemplo).
Esses acordos são comparáveis ao acordo entre a Microsoft e a Novell. A intenção de melhorar a compatibilidade entre os sistemas é boa, mas agora a Microsoft tem um motivo para dizer que o Linux infringe sua "propriedade intelectual". Além do que, se a Microsoft realmente quisesse melhorar a inter-operabilidade, ela liberaria as documentações das suas APIs, seus formatos de arquivo, seus protocolos, etc. Do mesmo modo, a intenção de escrever um driver livre é boa, mas agora as fabricantes têm um motivo para não liberarem a documentação.
Há ainda fabricantes que oferecem drivers completamente livres (Intel, IBM), mas não liberam a documentação. No fundo, a situação é a mesma que com os drivers sob NDA: não temos a documentação e por isso não podemos manter os drivers facilmente. Esse tipo de driver e os blobs nunca deveriam ser aceitos por ninguém, pois além de representarem um risco de segurança ainda por cima acabam com nossa liberdade. Infelizmente o FreeBSD e muitas distribuições de Linux acabam por aceitar esses tipos de drivers na esperança de oferecerem mais facilidade, mas no fundo só estão minando a liberdade de todos, abrindo problemas de segurança e estabilidade, favorecendo essas fabricantes e deixando o usuário na mão (se o usuário reclamar, não se pode fazer nada porque ou o driver é fechado ou não há documentação).
Algumas fabricantes, no entanto, respondem com motivos pelos quais elas não podem (querem) liberar a documentação. Mas são sempre as mesmas desculpas esfarrapadas:
- Motivos de "propriedade intelectual":
- Patentes - não importam, elas são documentos abertos! A não ser que eles estejam infringindo patentes de terceiros...
- Direitos de autoria (Copyrights) - não temos como infringir os direitos deles usando a documentação.
- Marca Registrada - não se aplica.
- Segredo comercial - o NDA só se aplica à pessoa com os documentos! Conclusão: tudo mentira!
- Negócios ("precisamos proteger os nossos segredos"):
Elas têm a impressão de que podem perder sua vantagem tecnológica se abrirem a documentação, mas isso não é verdade. As fabricantes taiwanesas são a prova viva disso. Elas nos entregam de bandeja toda a documentação, e no entanto vão muito bem de negócios (a Realtek, por exemplo, é dona de aproximadamente 90% do mercado de controladoras ethernet off-board).
- Obscuridade (isto é, não revelar os bugs que o hardware tem):
Na verdade elas nunca dão esta desculpa, mas depois de anos de experiência o projeto OpenBSD percebeu que todos os chips nos quais eles tiveram que fazer engenharia reversa eram mal-projetados.
- A "desculpa da FCC":
Algumas fabricantes de controladoras de rede Wi-Fi (e outros dispositivos que funcionam via rádio-freqüência) alegam que a FCC, comissão estadunidense responsável por regular dispositivos de comunicação, limita o que esses dispositivos podem fazer e, portanto, elas não podem nos dar a documentação para que nós não possamos modificá-los e fazê-los funcionar em outras freqüências. Mas a FCC nunca atacou as fabricantes que liberam a documentação. Mesmo que nós os modificássemos, os dispositivos de rádio não poderiam ser prejudiciais. E o melhor é que, se os programadores quisessem, já poderiam modificar o funcionamento deles porque eles permitem atualização de firmware!
- Usuários que defendem as fabricantes:
Nos fóruns muitos usuários dizem que as fabricantes não podem liberar os documentos por vários motivos que nunca foram sequer citados pelas próprias fabricantes. (???)
Há porém um outro grupo de fabricantes que requer o assino de um NDA (non-disclosure agreement) para liberar a documentação. Um NDA é um acordo de confidencialidade. Isso significa que o assinante concorda em manter a documentação em sigilo e só utilizá-la para si. Isso é mal, muito mal. Por quê? Porque o produto final é um mistério. Como ninguém mais tem acesso à documentação, nós acabamos com um driver que só pode ser mantido a muito custo. Trabalhar com um driver desses exige o uso de engenharia reversa.
E então vem a pergunta "mas quem concorda em assinar esses NDAs"? Em primeiro lugar, quem não liga para software livre: as empresas de software proprietário (Microsoft). Depois, vêm as distribuidoras de software livre que, apesar de trabalharem com software livre, no fundo só querem ganhar dinheiro e então não ligam a mínima (Red Hat).
Mas o pior de tudo não são essas empresas, afinal não se poderia esperar nada mais delas. O pior é quando os próprios desenvolvedores do Linux ou do FreeBSD concordam em assinar um NDA! Aí a casa cai, porque nós perdemos a chance de convencer essas fabricantes a liberarem a documentação. Quando nos dirigimos a elas, elas dizem que já fizeram NDAs com a comunidade do software livre e não vão nos dar a documentação.
É uma pena que alguns desenvolvedores vendam a liberdade tão facilmente, no desespero de melhorar o suporte a hardware do seu sistema. Se ao invés disso eles se unissem ao esforço do projeto OpenBSD de obter a documentação do hardware, nós provavelmente conseguiríamos muito mais do que já conseguimos (e acredite, nós conseguimos convencer diversas fabricantes - hoje, o OpenBSD é o sistema operacional livre com o melhor suporte nativo - sem blobs e sem ndiswrapper - a controladoras de rede Wireless por exemplo).
Esses acordos são comparáveis ao acordo entre a Microsoft e a Novell. A intenção de melhorar a compatibilidade entre os sistemas é boa, mas agora a Microsoft tem um motivo para dizer que o Linux infringe sua "propriedade intelectual". Além do que, se a Microsoft realmente quisesse melhorar a inter-operabilidade, ela liberaria as documentações das suas APIs, seus formatos de arquivo, seus protocolos, etc. Do mesmo modo, a intenção de escrever um driver livre é boa, mas agora as fabricantes têm um motivo para não liberarem a documentação.
Há ainda fabricantes que oferecem drivers completamente livres (Intel, IBM), mas não liberam a documentação. No fundo, a situação é a mesma que com os drivers sob NDA: não temos a documentação e por isso não podemos manter os drivers facilmente. Esse tipo de driver e os blobs nunca deveriam ser aceitos por ninguém, pois além de representarem um risco de segurança ainda por cima acabam com nossa liberdade. Infelizmente o FreeBSD e muitas distribuições de Linux acabam por aceitar esses tipos de drivers na esperança de oferecerem mais facilidade, mas no fundo só estão minando a liberdade de todos, abrindo problemas de segurança e estabilidade, favorecendo essas fabricantes e deixando o usuário na mão (se o usuário reclamar, não se pode fazer nada porque ou o driver é fechado ou não há documentação).
Eu tenho uma outra proposta: voltemos a usar as máquinas de escrever, no máximo as modernissimas máquinas de escrever elétricas.
Para que tecnologia? Para que computador? Para que software livre? Vamos voltar a enviar cartas, ouvir fitas K7 (CD's nunca mais!)
Sou usuário do Ubuntu e confesso que gostei mto da iniciativa da DELL.
A DELL simplesmente visualizou que existia uma nova demanda "PC's OEM com Linux (td configurado, instalado e funcionando perfeitamente)".
A Canonical tbm vende suporte!
Pelo seu artigo uma revolução anarquista seria a saída! Ninguém é dono de nada! Todo mundo faz o q quer! E blah blah blah blah...
Ideais politicos são para serem discutidos em outro local...
Saudações...