El firmware debe ser considerado hardware y no software

Rodrigo Rodrigues da Silva pitanga en members.fsf.org
Mie Abr 14 04:50:28 UTC 2010


On 12-04-2010 10:04, hector rey wrote:
 > El firmware no es un regalito, es algo fundamental para el 
funcionamiento del hardware.  Sin firmware no funciona el hardware, y no 
estoy hablando de los dispositivos que te dan la posibilidad de 
actualizarlo externamente.  El 99% (y no se si me quedo corto) del 
hardware actual tiene firmware.

"El *sistema operativo* no es un regalito, es algo fundamental para el 
funcionamento del hardware. Sin *sistema operativo* no funciona el 
hardware y no estoy hablando de los dispositivos que te dan la 
posibilidad de actualizarlo externamente*, con un disco floppy*.  El 99% 
(y no se si me quedo corto) del hardware actual tiene *sistema operativo*."

Em 1983 esse discurso, análogo ao seu raciocínio anterior, seria bem 
plausível (talvez ainda seja). Se o argumento contido nele fosse levado 
a sério, hoje não teríamos o projeto GNU e, talvez, nem o software livre.

Resgatando o raciocínio do Felipe Sanches, um dispositivo de hardware 
que requeira firmware é um computador assim como qualquer outro. Assim 
como escrevemos código assembly para um processador AMD sem conhecê-lo 
internamente, por que não escrever assembly para um microcontrolador 
Broadcomm? Se fazemos engenharia reversa de protocolos para assegurarmos 
nossa liberdade, porque não fazer um processo de engenharia reversa que 
nos revele o funcionamento de um microcontrolador (resultando numa 
documentação de seus opcodes, por exemplo)? Sob esse aspecto, acredito 
que sua argumentação, no ponto da inviabilidade/dificuldidade técnica, 
seja inválida.

Concordo plenamente que o hardware privativo e o software contido nele 
representam ameaças equivalentes à ameaça do software proprietário 
(assim como vários aspectos que fogem à alçada do movimento software 
livre ameaçam nossa liberdade). No entanto, há uma diferença fundamental 
entre um dispositivo de hardware com firmware não modificável (escrito 
em ROM) e modificável (que deve ser carregado dinamicamente pelo 
driver): no segundo caso, nós *podemos*, com as ferramentas que temos a 
nosso alcance e como programadores do movimento software livre, 
modificá-lo; nós *podemos* ter um nível de controle maior (não total) 
sobre esse hardware. No primeiro caso, dentro da alçada do software 
livre, não podemos fazer nada (sim, acredito que devemos pensar em 
hardware livre, principalmente com o desenvolvimento e popularização de 
FPGA's - hardware será software?).

Há ainda uma classe mais problemática: hardware cujo firmware seja 
recarregável, mas persistente (não é preciso que o driver o carregue a 
cada inicialização), como todo processador intel mais recente - o kernel 
linux possui código para recarregar esse /microcode/, mas, até onde sei, 
não o distribui. Tendo a dizer que devemos atender essa classe assim 
como a de dispositivos com firmware carregado dinamicamente, pois 
*podemos* reescrevê-lo e recarregá-lo. No entanto, enquanto não há 
discussões mais claras sobre o assunto ou algum esforço real nessa 
direção, acho que vale a premissa mínima de não distribuí-lo caso seja 
proprietário.

-- 
Rodrigo Rodrigues da Silva
GNU LibreDWG maintainer
FSF Associate Member #7788
PoliGNU - Grupo de Estudos de Software Livre da Poli/USP


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