[pt] Recupere sua liberdade, com Linux-2.6.33-libre

info en fsfla.org info en fsfla.org
Lun Mar 1 06:08:58 UTC 2010


Ciberespaço, 1º de março de 2010---Linux não é Software Livre desde
1996, quando o Sr Torvalds aceitou as primeiras peças de Software
não-Livre na distribuição de Linux que publica desde 1991.  Em todos
esses anos, enquanto esse kernel cresceu por um fator de 14, a
quantidade de firmware não-Livre exigida por drivers do Linux cresceu
por um alarmante fator de 83.  Nós, usuários de Software Livre,
precisamos unir forças para reverter essa ameaça, e parte da solução é
o Linux-libre, cuja versão 2.6.33-libre foi recentemente publicada
pela FSFLA, trazendo consigo liberdade, grandes melhorias e planos
para o futuro.


== História

Todo o firmware no Linux-1.3.0 era Software Livre.  A pouca relevância
que o sistema operacional GNU/Linux tinha em 1995 foi suficiente para
que alguns distribuidores de hardware revelassem os detalhes de seu
hardware, ou mesmo oferecessem todo o software necessário para fazê-lo
funcionar, sob termos que respeitavam as liberdades essenciais dos
usuários.  Eles sabiam que Linux, já licenciado sob a GNU GPLv2, não
teria drivers para seus componentes de outra forma.

Ao longo do ano seguinte, Sr Torvalds mudou sua política e começou a
aceitar no Linux firmware só disponível em forma binária.  Por causa
dessa decisão, GNU/Linux deixou de ser um incentivo para fornecedores
de hardware respeitarem as liberdades essenciais dos usuários.  Desde
que desenvolvedores do Linux abriram mão das defesas oferecidas pela
GPL, quase todos os fornecedores decidiram manter apenas para si
mesmos o controle sobre os sempre crescentes computadores que se
passam por periféricos.

Uns 143KB de código objeto disfarçados de código fonte estavam
presentes no tarball comprimido de 4.7MB do Linux-2.0, publicado em
junho de 1996.  Uns 6 anos depois, havia 1.3MB de firmware não-Livre
se escondendo no tarball comprimido de 26MB do Linux-2.4.19.  No
Linux-2.6.33, todas essas peças e outras mais, somando mais de 2MB,
estão num subdiretório criado há uns 2 anos para conter firmware no
Linux.  Outros 650KB ainda disfarçados de fontes foram recentemente
agregados ao subdiretório “staging”, e outros 9.2MB (duplicatas
removidas) vivem num repositório separado, criado para futuramente
substituir o subdiretório de firmware no Linux.


== Perspectiva

A maior peça única de firmware não-Livre no repositório linux-firmware
hoje tem 1.25MB.  Nos anos 1980, a metade desses bytes era considerada
memória suficiente para qualquer aplicação num computador pessoal.
Foi então que Richard Stallman começou a trabalhar no GNU, quando
sistemas operacionais inteiros eram menores que isso.  Ele se deu
conta de que usuários deveriam ter direito às quatro liberdades
essenciais sobre todo o software que executavam nos computadores,
mesmo quando eram muito menos poderosos que os periféricos de hoje.

Alcançamos isso, um sistema operacional Livre para computadores de
propósito geral, mas durou apenas alguns anos.  O kernel que ofereceu
a peça que faltava no sistema operacional GNU não é mais Software
Livre há mais de uma década e pede aos usuários que instalem um número
crescente de programas não-Livres não incluídos nele.


== Progresso

Damos as boas vindas, aplaudimos e agradecemos aos vários esforços
recentes que resultaram em firmware Livre para vários dispositivos:
Atheros contribuiu firmware Livre para seus cartões de rede sem fio
ar5k e ar9k; especialistas em engenharia reversa desenvolveram
firmware Livre para alguns cartões de rede sem fio b43 da Broadcom;
outros desenvolveram o driver Livre nouveau para cartões de vídeo da
nVidia e, mais recentemente, completaram a tarefa com firmware Livre
para eles, infelizmente um pouquinho tarde demais para que as últimas
peças entrassem no Linux-2.6.33.

Porém, assim como RMS, percebemos que desenvolver Software Livre não é
suficiente para estabelecer liberdade para os usuários de GNU/Linux.
Também precisamos ensiná-los a valorizar sua liberdade e a reconhecer
e rejeitar Software não-Livre.  De outro modo, produtos que exijam que
usuários cedam sua liberdade continuariam a encontrar compradores
interessados.

