firmwares proprietários e estágio atual do "Free Hardware"

Felipe Sanches felipe.sanches en gmail.com
Jue Jul 2 04:08:00 UTC 2009


Durante o FISL (Fórum Internacional de Software Livre) semana passada em
Porto Alegre, conversei pessoalmente com nosso amigo Alexandre Oliva sobre
algumas idéias.

Recentemente comecei a utilizar uma distro 100% livre (gNewSense com kernel
Linux-Libre). Sinto que dei um passo importante rumo à liberdade de
software. Mas isso me trouxe uma percepção mais clara sobre a problemática
do hardware secreto e restrito. Em particular, a questão dos firmwares
proprietários me levou a filosofar um pouco sobre o que é aceitável e o que
não é.

E no momento em que concluí que hardware proprietário é quase tão
problemático quanto firmware proprietário percebi que há 2 caminhos a se
seguir: 1) aceitar o uso de firmwares proprietários da mesma forma que
aceitamos o uso de hardwares proprietários ou 2) começar a correr atrás de
hardwares livres que possam ser inspecionados, aprimorados, compartilhados.

Obviamente prefiro seguir pelo caminho da segunda opção.

Durante minha breve experiência universitária (os últimos 6 anos) tive
contato com tecnologias de hardware reconfigurável, como as FPGAs. Trata-se
de chips de hardware genérico que pode ser programado para se transformar em
qualquer hardware que o designer especifique usando linguagens de descrição
de hardware como VHDL ou Verilog, por exemplo. Há obviamente o limite de
complexidade do circuito em função da quantidade de unidades lógicas
disponíveis no chip de FPGA empregado. Para construir circuitos mais
complexos é necessário utilizar chips de FPGA com um número maior de
unidades lógicas.

Já existe uma certa quantidade de hardwares livres sendo distribuídos na
Internet. Ou seja, hardwares cuja descrição ("código fonte")  é
disponibilizada sob alguma licença livre. Há, por exemplo, o site
opencores.org que é algo similar a um "sourceforge.net para hardware".

Eu gostaria de propor um projeto. Algo como um "Projeto GNU para Harware".
Ainda precisaríamos de um nome criativo, claro. Mas seria similar em
princípio, só que voltado para a criação de uma plataforma de hardware 100%
livre que sirva de infraestrutura para sistemas de software 100% livre.
Sendo assim, uma das metas primárias do projeto seria a capacidade de
hospedar uma distribuição GNU/Linux como a gNewSense, por exemplo.

Teríamos que pesquisar as placas de FPGA atualmente existentes e imagino que
o mais provável seria projetarmos nossa própria placa, pois assim poderíamos
publicar todo o esquemático sob uma licença livre. Apenas como referência,
alguns exemplos de projetos que já divulgaram esquemáticos de eletrônica sob
licenças livres são: x0xb0x, arduino e (f)uzebox. Precisaríamos fazer o
mesmo para um projeto de placa-mãe contendo um chip de FPGA.

Outro caminho possível seria uma plataforma inicialmente mista contento
tanto hardware proprietário quanto hardware livre. Esta estratégia seguiria
o exemplo do próprio Projeto GNU, que foi criado por meio da substituição
gradual de cada componente proprietário do sistema. Para tal, poderíamos
projetar uma placa de extensão (PCI talvez?) contendo a FPGA na qual
faríamos o desenvolvimento dos módulos de hardware livre e configuraríamos
nosso sistema para gradualmente substituir seus drivers para que operem os
dispositivos de hardware livre conforme estes forem sendo desenvolvidos. É
possivel que placas desse tipo já existam. Precisamos pesquisar a
viabilidade delas para nosso propósito.

Este projeto dependeria também em parte de alguns projetos de software
livre. Por exemplo, hoje em dia não há (até onde sei) solução em software
livre para carga de FPGAs. O único software desse tipo que roda em sistema
GNU/Linux é o da Xilinx (fabricante de chips de FPGA) mas este é um software
proprietário. Talvez seja o caso da FSF adicionar esta demanda à sua High
Priority Projects List.

Uma meta a longo prazo seria especificar  métodos para interação
hardware-software. Ou seja, uma convenção de chamadas que permitisse ao
linker vincular chamadas de função (feitas pelo software) a otimizações de
algoritmos implementados em hardware e possivelmente instanciados
dinamicamente na FPGA. Este seria um dos benefícios do uso de hardware
reconfigurável. Precisamos pesquisar a viabilidade tecnológica dessa idéia.

Por fim, imagino que um princípio que deveríamos tentar seguir é a
independência de fabricante. Ou seja, deveríamos adotar módulos de hardware
portáveis que não nos tornem dependentes dos chips de FPGA fronecidos por um
único fabricante, como acontece com os soft-cores NIOS II e MicroBlaze.

Seria muito interessante tentar criar uma distro de hardwares livres a
partir duma seleção das descrições de hardware disponíveis hoje na internet
(como no site opencores.org) e como uma forma de medir qual estado de
evolução nos encontramos no momento rumo a uma plataforoma de hardware 100%
livre.

Caso eu lembre de mais algum detalhe eu envio um novo email. Por enquanto,
eu gostaria de ouvir comentários e sugestões da comunidade.

até logo,
Felipe "Juca" Sanches
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://www.fsfla.org/pipermail/discusion/attachments/20090702/0f3c27a1/attachment.htm 


Más información sobre la lista de distribución Discusion