Você está na página 1de 8

Software Livre - Definição e Direções

Humberto Rossetti Baptista


humberto at ime.usp.br

Apresentamos aqui o conceito de Software Livre, o projeto GNU e a filosofia por trás deste tipo de
programas. A influência da Internet, e o uso de software livre em ambientes comerciais é discutida a seguir.
São apresentados alguns dos programas livres mais utilizados (e onde são utilizados) bem como o caso de
uma empresa muito bem sucedida que "vive" de software livre.

Introdução

Assim como a Internet o termo "Software Livre" era praticamente inédito fora do círculo da
computação. Palavras e siglas estranhas, nas frases de pessoas também um pouco estranhas, não
contribuíram para a popularização do termo nem do conceito.

Com a explosão da Internet foi dado um súbito destaque a uma nova categoria de programas que
praticamente 'carregava’ a Internet movimentando diversos serviços e em alguns casos indo até ao
sistema operacional das máquinas que compõem a rede.

Ser livre é a questão. Quanta liberdade se perde ao aceitarmos licenças de uso comerciais? Quanta
cooperação, avanço tecnológico e conhecimento são perdidos por conceitos como "propriedade
industrial"?

Estas questões estão na gênese dos programas livres.

O que é "software livre"

Do que se tratam os programas livres? Em primeiro lugar são programas comuns, construídos como
quaisquer outros, geralmente uma linguagem de alto-nível e depois compilados, etc. A diferença
está nos direitos que o autor dá para outras pessoas fazerem uso deste programa: a licença de uso.

Existem diversos tipos de licença e conseqüentemente diversos tipos de comercialização de


programas:

• 1. Software Comercial - programas distribuídos na sua maioria somente na forma binária


(executáveis) com direitos específicos (um ou alguns usuários, um ou alguns computadores,
CPUs etc.) e quase sempre com um preço associado. Não são revelados detalhes de
funcionamento, não se pode copiá-los para outros usuários e alterações (muito difíceis, dada
a forma binária) são terminantemente proibidas.
• 2. Shareware - também costumam ser distribuídos na forma binária e ter características
semelhantes aos comerciais, mas com uma diferença: podem ser distribuídas cópias para
outras pessoas experimentarem o programa (e se gostarem registrarem-se com o autor,
pagando uma certa taxa). Enquanto é tido como um tipo de comercialização inviável
algumas empresas (ou autores) vão bem, como é o caso do WinZip.

• 3. Freeware - são os programas gratuitos, exatamente como os Shareware, mas não exigem
registro e não têm taxa de uso. Não é permitida sua alteração.

• 5. Domínio público - programas que o autor abre mão dos direitos, perdendo inclusive o
direito de cópia - o copyright - e outros dependendo da legislação. Em todos os casos o
código fonte acompanha o programa. O programa pode ser embutido em outro programa e
vendido etc.

Em 1983 Richard Stallman (mais sobre isso abaixo) criou o conceito de "Software Livre" como:

• 4. Software Livre - programas que mantém o copyright, e ainda assim permitem a livre
distribuição (cópia), acesso ao código-fonte e direito de alterar o programa.

É muito comum haver confusões (pela pouca divulgação do conceito) entre programas livres, de
domínio público e mais ainda com freeware e shareware, incluindo-se nestas confusões os
preconceitos associados às outras categorias, que podem ou não ser pertinentes aos programas
livres.

É necessário ter uma visão clara: programas livres são diferentes de shareware, freeware e domínio
público. Uma comparação em alguns pontos principais é (C.R. = Copyright, C.F. = Código fonte
disponível, Dis. = programa pode ser distribuído livremente, Alt. = programa pode ser alterado):

Modalidade C.R. C.F. Dis. Alt.

Comercial sim o o o

Shareware sim o sim o

Freeware sim o sim o

Livre sim sim sim sim

Dom. o sim sim sim


Público
O conceito de software "livre"