Há alguns anos, a comunidade de Software Livre percebeu que Linux não
era mais Software Livre e iniciou vários esforços para resolver esse
problema.  Um deles, nascido sem nome no gNewSense, foi chamado
Linux-libre no BLAG.  Depois que assumimos a responsabilidade por ele,
além de remover os componentes não-Livres do Linux, trocamos
requisições de firmware não-Livre por mensagens que informam usuários
de que o hardware em questão é uma armadilha.

Nossa esperança é que mais usuários usarão essa versão Livre de Linux,
presente em várias distribuições de GNU/Linux-libre, para descobrir
sobre componentes de hardware que não respeitam sua liberdade, dizer
aos fornecedores como estão insatisfeitos com isso, e usar sua
liberdade e poder de escolha para apoiar fornecedores que respeitem
seus clientes.

Grandes empresas, governos ou muitos usuários trabalhando juntos,
aplicando uma pequena pressão no ponto certo dos bolsos dos
fornecedores, frequentemente conseguem que mudem de ideia e
voluntariamente respeitem a liberdade dos clientes.  Quando não
funciona, ainda podemos ajudar, participando em ou doando fundos para
esforços de engenharia reversa.  Fabricantes que voluntariamente
respeitam nossa liberdade merecem maior apreço, mas um produto que
funciona em liberdade, apesar dos esforços do fabricante, é muito
melhor que nada.


== Que há de novo no Linux-2.6.33-libre

Não mantemos os fontes do Linux-libre diretamente.  Em vez disso,
mantemos scripts de “deblobbing” que limpam os “fontes” do Linux,
assim produzindo os fontes do Linux-libre.  A maior melhoria nessa
geração do Linux-libre, a quarta desde que nos envolvemos, consistiu
em tornar os scripts de deblobbing mais eficientes.

Como acumulamos milhares de padrões para reconhecer blobs, sequências
que parecem blobs mas não são, requisições de firmware não-Livre e
documentação que induz usuários a instalá-lo, rodar o script em GNU
sed gerado para localizar e remover blobs ficou custoso demais para
alguns usuários: em versões recentes do Linux-libre, o GNU sed
demorava uns 15 minutos e tomava mais de 2GB de RAM para compilar
todos os padrões no script.

A solução foi reescrever o script principal numa linguagem de script
de algo nível.  GNU awk reduziu o tempo de início a cerca de 3
segundos, e as exigências de memória foram reduzidas de uma ordem de
magnitude, porém 3 segundos multiplicados pelos 260 arquivos limpos
por esse script para formar Linux-2.6.33-libre é muito tempo para
desperdiçar.  Python e PERL compilam nossa enorme coleção de padrões
em décimos de segundo, enquanto reduzem o uso de memória em quase
outra ordem de magnitude.  Porém, limites internos do algoritmo de
busca de padrões no PERL produzem resultados incorretos no
deblob-check, então usá-lo com PERL não é recomendado por enquanto.

Para a limpeza, pelo deblob-main, de pequenos arquivos do Linux,
determinou-se que Python era o mais rápido, razão pela qual agora o
usamos por default.  Para verificar que um tarball grande está limpo,
o tempo de execução de Python e PERL salta a mais de 90 minutos, bem
mais que os 5 minutos com GNU awk e que os pouquíssimos 3 minutos com
GNU sed.  GNU awk vem na frente quando se listam todos os blobs num
tarball do Linux, agora com uma característica desejada faz tempo:
imprime, antes de cada blob, o nome do arquivo dentro do tarball que o
contém.

Futuras versões podem ser mais espertas e escolher o componente mais
adequado dependendo da tarefa e da entrada.  Por enquanto, usuários do
deblob-check devem conhecer os novos parâmetros: --use-python,
--use-awk, --use-perl e --use-sed, as variáveis de ambiente
correspondentes PYTHON, AWK, PERL e SED.

O menor uso de memória e CPU para verificar e limpar arquivos
individuais significa que é novamente possível limpar árvores do Linux
na hora de compilar, algo que vários usuários consideravam valioso.

Nos próximos dias, publicaremos Linux-libre, quarta geração, também
para versões anteriores do Linux, corrigindo alguns erros de limpeza
em drivers em “staging” e pegando mais algumas ocorrências de nomes de
blobs não-Livres em documentação e mensagens de erro.


== Pedido de comentários

Vários de nossos usuários expressaram insatisfação legítima com uma
consequência do método que usamos para que o kernel não induzisse
usuários a instalar firmware não-Livre.  Não é nosso objetivo impedir
que usuários carreguem ou executem firmware não-Livre, mas a única
maneira que encontramos para evitar induzir usuários a executar
firmware não-Livre tinha o efeito colateral de tornar impossível o uso
de firmware não-Livre simplesmente instalando-o.

