Software Livre

  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Software Livre as PDF for free.

More details

  • Words: 2,403
  • Pages: 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

o

sim sim

sim

Dom. 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 podese 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.

Related Documents