A função do modelo de software livre é implementar e manter a "liberdade" relativa a um programa.


A motivação disto é evitar que o conhecimento seja retido, permitir que as pessoas se ajudem e
identifiquem os autores em seus trabalhos e derivados.

Em 1983 Richard Stallman, um brilhante programador do MIT, ficou muito aborrecido quando viu
o resultado de um trabalho acadêmico em que participara ser vendido pelo MIT a uma empresa e
ser "trancado" para sempre por trás de contratos de licença impenetráveis.

Com isto Stallman pediu demissão e formalizou o conceito de software livre em um manifesto [1]
no qual apresentava e discutia a definição e a versão inicial da licença de uso de um programa livre:
a licença GNU ou GPL. Além da definição de programa livre o manifesto lançou o 'Projeto GNU’
[3] (mais sobre isso abaixo).

Para defender a noção de software livre Stallman fundou a Free Software Foundation ou FSF [2]
que defende o conceito de software livre, coordena o projeto GNU e colabora na defesa da
liberdade de programação.

O Projeto GNU

O termo G.N.U. significa 'G.N.U. is not Unix’ e o objetivo do projeto é criar um sistema
operacional e aplicativos livres para as pessoas usarem. O "tipo" de sistema escolhido foi o UNIX, e
hoje o projeto já atingiu seu objetivo primário, embora não do jeito que a FSF imaginava.

De 1985 para cá o projeto criou compiladores, bibliotecas, editores de texto e centenas de outros
programas para atingir seu objetivo. Muitos programas foram agregados e outros seguiram a
filosofia de software livre embora não fossem necessários para o objetivo primário do projeto (o
GNU Chess é um ótimo exemplo).

Atualmente o projeto está as voltas com o núcleo de sistema operacional desenvolvido por pessoal
da FSF - o HURD. Este promete uma série de avanços e tecnologias de sistemas operacionais em
sua implementação e depois de muita demora, idas e voltas, está disponível em sua segunda versão
beta [4].
Retornando aos programas livres, vejamos o que nos dá sua filosofia: a licença GNU (GPL [5]). Ela
é bastante extensa e aqui nos bastam os pontos principais que ela garante aos usuários de um
programa e seus derivados:

• Liberdade para conhecer (código fonte disponível)


• Liberdade para alterar (programa pode ser modificado)
• Liberdade para compartilhar (copiar, distribuir etc.)

A noção de programas derivados, com aqueles que são feitos a partir de outros, é fundamental para
garantir a continuidade da GPL nos programas livres e impedir que eles deixem de ser livres algum
dia (a recursividade aparece aqui de novo..).

Programas do Projeto GNU

O projeto desenvolveu uma série de programas, uma lista parcial:

• Emacs – editor de texto sofisticadíssimo, com uma forte linguagem de programação e


extensões variadas para as mais diversas finalidades, com ler newsgroups, páginas web etc.

• TEX – sistema de composição (formatação) de texto que produz as melhores saídas no


campo de composição digital.

• GCC, G++, GPC, GNU LISP, G77, GNU Smaltalk, GNU ADA... – compiladores de C, C+
+, Pascal, LISP, FORTRAN, Smaltalk, ADA etc.

• GNU – Debugger .

• BASH – Bourne Again SHell - interpretador de comandos para UNIX.

• X Window – sistema de interface gráfica.

• GNU Hurd – núcleo (kernel) de sistema operacional.

• GUILE – 'Ubiquitous Intelligent Language for Extension’, um mecanismo genérico de


implementação de linguagens embutidas em aplicativos (como linguagens de macro, por
exemplo).

• Teak – um dos novos desenvolvimentos do GNU: interface gráfica para usuários iniciantes
ou leigos.

• Bibliotecas (C, C++, matemática, imagens ...)

• ... (uns 124 no último boletim [6]).

Linux x GNU

Em 1991 Linus Torvalds, então um estudante de Ciência da Computação da Universidade de


