Breve Ensaio sobre Software Livre e Código Aberto [1] por Gustavo Rondina Atualmente ouve-se falar muito sobre Linux, Código Aberto, Sistemas Livres e Gratuitos, Inclusão Digital, entre outros. Contudo, muitas vezes (a maioria das vezes na verdade) a mídia passa informações sobre estes assuntos de maneira distorcida, bem distante da realidade. Esta distorção se deve principalmente a má interpretação dos nomes, dos termos e dos fatos envolvidos nesses movimentos e processos. Sendo assim, tentarei explicar aqui a terminologia correta quando se trata dos programadores, software livre, software proprietário, licenças de distribuição, movimentos filosóficos e sociais envolvidos, etc. Este texto também contém um pouco de história do movimento do Software Livre, além de uma breve explicação sobre o que é, como funciona, como surgiu e como você pode contribuir. Na década de 70 havia uma comunidade de programadores no Instituto de Tecnologia de Massachusets (MIT) que desenvolvia sistemas operacionais (além de pesquisas avançadas) no laboratório de Inteligência Artificial da Instituição. Estes programadores se auto-denominavam hackers, ou seja, pessoas com muita vontade de aprender, que adoravam programar e adoravam obstáculos que desafiassem a inteligência, qualquer tipo de desafios, não só desafios computacionais. Esta comunidade era muito cooperativa, tanto dentro do laborátorio quanto com pessoas de fora. Era um bom ambiente para se trabalhar e viver, um modo justo e moral de ganhar a vida. Se algum amigo viesse lhe pedir para ver um código seu, é claro que você iria compartilhar com este amigo, pois presume-se que você é uma boa pessoa, e as boas pessoas compartilham o conhecimento entre si. Por muito tempo esta harmonia durou e todos foram felizes. O laboratório de IA havia ganhado uma impressora nova da Xerox. Era um protótipo a laser que estava antecipando a revolução das impressoras caseiras que estava por vir. Porém, esse modelo apresentava alguns problemas técnicos, sendo o principal deles o papel que enroscava freqüentemente, atrasando o trabalho de todos aqueles que dependiam da impressora. Os hackers do laboratório, como programadores e não técnicos em eletrônica, não foram capazes de resolver nada na parte de hardware, mas chegaram a conclusão que talvez conseguiriam alterar o código fonte do driver do controlador da impressora, conseguindo assim um melhor funcionamento. Porém eles não possuiam o código fonte, e como haviam ganhado a impressora da fabricante, não quiseram perturbá-la novamente pedindo este código. Apesar de não ter o código em mãos, como de costume, eles não se preocuparam pois sabiam que mais cedo ou mais tarde algum amigo programador de outra instituição logo apareceria com o código e permitira que eles fizessem uma cópia e alterassem conforme suas necessidades. E logo isso aconteceu. Entre os hackers do MIT estava Richard M. Stallman. Ele ouviu dizer que alguém no Instituto Carneige Mellon possuia o código fonte do driver da impressora, então logo que pode ir até lá ele se dirigiu até a sala dessa pessoa, um professor recém-contratado pela instituição que vinha desenvolvendo pesquisas junto ao Xerox PARC, onde a impressora fora desenvolvida. Quando Stallman pediu o código fonte ao sujeito para que pudesse resolver uns problemas com a impressora do MIT, ouviu uma resposta totalmente inesperada, algo que foi novo e chocante para ele: a pessoa se negou a copiar o código fonte, agurmentando que havia assinado um contrato de não revelação (Non Disclousure Agreement - NDA) com a empresa fabricante da impressora. Richard Stallman simplesmente não pode acreditar naquilo e ficou bastante chateado: pela primeira vez ele se tornara vítima da indústria do software proprietário (termo que ainda não existia na época) e estava vendo todo mal que ela causava às pessoas e à sociedade. Em 1982, o láboratório comprou um novo computador, o PDP-10 da DEC que utilizava um sistema operacional proprietário, ao invés do sistema desenvolvido anteriormente pelos hackers do Lab. de IA. e que fora utilizado em todos os precursores do PDP-10 que o laboratório possuíra. Outros computadores, como os VAX, também rodavam sistemas operacionais não livres, ou seja, para utilizá-los você precisaria assinar um NDA prometendo que não iria ajudar um amigo mesmo que necessário. Uma comunidade cooperativa era expressamente proibida, ainda mais, quem cooperasse era acusado de pirataria. Moralmente é muito ruim comparar a amizade e o companherismo (expresso pelos hackers através do ato de compartilhar software) com o vil ato de atacar e destruir navios. Com o fim da comunidade cooperativa, Stallman teve que fazer uma escolha moral. Ele poderia assinar um NDA oferecido por alguma empresa de software, concordando que não vai contribuir com a sociedade e começar a trabalhar no mundo do software proprietário. Provavelmente ele teria ganho muito dinheiro dessa maneira, e também se divertido bastante, já que estaria trabalhando naquilo que gosta. Todavia, quando chegasse ao final da vida e olhasse para trás veria que tudo o que fez foi criar barreiras que dividiram os homens, muros que afastaram as pessoas, e veria que não proporcinou nenhum bem para a sociedade. Esta era uma péssima escolha. Outra opção era abandonar o trabalho de programador, se tornar um garçom talvez, e desperdiçar suas habilidades como programador. Seria menos mal do que trabalhar com software proprietário, mas ainda sim seria uma péssima escolha. A resposta então se mostrou clara para Stallman: o que ele deveria fazer era criar um sistema operacional livre para tornar possível a criação de uma comunidade cooperativa novamente, uma comunidade como aquela em que ele vivera no MIT, onde os programadores eram amigos e compartilhavam tudo aquilo que sabiam e produziam. Como um programador e desenvolvedor de sistemas operacionais, ele reconheceu que o papel dele realmente deveria ser esse, ele fora o escolhido. A primeira coisa que teve de fazer foi pedir demissão do seu emprego no MIT, pois se não o fizesse o Instituto poderia reinvidicar o código produzido por Stallman como sendo de sua propriedade, impedindo Richard de distribuí-lo livremente, como era o objetivo primordial. Faltava escolher um nome para o sistema operacional. Segundo o próprio Stallman, escolher um nome para um programa representa metade da diversão de criar o programa. Apesar de nunca ter utilizado UNIX (só lido a respeito) ele queria criar um sistema compatível com os padrões UNIX. Ele optou por este modelo de desenvolvimento pois o UNIX é um sistema muito portável, e como o projeto de Stallman seria longo (provavelmente se extendendo por muitos anos) e ele não sabia qual computador seria o mais popular na conclusão do projeto, a escolha por um sistema portável era o ideal. Como o sistema seria parecido com o UNIX mas na verdade não seria UNIX, Stallman optou usar um acrônimo recrusivo (que são bastante populares na tradição hacker) como nome do sistema: GNU's Not Unix (Repare que o 'G' significa tanto GNU quanto GNU's Not Unix). Em português ele soa como "GNU Não é Unix". O GNU começou a ser escrito em janeiro de 1984, logo depois de Stallman pedir demissão do Lab. IA. do MIT. Contudo, apesar de não trabalhar mais lá os administradores permitiram que ele continuasse utilizando as instalações do Instituto para desenvolver seus projetos, o que ocorre até hoje. Um sistema operacional é composto de diversos componentes: editores de texto, clientes de e-mail, interfaces de interação com o usuário, camadas de protocolos, compiladores, etc. Um importante componente é o núcleo do sistema em si. Para construir o sistema operacional GNU seria preciso portar cada programa do UNIX para uma versão livre, ou seja, reescrever cada programa e cada pedacinho do sistema. E foi assim que tudo iniciou. O primeiro programa que Stallman começou a escrever para o GNU foi o [não só] editor de textos GNU Emacs. Depois de algum tempo o GNU Emacs estava pronto para o uso e muita gente estava querendo ele. Stallman resolveu então distribuí-lo da seguinte maneira: bastava que a pessoa enviasse uma fita e US$150,00 que ele gravava o GNU Emacs na fita e mandava de volta. A fita levava os fontes e os binários, assim como toda a documentação disponível. Era permitido que o usuário tirasse uma cópia da fita para alguém, para várias pessoas, alterasse o código fonte, enfim, o usuário possuía liberdades para trabalhar com o software. O lucro que Stallman obteve com o GNU Emacs é considerado o primeiro (e precursor) negócio envolvendo software livre que se tem conhecimento. Alguns de vocês podem se perguntar: ``se o software é livre, como ele pode cobrar 150 dolares pelo GNU Emacs?'' Bem, o software é livre sim e você deve levar em consideração que isso implica em liberdade, não em preço. Pense em liberdade de expressão e não em cerveja de graça [2]. O usuário, ao utilizar um software livre, tem direito a quatro liberdades básicas: * liberdade para executar o software com qualquer propósito, mesmo um que não tenha sido previsto pelo autor que desenvolveu o software * liberdade de modificar o software de acordo com as suas necessidades (requer acesso ao código fonte) * liberdade de distribuir cópias do software (de graça ou por uma taxa) * liberdade de distribuir cópias modificadas do software (requer acesso ao código fonte) Se um usuário possui estas quatro liberdades então o programa é livre para aquele usuário. Porém, deve-se decidir o grau de liberdade do programa, ou seja, para quem mais ele é livre. O certo é que qualquer software seja livre para todos, mas que ninguém tente (nem possa) transformar uma coisa boa em uma coisa ruim, como por exemplo pegar um pedaço do código de um software livre e acoplá-lo a um software proprietário que é distribuido de forma não livre. Para impedir isso, Stallman utilizou um recurso criado justamente para restringir a distribuição: o copyright. Como o objetivo é uma sociedade cooperativa e livre, o termo foi alterado para copyleft (outra ``brincadeira'' hacker). O copyleft garante basicamente que se você obteve um software livre (com as quatro liberdades citadas acima) então você pode distribuir esse programa contanto que as liberdades sejam mantidas, caso contrário você não pode distribuí-lo. Expandindo o conceito de copyleft para o caso do parágrafo acima, se uma empresa proprietária tentar anexar parte de um código copylefted (software livre) em seu software proprietário, este software terá que se tornar livre ou não poderá ser distribuído. O copyleft é um conceito geral. A implementação específica do copyleft se dá apartir da Licença Pública Geral GNU (GNU GPL). A GPL, quando ligada a um código, garante a este uma distribuição livre, ou seja, garante que a liberdade será distribuída e propagada para qualquer usuário que venha a ter acesso ao software, e garante ainda mais: impede que qualquer pessoa macule aquilo que é bom, ou seja, impede a utilização de código de software livre em programas proprietários. A GPL é reconhecida pela lei e é válida para qualquer software a qual esteja vinculado, de modo que qualquer infração aos seus termos (como impedir algum usuário de ter sua merecida liberdade) deve ser levada à Justiça e julgada de acordo. Com o crescimento do interesse no GNU, em 1985 foi inalgurada a Fundação do Software Livre (FSF - Free Software Fundation). A FSF é uma organização sem fins lucrativos que sobrevive até hoje devido a doações de anônimos. A FSF se concentrou em continuar o projeto GNU e esperava ter o sistema finalizado até o final da década de 80 ou início da década de 90. Para isso, muito trabalho foi necessário, portar todos os programas básicos do Unix para similares (muitas vezes melhores) livres foi muito trabalhoso e exigiu esforço e talento. Alguns programadores contratados pela FSF se dispuseram a fazer isso, e por volta de 1989 quase todos os programas do Unix possuíam similares livres. O pacote GNU (o conjunto de todos os softwares livres que foram portados) geralmente era utilizado até em sistemas proprietários, como nas estações Sun, devido sua maior confiabilidade e flexibilidade. Apesar de vários programas portados para uma plataforma livre, havia ainda uma importante lacuna no sistema GNU: faltava um kernel (o núcleo do sistema). A FSF decidiu procurar por um kernel já começado para poupar esforços, e encontrou. A Universidade Carniege Mellow possuia um projeto de um núcleo livre chamado Mach. O Mach porém não estava terminado. Apenas a base dele havia sido construída, que é parte que se comunicava com a máquina. A partir desta base os desenvolvedores do projeto GNU expandiram o Mach para um projeto de micro-kernel que hoje é conhecido como GNU Hurd. O GNU Hurd, por sua vez, se mostrou muito complexo e de demorado desenvolvimento. Isso se deve ao fato de ele ser composto por vários servidores (daemons) que se comunicam através de troca de mensagens. Este modelo de kernel é difícil de depurar e de corrigir bugs, pois com a troca assíncrona de mensanges é necessário saber exatamente quando um servidor se comunica com outro, quando uma mensagem sai e quando uma mensagem chega. O projeto do GNU Hurd foi atrasado por muitos anos devido a esta "falha" na escolha do modelo de desnevolvimento. Até hoje espera-se uma versão estável do GNU Hurd e o desenvolvimento ainda não parou. Apesar disso, o modelo de micro-kernel é mais avançado e mais flexível do que o modelo de um kernel monolítico. Por volta de 1991, na Finlândia o estudante de Ciência da Computação Linus Torvalds, na Universidade de Helsinki, desenvolveu um kernel monolítico baseado no kernel do Minix (uma versão compacta do UNIX, desenvolvida por Andrew S. Tanenbaum) para o seu PC 386. Linus chamou este kernel de Linux e o distribuiu gratuitamente na Internet. Linus não conhecia Stallman e vice-versa. Linus também não tinha contato com o projeto GNU nem com a FSF. Contudo, o encontro foi oportuno: o sistema GNU possuia um conjunto de ferramentas livres mas precisava de um kernel. O Linux era um kernel "livre" que estava disponível gratuitamente. Muitos usuários fizeram o download do Linux e do pacote GNU e juntaram os dois, dando origem assim ao sistema GNU/Linux. Apenas no final de 1992 que Linus Torvalds lançou o Linux sob os termos e condições da GPL, o que tornou o kernel um software livre, compatível com as ambições de Stallman e do projeto GNU. Vendo que o sistema geralmente aparece na mídia e nas universidades somente como "Linux", Stallman faz um apelo para que ele seja chamado de GNU/Linux, pois este é o nome correto. O Linux em si não faz nada sem as ferramentas GNU. Muitos consideram isso egocentrismo da parte de Stallman, ou vontade de ter reconhecimento, mas muito pelo contrário, Stallman faz este pedido pois só assim os usuários irão saber da história que está por trás do sistema no qual eles trabalham e amam, adquirindo assim o conceito de liberdade, que é o próposito por trás de tudo isso. Apesar do GNU/Linux ter logrado um tremendo sucesso entre os hackers, geeks e nerds, o termo Software Livre não estava agradando as empresas. As mesmas não gostavam nem um pouco da idéia de vender um produto que era visto como gratuito. Para resolver este problema foi criado o termo Open Source (Código Aberto), por volta de 1998 por Eric S. Raymond. Do termo surgiu o movimento. Os partidários do movimento Open Source não estão muito preocupados se um usuário possui liberdade para executar ou não determinado software, ele só querem saber se o software executa bem, se ele realiza direito as tarefas a que se propõe e se o código é confiável. Mesmo que software não esteja sob os termos de uma licença que garanta total liberdade ao usuário (como a Licença BSD), o que importa é que o código seja aberto e confiável. Os entusiastas do Open Source não estão interessados no âmbito social e filosófico da coisa. Ambos os movimentos, tanto o movimento do Software Livre quanto o movimento do Open Source, normalmente trilham os mesmos caminhos para atingirem objetivos diferentes: o primeiro está preocupado com a liberdade do usuário, com a construção de uma sociedade moral e justa, enquanto o segundo está preocupado com a qualidade do software, com a popularidade do software, mesmo que para isso deva atrair empresas proprietárias para o jogo (como vem ocorrendo com muitas empresas que portam seus softwares para GNU/Linux - Oracle, Borland, Sun -, isso gera popularidade mas não garante liberdade e é tomado como uma armadilha pelos partidários do Software livre). O Open Source e o Software Livre podem ser caracterizados nos personagens de Linus e Stallman: o primeiro é visto como o engenheiro, idealizador do núcleo do sistema, enquanto o segundo é visto como o grande filósofo, uma figura quase profética preocupada com o mundo e com o relacionamento que os computadores possuem com o mesmo. Eu particularmente sou partidário do movimento do Software Livre. Assim como Stallman, não quero chegar à uma idade avançada e ao olhar para trás perceber que apenas construi paredes que dividiram os homens e iniciaram brigas. O objetivo de criar um mundo melhor, uma sociedade cooperativa e baseada nos laços da amizade deve ser tomado por todos os bons cidadãos, independente da nacionalidade, religião ou credo. O mundo seria um lugar muito mais agradável (e muito mais interessante) se em cada área do conhecimento humano houvesse Stallmans Este texto não é completo e está longe conter toda a história do Software Livre, de Richard Stallman ou da FSF. Você pode encontrar _muitas_ informações no site do projeto GNU que é http://www.gnu.org. Outra boa fonte de informações e conhecimento é o livro Free as in Freedom, de Sam Williams, que apresenta a história do software livre através da biografia de Richard Stallman. Qualquer dúvida, comentário ou sugestão deve ser enviada para mim através do e-mail gstgr (at) uol (dot) com (dot) br. [1] Correções e sugestões enviadas por Pedro Gabriel de Figueiredo Rosa. [2] Na língua Inglesa a palavra "free", do termo "free software", tem interpretação ambígua: pode significar tanto "livre" e assim transmitir a idéia de software livre que a FSF prega, como também pode significar "grátis", dando a falsa impressão que software livre não envolve custo algum. A expressão em Inglês é a seguinte: "You should think of free as in free speech, not as in free beer". A tradução foi incluída nesse texto pela importância histórica dessa expressão, apesar de não ter o mesmo valor em Português. -------- Copyright (C) 2004,2005 Gustavo Rondina A cópia fiel e distribuição deste artigo em sua totalidade é permitida em todo o mundo, sem royalties, em qualquer meio, desde que esta nota seja preservada.