Una-se
à Revolução
Texto
para apresentar-lhe essa revolução para que, de expectador atônito,
ele passem a agente da sua própria revolução pessoal
Pablo Lorenzzoni, CIPSGA
Desde
que os softwares livres e abertos apareceram, muita coisa tem
acontecido. Novas escolhas vêm sendo feitas, tanto pela indústria
do software, que agora pode optar por modelos alternativos de
desenvolvimento, , para quem um novo (e aberto) mundo é
apresentado. Mas e o usuário não técnico? Sim... aquele que
comprou o computador pronto na loja e nem sabia que o Windows não
era necessário. Aquele que, quando enfrentava um erro que acabava
travando o computador, exclamava "Maldito computador" ao
invés de "Maldito Windows". Foi pensando nesse usuário
que esse documento foi escrito: apresentar-lhe essa revolução
para que, de expectador atônito, ele passem a agente da sua própria
revolução pessoal. Vamos lá....
Pré-História da Revolução
Nos anos 60 e 70, em meio à revolução hippie, a pré-história
da revolução atual começou. Quase paralelamente se
desenvolveram o que hoje conhecemos como cultura hacker, Unix e
linguagem de programação C.
O hacker é, fundamentalmente, um especialista, um solucionador de
problemas. Seus primeiros representantes, provavelmente, foram os
estudantes do MIT, que, com apenas o horário noturno para estudar
os circuitos eletrônicos dos primeiros computadores, passavam a
noite descobrindo cada esquina e cada curva na intrincada
arquitetura
daquelas máquinas.
Hoje, várias definições para hacker e para cultura hacker
existem [1], mas a idéia principal é que existe uma comunidade,
uma cultura compartilhada de programadores experts e magos da
conectividade cujo passado histórico começa há décadas, com os
primeiros computadores
compartilhados e as primeiras experiências com a ARPAnet (a
precursora da Internet). Os membros dessa cultura (os hackers)
construíram a Internet. Os hackers fizeram do Unix o sistema
operacional que ele é hoje. Os hackers construíram a Usenet. Os
hackers fizeram a World Wide Web
funcionar [2]. Esqueça o que a mídia tem publicado a respeito
deles. É lógico que, com tanto conhecimento e sendo composto por
indivíduos tão heterogêneos, alguns usariam esses conhecimentos
para invadir computadores de bancos, roubar dinheiro, bisbilhotar
no computador dos
outros. Mas chamar Ken Thompson, Dennis Ritche, Linus Torvalds,
Richard Stallman, Eric Raymond e Alan Cox de criminosos é, no mínimo,
leviano. A verdade é que a maioria dos hackers está interessado
em resolver os
próprios problemas e contribuir para a comunidade com a solução
que encontrou.
O Unix é o produto da mente de um hacker da Bell Labs: Ken
Thompson. Seu precursor foi o Multics, um sistema operacional de
tempo compartilhado. O Multics foi a base de testes para a idéia
de Thompson de que a complexidade do sistema operacional pudesse
ser ocultado do usuário e
da maioria dos programadores de modo que as operações fossem
transparentes. A idéia era construir um sistema mais simples para
que mais trabalho real fosse feito. O Multics acabou morrendo, mas
Thompson continuou a desenvolver suas idéias em outra base de
hardware, no que,
mais tarde, acabou sendo conhecido por Unix.
Um outro hacker conhecido por Dennis Ritche inventou uma nova
linguagem chamada "C" para ser utilizada no Unix de
Thompson. O nome "C" deve-se ao fato de Ritche ter
baseado seu trabalho na linguagem conhecida por BCPL (ainda em uso
em alguns lugares da europa). Sua primeira (e infrutífera)
reimplementação recebeu o nome de "B", logo, parecia lógico
que a segunda reimplementação fosse denominada "C".
A grande sacada da associação de Thompson e Ritche era a
portabilidade. Acreditando que um sistema operacional completo
pudesse ser desenvolvido em C (uma linguagem de médio nível), ao
invés de Assembly (uma linguagem de baixo nível), o Unix foi
escrito em C e portado para inúmeras
arquiteturas, apresentando a mesma "cara" seja qual for
o computador utilizado. O proóprio nome Unix reflete isso numa
das primeiras ironias da computação aberta: Unix - único versus
Multics - múltiplo [3].
Além da portabilidade, tanto Unix como C tinham outras
importantes características. Ambos foram construídos com a
filosofia do mais simples (Conhecido, em inglês, como KISS - Keep
It Simple, Stupid), de forma que um programador poderia facilmente
conhecer toda a estrutura lógica do C
de cabeça, sem precisar recorrer aos pesados manuais de
antigamente. O Unix, por sua vez, foi estruturado em pequenos
blocos com funções simples que se combinavam para aumentar a
complexidade das operações. Nem mesmo os próprios programadores
desses blocos seriam capazes de prever a multiplicidade de
maneiras como eles são utilizados em conjunto.
Estava formado o caldo inicial no qual se desenvolveria a grande
revolução que presenciamos hoje.
A Revolução Começa - O Software Livre
Em 1984, outro hacker saído do MIT, tornou-se pai de uma
filosofia que, sustentada por uma forte base na comunidade hacker,
no Unix e na linguagem C, acabou por começar uma revolução
digital. Seu nome é Richard M. Stallman (ou RMS, como ele mesmo
prefere).
A filosofia do software livre se baseia em uma definição de
liberdade. Por causa da ambigüidade em inglês da palavra "free",
tornou-se necessário esclarecer que Free Software não se refere
a preços, mas à liberdade dos usuários de executar, copiar,
distribuir, estudar,
modificar e melhorar o software. Mais precisamente, refere-se à
quatro tipos de liberdades: (1) A liberdade de executar programas
para qualquer propósito. (2) A liberdade de estudar como o
programa funciona e adaptá-lo
às suas necessidades (o acesso ao código fonte é essencial para
isso). (3) A liberdade para redistribuir cópias do programa de
modo que seu vizinho se beneficie. (4) A liberdade de melhorar o
programa e distribuir o seu aperfeiçoamento para o público, de
modo que toda a comunidade se beneficie (novamente o código fonte
é necessário) [4].
Em torno dessa filosofia, a Fundação do Software Livre (Free
Software Foundation - FSF) foi criada para fomentar projetos com a
mesma filosofia [5]. O primeiro projeto da FSF foi o projeto GNU
[6], inaugurando uma longa série de acrônimos irônicos para
denominar projetos de software
livre (GNU é um acrônimo recursivo que significa "GNU's Not
Unix").
Mas além de um acrônimo curioso, o objetivo do projeto GNU era
(e ainda é) criar um sistema operacional completo que seja compatível
com o Unix [7], mas desvinculado da imagem comercial que o Unix
adquiriu ao longo de sua história. Atualmente o projeto GNU é o
responsável por quase todas
as ferramentas que tornaram um Unix livre possível. No entanto, o
grande objetivo de criar um kernel (núcleo do sistema) ainda não
atingiu o mesmo nível que as outras aplicações.
Talvez a maior contribuição que RMS tenha feito não seja no
campo do software, mas no campo legal. Através da FSF, RMS
desenvolveu ao longo dos anos as famosas licenças de copyleft
(mais uma ironia, contrapondo-se à copyright). Essas licenças
(fortemente baseadas no direito autoral)
deram instrumentos legais para que os hackers pudessem liberar
seus trabalhos para o público sem medo que seu código fosse
roubado por alguma grande empresa e, ao mesmo tempo, assegurando
que ele ficaria livre para sempre [8].
Basicamente, ao utilizar uma das licenças redigidas e legalmente
sustentadas pela FSF em um de seus programas (como a GPL - General
Public License - por exemplo [9]), o programador assegura que seu
código permanecerá livre pois toda e qualquer modificação nele
somente poderá ser liberado se for feito pela mesma licença.
Mais tarde, se o programador original decidir fechar o programa
[10] quase certamente, alguém continuará mantendo o programa
livre por dividir o desenvolvimento começando por uma versão
livre anteriormente licenciada [11].
Pense nas licenças da FSF como uma "carta de alforria"
do software. É como se o software dissesse ao seu programador:
"Sim... você me criou, mas tem a obrigação de dizer a
todos como fez. Não... não adianta me prender. Se você fizer
isso outra pessoa virá me soltar e você não
terá nenhum controle sobre mim".
De Helsinki, a peça que faltava
O projeto GNU vinha muito bem, provendo os hackers do mundo
inteiro com milhares de linhas de código em C para suas
ferramentas compatíveis com o Unix, e com o famoso compilador GCC,
que impulsionava centenas de projetos livres em todo o mundo. Mas
faltava uma peça, e não qualquer peça, faltava o kernel. O
kernel de um sistema operacional é o núcleo do sistema. É
completamente invisível para o usuário, mas é o responsável
por traduzir as chamadas de sistema dos programas para a linguagem
do
computador e vice-versa.
O projeto do kernel GNU (conhecido por HURD) estava, lentamente,
se desenvolvendo. Não estava, de forma alguma, acompanhando o
desenvolvimento do restante do sistema. Como o que se precisava
era de algo completamente novo, a maioria dos programadores
envolvidos estavam pisando em um terreno desconhecido.
Logicamente, o desenvolvimento teria
de andar devagar.
A grande virada começou a ocorrer em 1991, quando um hacker de
Helsinki conhecido por Linus Torvalds começou um projeto pessoal
para desenvolver um kernel de sistema operacional. Todo o trabalho
era feito amadoristicamente, como um projeto pessoal típico de um
hacker motivado. Mas, a comunidade hacker, que já havia esperado
pacientemente o
Kernel do projeto GNU aparecer, começou a colaborar
intensivamente para o projeto daquele hacker de Helsinki. Esse
kernel passou a ser a peça que faltava para o desenvolvimento de
um sistema operacional livre quando
Linus licenciou seu projeto sob a GPL [12, 13].
Em pouco tempo, o Linux tornou-se un dos maiores projetos
colaborativos do mundo. Centenas de hackers em todo o mundo começaram
a enviar colaborações e aperfeiçoamentos. O Linux começou a
integrar o que passou a ser conhecido por sistema GNU/Linux, ou
seja, o kernel Linux com as
ferramentas GNU (freqüentemente tratado simplesmente por Linux).
Logo surgiu o conceito de distribuições, que juntavam um sistema
GNU/Linux a um monte de outros softwares livres e eram distribuídas
de uma maneira fácil de instalar..
Com a evolução das distribuições, a integração de ambientes
gráficos e de pacotes de programas integrados de desktop, o GNU/Linux
chegou ao ponto em que qualquer usuário levemente motivado
consegue instalar e executar
uma de suas variantes. Ou seja, passou de um sistema operacional
exclusivo dos hackers para um sistema operacional de usuário
final. Vários benefícios são o subproduto dessa passagem: o usuário
final acaba com um ambiente estável, confiável, de alta
velocidade em que
todas as tarefas que antes custavam vários dólares para poderem
ser feitas, hoje custam nada além de um pouco de motivação.
BSD - O Unix Acadêmico
Dando uma pausa na evolução do GNU/Linux, nenhuma introdução
estaria completa sem a menção (e somente uma menção) do BSD.
Surgido como um forking [11] dos sistemas Unix originais da
AT&T, o BSD (ou, em inglês, Berkeley System Distribution)
começou a ser desenvolvido com um
modelo diferente do GNU: o modelo universitário baseado na licença
BSD.
Uma Universidade (no caso Berkeley) necessitava de fundos para
empreender suas pesquisas, e nenhuma empresa estaria interessada a
custear o desenvolvimento de um sistema que não pudesse ser
aproveitado comercialmente (isso era o que se pensava do Software
Livre, o que a história acabou por provar ser um equívoco). Então
o desenvolvimento do BSD tomou rumos diferentes do que o Linux, ao
utilizar uma licença que permitia o fechamento do código (ao
contrário da GPL).
O BSD (e seus forks: FreeBSD [14], OpenBSD [15] e NetBSD [16])
começaram a integrar uma forte base de servidores que, até hoje,
acredita-se serem melhores que o GNU/Linux em várias tarefas.
Nesse momento é prudente me abster de continuar com a história
do BSD para evitar a parcialidade. Aos que quiserem maiores
informações, um bom ponto de início são as páginas dos forks
que eu já mencionei.
Distribuições GNU/Linux
Bem... chegamos ao momento histórico em que o GNU/Linux começa a
ser distribuído em grandes pacotes com vários programas abertos.
É instalando uma dessas distribuições que o usuário comum deve
entrar nessa Revolução.
Não vou analisar cada uma das distribuições. Existem várias análises
e os sites de notícias do Linux publicam análises
periodicamente. Vou limitar-me a comentar brevemente cada uma das
que eu considero as 4 maiores
distribuições no Brasil. O comentário breve é necessário para
manter a imparciabilidade, já que sou desenvolvedor de uma delas.
O Slackware - A primeira grande distribuição
O Slackware foi a primeira distribuição do Linux a se
disseminar. Ela começou com Patrick Volkerding no final de 1992.
Ele foi introduzido ao Linux quando precisava de um interpretador
LISP barato para um projeto. Naquela época existiam poucas
distribuições e Patrick escolheu o Soft
Landing Systems (SLS Linux).
Contudo, a SLS tinha alguns problemas e Patrick decidiu consertá-los.
Eventualmente isso acabou se tornando uma distribuição
diferente, que, ganhou popularidade rapidamente e ficou conhecida
como Slackware.
Ao longo do caminho, Patrick acrescentou alguns aperfeiçoamentos
que tornavam sua distribuição mais amigável e introduziam o
conceito de gerenciamento de pacotes [17]. Hoje o Slackware tem
uma legião de fãs
incondicionais que fazem dela uma grande distribuição.
O RedHat - o mais utilizado sistema de pacotes
A distribuição do chapéu vermelho [18] foi a responsável pela
introdução do formato rpm de pacotes (Redhat Package Management),
hoje adotado pela LSB (Linux Standard Base) como padrão [19].
O formato de pacotes e uma instalação amigável fizeram do
RedHat a distribuição com o maior número de usuários dentre
todas. Os membros da empresa são hackers comprometidos com o
software livre e o CTO (Mike
Tienemann) é conhecido por suas incisivas críticas ao monopólio
da Microsoft.
Além disso, a RedHat é uma empresa comprometida com a comunidade
que desenvolve o Linux. Alan Cox, um dos mais reconhecidos
integradores do kernel (chegando a liberar até 3-4 versões de
aprimoramento por dia) é seu empregado.
A Conectiva - o correspondente tupiniquim da RedHat
Baseado no RedHat, a distribuição da Conectiva [20] é a
alternativa brasileira às grandes distribuições. A empresa tem
um bom time de hackers cuidando do desenvolvimento não só da
distribuição como do kernel do Linux e de vários projetos de
software livre. Um deles, Marcelo Tosatti,
ficou famoso recentemente por ter sido escolhido por Alan Cox e
Linus Torvalds para ser o atual responsável pela série estável
do kernel.
A instalação é amigável, apesar de nem sempre dar certo, e o
fato de prover suporte (pago, é claro) em português ajuda muito.
Mas a distribuição da Conectiva tem a fama de ser substituída tão
logo o usuário aprenda mais sobre o Linux.
O Debian - de volta às raízes
O Projeto Debian começou em 1993 com o objetivo de gerar um
sistema operacional universal com o mesmo sistema de
desenvolvimento aberto do Linux e do Software Livre. O Debian não
é uma empresa. É uma organização internacional sem fins
lucrativos, mantido pelo idealismo de mais de 900
desenvolvedores [21].
As principais diferenças com relação as outras distribuições
são com relação à portabilidade e à qualidade.
O Debian está, atualmente, disponível em 6 arquiteturas que
variam desde o i386 ao PowerPC. Além disso, por ser independente
do kernel, está sendo portado para trabalhar com o kernel do
projeto GNU (conhecido por HURD) [22], com o kernel BSD [23] e com
clusters beowulf [24].
O sistema de pacotes do Debian é, sem dúvidas, o mais completo e
amigável sistema de pacotes dentre as grandes distribuições
[25], sendo, inclusive, parcialmente adotado pela Conectiva [26] a
partir da sua versão 6.0. Mas o mais importante a ser notado
quanto aos pacotes do Debian é que eles são feitos por
desenvolvedores comprometidos em criar
o melhor. Somente desenvolvedores aprovados no sistema de seleção
do Debian para integrar o time é que podem desenvolver pacotes
Debian oficiais. Isso é uma grande diferença quando comparado ao
sistema de distribuição dos pacotes rpm.
Uma das figuras históricas mais importantes para essa revolução
recentemente entrou no sistema de seleção do Debian. Richard M
Stallman quer ser desenvolvedor do Debian.
O Software Aberto - A contribuição da nova geração
A frente do jovem movimento do software aberto, a Iniciativa do Código
Aberto (OSI - Open Source Initiative) [27] é uma organização
cuja única finalidade é arrebanhar suporte para o software
Aberto. Isto é o software que é compatível com a definição de
Software Aberto provida pela
própria OSI [28] (que, por sua vez, é baseada na definição do
Debian [29]). Nenhuma licença é oferecida, ao contrário da FSF,
mas várias licenças são certificadas para garantir que o
projeto que seja licenciado sob ela tenha as mesmas características
fundamentais do Software Aberto. A própria GPL é certificada
pela OSI.
A idéia por trás da OSI é conseguir com que mais empresas apóiem
o Software Aberto por permitir que elas escrevam programas sob a
sua própria licença, desde que essas sejam certificadas pela OSI.
Muitas empresas querem liberar o código fonte de seus
aplicativos, mas não querem usar a GPL, ou por não poderem fazer
isso por questões
administrativas, ou por desejarem manter o controle sobre o
licenciamento do seu software. Para essas a OSI oferece sua
certificação.
Enquanto a FSF e a OSI trabalham para ajudar umas às outras, elas
não são a mesma coisa. A FSF suporta o uso de suas licenças e
somente delas. A OSI não tem licenças próprias, mas certifica
as existentes dentro de seus
próprios parâmetros de Software Aberto. Isso pode aparentar que
existem duas correntes ideológicas: o Software Livre (da FSF) e o
Software Aberto (da OSI), mas o fato é que grupos diferentes estão
trabalhando em
direção aos mesmos objetivos, cada qual aumentando a
credibilidade do outro.
A FSF, portanto, é o braço político ideológico do movimento,
pregando que todo o software deve ser livre e oferecendo a GPL
como exemplo de licença. A OSI, por outro lado, é o braço
conciliador, garantindo que empresas com o modelo comercial de
desenvolvimento possam entrar no
movimento sem necessariamente adotar as licenças da FSF.
Eventualmente todo o software será livre, de acordo com a
ideologia da FSF. Mas para as empresas que não querem mudar o
modelo comercial utilizado, a OSI oferece uma alternativa
intermediária.
Conclusão
Bem... acredito que isso conclui nosso breve tour pela história
dessa revolução que há apenas poucos anos começou e que ainda
está longe de terminar. Espero que os links que eu citei acima
sejam úteis para alguma coisa.
Para você, usuário não técnico, espero que este documento
tenha tido algum valor. Como instalar uma ou outra distribuição,
como fazer para funcionar a impressora ou o modem, ou como
conectar-se a internet, existem vários documentos que ensinam.
Mas um que conte como tudo
começou.... isso estava faltando. Espero que este documento tenha
suprido essa falta.
Agora é só começar. Escolha uma distribuição, assine algumas
listas de discussão, leia os manuais e conte com a comunidade
para ajudar nas suas dúvidas. Mãos a obra.
[1] http://www.tuxedo.org/jargon
[2] http://www.tuxedo.org/~esr/faqs/hacker-howto.html
[3]http://www.tuxedo.org/~esr/writings/hacker-history/hacker-history.html
[4] http://www.fsf.org/philosophy/free-sw.html
[5] http://www.fsf.org/
[6] http://www.gnu.org/
[7] http://www.gnu.org/gnu/gnu-history.html
[8] http://www.gnu.org/licenses/license-list.html
[9] http://www.gnu.org/copyleft/gpl.html
[10] Como detentor do direito autoral, o autor do trabalho
licenceado sob a GPL, por exemplo, pode mudar a licença. Mas fica
legalmente impedido de incluir o código que recebeu como
contribuição de outros autores licenceados sob a mesma licença.
Na prática, isso acaba por assegurar
que o código fique sob a licença livre.
[11] Num processo conhecido por "forking". O forking é
uma das maiores forças do software livre, no entanto é atacado
constantemente por empresas que estão começando a perder o monopólio
para o software livre.
[12] htto://www.linux.org/
[13] http://www.li.org/
[14] http://www.freebsd.org/
[15] http://www.openbsd.org/
[16] http://www.netbsd.org/
[17] http://www.slackware.com/book/index.php?source=x63.html
[18] http://www.redhat.com/
[19] http://www.linuxbase.org/
[20] http://www.conectiva.com.br/
[21] http://www.debian.org/
[22] http://www.debian.org/ports/hurd/
[23] http://lists.debian.org/debian-bsd/
[24] http://www.debian.org/ports/beowulf/
[25] http://linux.com/newsitem.phtml?sid=1&aid=12474
[26]
http://www.conectiva.com.br/imprensa/releases/122000/0001.php3
[27] http://www.opensource.org/
[28] http://www.opensource.org/docs/definition.html
[29] http://www.debian.org/social_contract#guidelines
Esse texto é licenciado sob uma das seguintes licenças:
GNU FDL ou DSL (veja o arquivo dsl.txt). A escolha de qual licença
utilizar é do licenciado.
Se você não recebeu cópia das licenças, elas podem ser
encontradas em:
GNU FDL: http://www.gnu.org/copyleft/fdl.txt
DSL: http://www.dsl.org/copyleft/dsl.txt
ou via email para spectra@debian.org
|