Helsinki na Finlândia, lança um núcleo de sistema operacional livre: o LINUX 0.02! A princípio não
muito promissor, mas pegou impulso rapidamente e obscureceu totalmente seu 'concorrente’ o
MINIX dando um 'curto-circuito’ no projeto GNU.

Não era esperado um sistema GNU completo tão rápido, nem pela FSF, mas o núcleo era tudo que
faltava, e este vácuo foi muito bem preenchido pelo Linux.

Uma coisa perturbou a FSF e o pessoal do Projeto GNU: todos se referem ao Linux como sistema
operacional, enquanto só o núcleo tem este nome os outros programas são todos GNU! O nome que
eles propõem é sistema GNU/Linux.

Programas livres famosos

Alguns programas livres famosos, que não foram desenvolvidos no Projeto GNU, mas acabaram
adotando sua filosofia:

Apache

Servidor Web (HTTP) mais utilizado na Internet (45% dos servidores na Internet o utilizam
segundo a Netcraft [7]) e ele ainda não está disponível para Windows NT (em Alfa atualmente).
Modular, flexível rápido e fácil de ser alterado são alguns dos motivos que levam webmasters a
utilizá-lo. O Apache é usado por: FBI, Família Real, IMDb, Wired, UOL, Digital, Novell, IBM,
Oracle, Microsoft etc.

PERL

Linguagem-amálgama [8] inventada por Larry Wall para facilitar a administração de sistemas (seu
trabalho) tornou-se uma das mais populares, especialmente na WWW, mas é de uso geral e inclui
recursos como orientação a objetos, acesso a bancos de dados, pacotes, multitarefa, acesso a rotinas
de baixo nível do sistema operacional, recursos sofisticados (talvez os mais sofisticados) de
processamento de texto, pode ler e instalar módulos a partir da Internet etc. Roda em 15 plataformas
(em minha última contagem) incluindo: Unix , Plan 9, VMS, QNX, OS/2, Amiga, Windows 95, NT
e Apple System. Recentemente a Microsoft contratou uma empresa para portá-lo para Windows 95
e NT (ActiveState, (até recentemente era Activeware)) [10].

Linux

Núcleo de sistema operacional (vide discussão acima), roda em diversas plataformas (Intel,
PowerPC, Motorola 68k, Sparc, MIPS e Alpha) provavelmente tem bem mais que 1 Milhão de
usuários, premiado duas vezes como melhor S.O. de 1996 (Best to 1996 - Linux 2.0 pela PC Week e
RedHat Linux 4.0 pela InfoWorld). Usam-no hoje: NASA, Cisco, Agencia Estado, etc. E um
exemplo de uma empresa cujo carro chefe é o Linux: Caldera foi fundada por Raymond J. Noorda
(fundador e ex-CEO da Novell).

Internet e os programas livres

A Internet além de divulgar o conceito de programa livre ajudou na potencialização do


desenvolvimento, ou seja, permitiu a formação de grupos interessados em um determinado tema e
sua comunicação rápida muito mais facilmente.

Além de reunir os desenvolvedores a Internet fornece os meios para reunir os usuários e para que os
primeiros dêem suporte aos últimos. O suporte entre usuários também é bastante intenso e tudo isso
de processa dentro de grupos de discussão, normalmente na Usenet ou em servidores de listas de
discussão (grupos de discussão por correio eletrônico).

Recursos, Usabilidade e Performance?

Os programas livres têm características próprias, e se quisermos fazer uma avaliação inteligente
deles devemos conhecer estas características.

Os recursos dos programas livres normalmente são menos numerosos e tendem a ser mais genéricos
que nos equivalentes comerciais, nem sempre é óbvio ou fácil usá-los, mas quando se entende pode-
se fazer muita coisa. Alguns recursos implementados por programas livres são muito difíceis em
termos de algoritmos eficientes e como não chamam atenção no marketing comercial só podem ser
encontrados em programas livres.