No Linux, vários drivers chamam request_firmware com o nome de um
blob.  Essa requisição é registrada, incluindo o nome do blob, e
passada a um programa em nível usuário, que deve localizar um arquivo
de firmware com esse nome e fornecê-lo ao kernel.  Dados os registros,
além do comportamento existente e potencial do programa em nível
usuário, isso equivale ao Linux dizer ao usuário que instale um
programa não-Livre específico, o que não é aceitável.

Versões do Linux-libre desde a geração 2 substituem o nome do blob por
um nome que o carregador de firmware provavelmente não encontrará, e
que pode ser reconhecido em nível usuário para informar o usuário
sobre a falta de firmware Livre para algum componente de hardware do
sistema.  Também rejeitamos quaisquer respostas que o carregador de
firmware produza para essas requisições, para minimizar riscos de
coincidências acidentais e dano ao hardware.

Pensamos que qualquer um determinado a usar o firmware ainda poderia
compilar um módulo, ou o kernel completo, que faça a solicitação e use
a resposta.  Essa possibilidade foi considerada incômoda demais por
alguns.

Recentemente nos ocorreu outra forma de atingir a meta de impedir o
kernel de convidar usuários a cair na armadilha do Software não-Livre:
onde Linux solicita arquivos sabidamente não-Livres, poderíamos
anonimizar o nome do blob com um hash unidirecional de seu nome e um
identificador da compilação e/ou da sessão do kernel, e fazer a
solicitação por um arquivo nomeado pelo hash calculado.

Dada uma implementação adequada do carregador de firmware em nível
usuário, qualquer peça de firmware que o usuário tenha decidido
instalar continuaria sendo localizada facilmente e disponibilizada
para o kernel.  Porém, por causa da natureza unidirecional do hash, um
pedido de firmware que não esteja instalado não induziria a sua
instalação: o código de hash não os identificaria imediatamente.
Assim, se o usuário insiste em instalar o firmware, Linux-libre poderá
usá-lo, mas é muito pouco provável que alguém instale o firmware por
influência do Linux-libre.

Soma-se a nós em linux-libre en fsfla.org e conte-nos sua sugestões,
outras formas de resolver essa questão, ou sua opinião sobre esse
plano e se ele poderia ser aceito “rio acima”.  Retorno e ajuda são
bem-vindos!

Enquanto isso, “Sê Livre!” com Linux-2.6.33-libre, e ajuda-nos a
reverter a crescente dependência do Linux em firmware não-Livre.


== Sobre o Linux-libre

Linux-libre é um projeto mantido pela FSFLA, que publica versões
limpas de Linux, adequadas para uso em distribuições que cumpram as
Diretivas para Distribuições de Software Livre publicadas pelo projeto
GNU, e por usuários que queiram rodar versões Livres do Linux em seus
sistemas GNU.  O projeto oferece scripts para limpar, fontes Livres,
binários para algumas distribuições de GNU/Linux-libre, binários
Livres para substituir com diferenças mínimas os kernels de
distribuições não-Livres de GNU/Linux: Freed-ebian e Freed-ora, e
artes gráficas com GNU e a mascote do Linux-libre: Freedo, o pinguim
azul claro, limpo, Livre e amigável ao usuário.
http://linux-libre.fsfla.org/
http://www.gnu.org/distros/


== Sobre a FSFLA

A Fundação Software Livre América Latina se uniu em 2005 à rede
internacional de FSFs, anteriormente formada pelas Free Software
Foundations dos Estados Unidos, da Europa e da Índia.  Essas
organizações irmãs atuam em suas respectivas áreas geográficas no
sentido de promover os mesmos ideais de Software Livre e defender as
mesmas Liberdades para usuários e desenvolvedores de software,
trabalhando localmente mas cooperando globalmente.
http://www.fsfla.org/

----

Copyright 2010 FSFLA

Permite-se distribuição, publicação e cópia literal da íntegra deste
documento, em qualquer meio, em todo o mundo, sem pagamento de
royalties, desde que sejam preservadas a nota de copyright, a URL
oficial do documento e esta nota de permissão.

Permite-se também distribuição, publicação e cópia literal de seções
individuais deste documento, em qualquer meio, em todo o mundo, sem
pagamento de royalties, desde que sejam preservadas a nota de
copyright e a nota de permissão acima, e que a URL oficial do
documento seja preservada ou substituída pela URL oficial da seção
individual.

http://www.fsfla.org/anuncio/2010-03-Linux-2.6.33-libre


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