Os programas livres podem ser considerados menos fáceis de usar já que nem sempre a facilidade
de operação é uma prioridade em seu desenvolvimento. Porém, a medida que os programas livres
existentes satisfazem a maioria dos desenvolvedores este podem se voltar a interfaces mais fáceis
(vide o Teak).

Servidores e ferramentas de desenvolvimento são um dos principais nichos de programas livres,


onde pode-se sem preocupação achar software livre tão bom quanto ou melhor que seus
equivalentes comerciais com facilidade.

O desempenho destes programas é na maioria das vezes superior aos demais, pois as pessoas que os
escrevem ou são ou tem ajuda dos melhores cientistas de computação e têm sempre os melhores
algoritmos para dadas tarefas. Em alguns momentos pode-se encontrar programas mais lentos,
porém nota-se que a razão disto costuma ser que os programas livres são mais genéricos e robustos
(vide abaixo).

Confiabilidade

Um receio - logo não é uma crítica e muito menos inteligente - sobre a confiabilidade dos
programas livres. Como pessoas soltas pelo mundo, comunicando-se somente pela Internet sem
nenhuma empresa por traz podem produzir software de qualidade e robustez? Este receio é
importado dos Shareware e para derrubar esta falsa noção o melhor é verificar o trabalho feito por
Barton P. Miller em 1995 [12] na Universidade de Wiscousin, que, pela segunda vez, mede a
confiabiliade de utilitários Unix em diversos sistemas comerciais e em um livre e dos utilitários
GNU em sistemas comerciais. Foram ao todo oito Unixes: 7 comerciais e 1 livre, 80 utilitários
(entre linha de comando, X Windows e rede). A filosofia de teste é muito simples: entradas
aleatórias para todos, considera-se um programa "errado" quando trava (dá "core dump"), termina
sem executar o que deveria ter feito ou entra em loop.

Os resultados de falhas dos programas na pesquisa são:

• Utilitários comerciais: falham de 15% a 43%


• Utilitários GNU: 6%!

Ou seja programas comerciais submetidos a entradas aleatórias de bytes falham um número


assustador de vezes, e isso o artigo continua, é fruto de práticas inadequadas de programação. E
muitos erros continuaram em programas comerciais, desde a primeira pesquisa em 1990.
Caso: Cygnus Software

A Cygnus é uma companhia inglesa fundada em 1989 e que "vive" de software livre oferecendo
programação personalizada, suporte e portes de programas para sistema embutidos e outros.
Oferece também boas ferramentas de desenvolvimento.

De 1992 para cá experimentou um crescimento de 65% ao ano, que para padrões de qualquer lugar
no planeta são excelentes. Atua hoje em quatro países: EUA, Japão, Inglaterra e Alemanha, com
mais de 100 empregados na matriz.

Este é somente um exemplo de como se ganha dinheiro com software livre, note que este também
pode ser vendido (embora não possamos impedir ninguém de copiá-lo), e realmente o é por diversas
empresas.

Conclusão

Com o crescimento da Internet assistimos um grande crescimento de programas livres e sua


presença na mídia tem sido bastante ampliada. A filosofia está extrapolando a plataforma Unix com
diversos portes e alguns desenvolvimentos originais para outras plataformas.

A idéia original do projeto GNU está sendo extrapolada e ampliada, e foi criado um novo modelo de
desenvolvimento dentro do software livre: "Bazar" em oposição ao tradicional de "Catedral" (vide o
excelente artigo [11]).

Os benefícios de se usar programas livres são vários e entre eles temos: qualidade, bom suporte
(apesar de não haver uma empresa responsável obtém-se respostas em pouco tempo (horas às vezes)
na usenet) ou suporte contratado, participação nos destinos do programa muito mais direta (podendo
chegar a implementação).

Para quem estuda Computação conhecer software livre é obrigatório, para os demais, bem, o
software livre estará no caminho deles algum dia.

Você também pode gostar