Histórico
O que é um software? Como surgiu o Software Livre? O que o diferencia do software
proprietário? Como o Software Livre evoluiu até os dias de hoje? Por que o Movimento
Software Livre cresce tanto em nosso país? Por que encontramos nele a solução para tantos
problemas?
Este breve histórico não possui a intenção desmedida de responder a todas essas perguntas
em tão pouco espaço. Esforça-se, contudo, em ser o pontapé inicial que dará impulso aos
novos navegantes de um universo ainda pouco difundido, criado sobre uma perspectiva que
preza pela colaboração e pela liberdade da informação. Sejam bem-vindos!
O Software
O software corresponde a qualquer programa de computador.
Ao contrário do hardware (monitores, impressoras, mouses, placas, memórias etc) o software
não é algo físico e por isso não sofre desgaste ao longo do tempo.
Um software é, portanto, uma estrutura lógica, um programa que realiza funções dentro de um
sistema computacional. E é, geralmente, desenvolvido por programadores que utilizam
linguagens de programação para construí-lo. Softwares correspondem aos sistemas
operacionais (Windows, Linux, Mac OS etc), drivers que controlam o comportamento de alguns
hardwares (driver de modem, de impressora, de placa de vídeo etc) e todos os aplicativos
utilizados pelos usuários finais, como editores de texto (Winword, Notepad, Gedit,
[Link] Writer), planilhas eletrônicas (Excel, [Link] Impress, Gnumeric),
navegadores internet (Mozilla, Internet Explorer, Opera), processadores de imagem (Gimp,
Paint, CorelDraw, Adobe PhotoPaint), dentre outros.
O software, por não ser físico e sim lógico, pode ser duplicado e armazenado em disquetes,
cds, discos rídigos (HD). Sua cópia pode ser transportada de um computador para o outro,
desde que estejam conectados em rede.
Como surgiu o Software Livre?
Para entendermos o surgimento do Software Livre, é válido compreendermos, primeiro, o que é
o software proprietário e o papel das grandes empresas de software na monopolização do
conhecimento.
Como mencionado, um software é uma estrutura lógica desenvolvida por programadores. Essa
estrutura lógica, isto é, os tijolos que compõem um software, correspondem aos bits: 0's e 1's.
Porém, um programador não pode desenvolver um programa utilizando-se de 0's e 1's, que é
uma linguagem somente compreensível pela máquina --- e não por seres humanos. Para tanto,
os programadores utilizam linguagens de programação que possuem palavras chaves e
estruturas que permitem enxergar um programa como uma receita de bolo, isto é, um conjunto
de instruções denominado código-fonte. Por exemplo:
Programa pede que o usuário digite sua idade e tecle Enter
Programa recebe a informação (idade)
Se idade for maior ou igual a 18 mostra mensagem na tela: "Você já é um adulto!"
Se idade for menor que 18 mostra mensagem na tela: "Você ainda é um adolescente"
O código-fonte seria a representação desses passos em uma linguagem de programação (C++,
C, Java, Pascal etc). Esse código-fonte ao ser processado por um outro programa,
denominado compilador, transforma-se em 0's e 1's para que possa ser entendido pela
máquina. Quem quiser modificar o programa precisa ter o código-fonte já que 0's e 1's não são
compreendidos pelo homem.
Antigamente, os programadores compartilhavam seus códigos-fontes uns com os outros e,
assim, todos podiam modificar o programa e também partilhavam as mudanças. Este hábito
era bastante difundido nas grandes universidades estadunidenses das décadas de 60 e 70 e
sempre foi bastante condizente com o espírito acadêmico, cujos princípios de liberdade e
cooperação se assemelham aos da cultura hacker.
O Software Proprietário
Quando o computador foi abraçado pelo mercado como uma boa idéia, as coisas começaram a
mudar de rumo. As pesquisas em desenvolvimento de novas soluções cresceram, e empresas
começaram a criar seus produtos para se firmar no mercado. Começaram a aparecer, então,
programas que tinham seus códigos-fontes escondidos como segredo comercial. As empresas
vendiam seus softwares, mas não disponibilizavam seus códigos-fontes. O usuário só recebia o
programa em 0's e 1's, o que tornava possível a utilização do software, mas não mais a
modificação. Isso era estrategicamente interessante para as empresas: elas poderiam
desenvolver ótimos softwares e ninguém saberia como foram feitos, nem seus clientes e muito
menos seus concorrentes.
Além disso, surgiram outros artifícios: os programadores dessas empresas assinavam termos
de compromisso de não divulgação dos segredos da programação, e os softwares vendidos
possuíam licenças cheias de restrições que deviam ser acatadas pelos seus clientes. Essas
licenças incluíam regras para controle de pirataria: os clientes, além de impossibilitados de
modificar o programa, não poderiam fazer cópias dos programas que eles adquiriam, e muito
menos distribuir essas cópias. Alguns programas também só poderiam ser utilizados para fins
específicos. Resumindo, o cliente não era o dono do software. Ele podia somente comprar uma
licença de uso que restringia a utilização daquele programa em apenas um computador.
Essa lógica logo foi se tornando o pensamento comum de um mercado constantemente
bombardeado por propagandas de conteúdo duvidoso. Além disso, as licenças de software são
mais caras do que deveriam.
A má notícia é que poucas pessoas possuem recursos para adquirir um software proprietário e
utilizá-lo em casa. Até mesmo os revendedores de computadores evitam fornecer máquinas
com softwares proprietários embutidos. Como conseqüência, os computadores já vêm com
cópias ilegais. A conhecida pirataria está presente na maioria dos lares do mundo em que há
um computador.
É importante ressaltar que o software distribuído pelas empresas contém, embutido, o
conhecimento de milhares de programadores brilhantes, que por sua vez se valeram do
conhecimento de várias pessoas que vieram antes deles, que desenvolveram teorias e
conhecimento deixados para a humanidade. Estas empresas agora se apropriam de todo esse
conhecimento acumulado que poderia ser compartilhado com outras pessoas.
A Reação: Uma Licença para a Liberdade
Tudo permaneceu assim até que um grupo de hackers programadores do MIT (Instituto de
Tecnologia de Massachussets, nos EUA) perceberam que podiam fazer a diferença.
Os hackers, diferentemente de como são conhecidos e tratados pela
mídia, são pessoas com princípios éticos, defensores da cooperação
e da disseminação do conhecimento através da liberdade da
informação. São caracterizados como pessoas de elevado
conhecimento técnico que amam o que fazem e que sentem prazer
em compartilhar seu saber com os outros. Os hackers,
diferentemente dos crackers e dos defacers, não são criminosos
digitais e possuem uma estrutura hierárquica implícita baseada na
cultura da dádiva (Gift Culture). Quanto mais contribuições um
hacker oferece para a sua comunidade, mais status ele possui dentro dela. Os hackers também
são chamados de geeks.
Essa reação começou pequena, com poucos colaboradores. Um dos programadores do MIT,
Richard Stallman, enfurecido pela comercialização do conhecimento, fundou o Projeto GNU
visando criar uma plataforma de software totalmente livre. Ou seja, no GNU qualquer pessoa
poderia:
1. Utilizar o software para qualquer fim
2. Estudar o código do software
3. Modificar o código do software
4. Redistribuir cópias do software
Esses quatro direitos ficaram conhecidos como as quatro liberdades do Software Livre. O
Projeto GNU conseguiu transformar essas liberdades em uma nova licença de uso chamada
GNU GPL (GNU General Public Licence). Dessa forma, todo software distribuído com tal
licença estava "livre". De acordo com a GNU GPL, a única condição para que alguém pudesse
usufruir desses direitos era que passasse para as outras pessoas os mesmos direitos dos
quais usufruiu. Vale lembrar que a licença não proíbe a venda do Software Livre, somente
garante que conterá as quatro liberdades mencionadas e que estas nunca poderão ser
retiradas do software. Dessa forma, o software livre já nasce livre e permanecerá livre.
O projeto GNU também foi o responsável pelo desenvolvimento de inúmeros softwares livres.
Para cada software proprietário existente, os desenvolvedores faziam um outro similar, livre.
Um dos softwares mais essenciais foi proposto pelo finlandês Linus Torvalds que por conta
própria desenvolveu o núcleo (kernel) de um sistema operacional, batizado de Linux. O Linux e
os softwares desenvolvidos pelo Projeto GNU formaram o primeiro sistema computacional livre,
o GNU/Linux, que atualmente é a principal alternativa ao Microsoft Windows.
Como o Software Livre não é uma entidade única, não pode ser comprado pela Microsoft ou
por qualquer outra empresa. O Software Livre também não vai à falência, já que a única
premissa para sua existência é a de que existam pessoas com necessidades e com disposição
de compartilhar seus códigos-fontes. O número de indivíduos que participam dessa iniciativa e
o número de empresas que têm apostado suas fichas nessas idéias indicam que o software
livre está em crescimento acelerado.
Conceito de Software Livre
Software Livre é Uma Questão de Liberdade, Não de Preço.
O termo Software Livre se refere à liberdade que o usuário tem de executar, distribuir,
modificar e repassar as alterações sem, para isso, ter que pedir permissão ao autor do
programa.
Pode ser definido mais claramente pelas quatro liberdades defendidas pela Free Software
Foundation para os usuários de software:
A liberdade de executar o programa, para qualquer propósito;
A liberdade de estudar como o programa funciona, e adaptá-lo para as suas
necessidades. Acesso ao código-fonte é um pré-requisito para esta liberdade;
A liberdade de redistribuir cópias de modo que você possa beneficiar o próximo;
A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo
que toda a comunidade se beneficie. Acesso ao código-fonte é um pré-requisito para
esta liberdade.
Um programa será considerado livre se todos os seus usuários tiverem essas quatro
liberdades.
Notem que os quatro itens acima não fazem nenhuma referência a custos ou preços. O
fato de se cobrar ou não pela distribuição ou pela licença de uso do software não implica
diretamente ser o software livre ou não.
Nada impede que uma cópia adquirida por alguém seja revendida, tenha sido modificada ou
não por esta pessoa.
Nada impede, também, que as alterações feitas num software para uso próprio sejam mantidas
em segredo. Ninguém é obrigado a liberar suas modificações, se não quiser. Porém, se
escolher fazê-lo, é obrigado a distribuir de maneira livre. Essa é uma observação
importante a se fazer, porque muitas pessoas (especialmente corporações) têm receio de usar
software livre porque temem que seus "concorrentes" tenham acesso a informações e métodos
de trabalho privados. As personalizações não têm que ser distribuídas. A restrição é que, se
elas forem distribuídas de alguma maneira, têm que manter as quatro liberdades descritas
acima.
A liberdade de utilizar um programa significa a liberdade para qualquer tipo de pessoa, física ou
jurídica, utilizar o software em qualquer tipo de sistema computacional, para qualquer tipo de
trabalho ou atividade, sem que seja necessário comunicar ao desenvolvedor ou a qualquer
outra entidade em especial. A liberdade de redistribuir deve incluir a possibilidade de se
repassar tanto os códigos-fontes quanto os arquivos binários gerados da compilação desses
códigos, quando isso é possível, seja o programa original ou uma versão modificada. Não se
pode exigir autorização do autor ou do distribuidor do software para que ele possa ser
redistribuído.
Para que seja possível modificar o software (para uso particular ou para distribuir), é necessário
ter o código-fonte. Por isso, o acesso aos fontes é pré-requisito para esta liberdade. Caso ele
não seja distribuído junto com os executáveis, deve ser disponibilizado em local de onde possa
ser copiado, ou deve ser entregue ao usuário, se solicitado.
Para que essas liberdades sejam reais, elas têm que ser irrevogáveis. Caso o desenvolvedor
do software tenha o poder de revogar a licença, o software não é livre.
Sobre o GNU/Linux
O Linux é um sistema operacional criado pelo finlandês Linus Torvalds e mantido, atualmente,
por vários desenvolvedores pelo mundo. O nome "Linux" veio de uma mistura do primeiro
nome do criador: "Linus" + "Unix". O Unix é um sistema operacional proprietário desenvolvido
pela Bell Labs no início dos anos 70, e que serviu de base para uma variedade de outros
sistemas operacionais.
O desenvolvimento do Linux teve início em 1991, quando Linus, na época estudante de Ciência
da Computação na Universidade de Helsinki, Finlândia, resolveu desenvolver um sistema
baseado no Minix, porém mais robusto. O Minix é um sistema operacional simples criado por
Andrew S. Tanenbaum, com o objetivo de ser usado para estudos acadêmicos.
Então, por que chamar de GNU/Linux? Acontece que Linus Torvalds desenvolveu a parte
central do sistema operacional, conhecida como kernel, e o nome Linux deve ser atribuída
somente a esse núcleo. Como ninguém vai utilizar um sistema operacional que só possui o
kernel, era necessário para Linus Torvalds desenvolver os aplicativos a serem executados.
Enquanto Linus estava desenvolvendo o Linux, Richard Stallman objetivava a criação de um
sistema computacional totalmente livre e (ao contrário de Linus) começou a desenvolvê-lo
pelos aplicativos, como compiladores, editores de textos etc.
Foi da união dos aplicativos desenvolvidos pelo projeto GNU (de Richard Stallman) com o
kernel do Linux (criado por Linus Torvalds) que surgiu o GNU/Linux, comumente chamado de
Linux pela grande maioria das pessoas e também pelos meios de comunicação.
O bom desempenho, aliado à segurança e à possibilidade de personalização do sistema devido
ao código-fonte ser aberto, tornou o GNU/Linux ideal para ser utilizado em servidores. Seu uso
em máquinas de usuário comum tem crescido bastante após a melhoria das interfaces gráficas,
o que está levando o GNU/Linux a ser o alicerce de muitos projetos de inclusão digital.
Distribuições GNU/Linux
Distribuições GNU/Linux são "estruturas" definidas através de uma metodologia que criam uma
"personalidade" para este sistema operacional. São maneiras diferentes de agrupar o software
necessário para se usar o sistema.
Algumas distribuições focam o uso do sistema operacional para um fim específico (servidores,
super computadores, uso doméstico etc.). Outras procuram ser o mais abrangente possível,
oferecendo tudo o que pode ser necessário (e até o que provavelmente nunca o será) em sua
distribuição. Algumas enfocam a estabilidade, outras o moderno, outras a quantidade de
opções; algumas querem ser a mais amigável ao usuário, com a intenção de tornar a
instalação ou o uso mais fácil, entre tantas outras características.
A distribuição ideal é aquela que satisfaça melhor as necessidades específicas do usuário.
Cabe a cada um estabelecer quais são suas necessidades, e a partir daí buscar a distribuição
que melhor atenda a seus desejos.
Debian
Debian é pronunciado "débien" que vem do nome de seu criador, Ian Murdock, e de sua
esposa, Debra. Essa distribuição é conhecida pela sua grande estabilidade conseguida por um
rigoroso esquema de testes, bem como por estar profundamente ligada à filosofia GNU. Isso
ocorre devido ao trabalho de aproximadamente mil desenvolvedores espalhados pelo mundo.
Poucos se conhecem pessoalmente, sendo que tudo é decidido via listas de discussão, por e-
mail e reuniões em chat IRC (canal #debian em [Link]).
Para quem prefere um Debian à brasileira, o Debian-BR-CDD é uma excelente opção. Essa
distribuição é atualmente baseada na próxima versão estável do Debian (também chamada
Sarge) e é voltada para usuários Desktops. Ela traz, além de todas as novidades desta versão,
uma coletânea de pacotes especialmente feita para os usuários brasileiros, um instalador
simplificado e um ambiente desktop amigável.
Kurumin
Kurumin é uma distribuição GNU/Linux nacional, baseada no Knoppix e no Debian, que roda a
partir do CD (sem instalar no disco rígido), mas também pode ser instalada no HD. Bastante
amigável, é ótima como "Meu primeiro GNU/Linux". Além disso, possui diversos programas
para o uso doméstico como gravador de CDs, álbum de fotos digital, suporte a máquinas
digitais e web-cams, suporte a diversas impressoras, fácil configuração com a internet,
aplicativos de escritório, jogos etc. Essas qualidades porém tem um preço. Alguns softwares
contidos em versões do Kurumin não são softwares livres e ele pode apresentar um pouco de
instabilidade em alguns hardwares específicos.
Conectiva
Conectiva Linux é uma distribuição nacional mantida pela Conectiva, baseada originalmente no
Red Hat, mas que já se diferenciou o suficiente para ter sua "personalidade" própria. Essa
distribuição foca o mercado latino-americano e para isso correu atrás para ter suporte para a
maioria do hardware normalmente comercializado por aqui. Recentemente, a Conectiva se
fundiu com a francesa Mandrakesoft, que também possui sua própria distribuição: a Mandrake,
caracterizada pela facilidade de uso e pelo seu extenso conjunto de funcionalidades. A
aglomeração das duas empresas ganhou o nome de Mandriva, mas até o momento ainda não
lançou nenhuma versão da sua distribuição com o novo nome.
Slackware
Slackware é uma criação de Patrick Volkerding surgida em 1993, o que faz dela uma das
primeiras distribuições GNU/Linux. Visa a estabilidade e facilidade de uso, embora nem todos a
considerem fácil de se usar. Um dos preceitos do Slackware é ser a distribuição mais parecida
com o UNIX, tornando-a uma distribuição bastante personalizável, uma vez que quase não
possui ferramentas automáticas de configuração como as outras distribuições. Embora a maior
parte das pessoas ache que para instalar um programa no Slackware seja necessário compilar
seu código-fonte (embora isto seja sempre possível) a distribuição vem com vários programas
compilados e prontos para usar.
Red Hat
É a distribuição comercial mais popular. Atualmente só dá suporte à versão Enterprise, voltada
para servidores de grandes empresas. Porém a Red Hat coordena um projeto chamado
Fedora, que é mantido pela Comunidade de Software Livre.
Tabela de Programas Equivalentes
Tabela de equivalências entre softwares para Windows e GNU/Linux. Alguns softwares
listados na coluna GNU/Linux são proprietários, mas estão identificados como tais.
Tipo de Software Windows GNU/Linux
Escritório
Editoração Eletrônica Adobe PageMaker Scribus, [Link]
[Link], GnomeOffice,
Suite Office MS Office, StarOffice
KOffice
Abiword, [Link] Writer,
Processador de Textos MS Word
Kword
Gnumeric, [Link] Calc,
Planilhas MS Excel
Kspread
Apresentações MS PowerPoint [Link] Impress, Kpresenter
MS Access, Oracle, MS SQL PostgreSQL, MySQL, Firebird,
Banco de Dados
Server Prevayler
Finanças MS Money GNU Cash
Gerenciador de Projetos MS Project Planner (Mr. Project), Dotproject
Multimídia
Tocador de Mp3/Ogg, Winamp, Windows Media Player,
XMMS, Mplayer, Xine, Rhythmbox
estações de rádios Web MusicMatch Jukebox
K3b, XCDRoast, Gnome Toaster,
Gravador de CD Nero, Easy CD Creater
WebCDWriter, CRecord
CD Player, Winamp, Windows
Tocador de CD Grip, Gnome CD, Rhythmbox
Media Player
Windows Media Player,
Mplayer, Xine, GXine, KDE Media
Visualizador de Vídeos RealPlayer, QuickTime,
Player, VLC
Winamp3
Tocador de DVD WinDVD, MicroDVD, Windows Mplayer, Xine, Aviplayer, Ogle,
Media Player VLC, GXine, Totem
Extrator de mp3 MusicMatch, Real Jukebox Grip, Lame, NotLame
Ardour, Audacity, WaveForge,
Editor de áudio SoundForge, CoolEdit
GNUSound, Glame, Sweep
Editor de vídeo (edição
Adobe Premiere, Avid Cinelerra, Kinox, Jahshaka
não-linear)
Notação Musical Finale, Sibelius LilyPond, Rosegarden
Gráficos
Eye of Gnome, GQView, Kview,
Visualizador de imagens ACDSee, Image Viewer
Gthumb, GTKsee, Kuickshow
Visualizador de fotos
Polaroid Drivers Gtkam, Gphoto2
(máquina digital)
Editor de imagem
Paint KPaint, Tuxpaint, Gpaint
(básico)
Adobe Photoshop, Corel
Editor de Fotos PhotoPaint, Macromedia Gimp, ImageMagick, CinePaint
Fireworks
Editor de imagens Inkscape, Sodipodi, [Link]
Corel Draw
vetoriais Draw, Dia, Xfig
Modelagem
3d Studio Max Wings3d, Blender
3D/Animacão
Internet
Mozilla, Firefox, Netscape, Opera,
Navegadores Internet Explorer, Netscape
Konqueror, Epiphany, Sylpheed
Outolook, Outlook Express, Evolution, Mozilla Messenger,
Cliente e-mail
Eudora, Netscape Messenger Thunderbird, Kmail
Prozilla, Kget, Gnome Transfer
Downloader de arquivos Getright, DAP
Manager, GetLeft
Cliente FTP CuteFTP Gftp, Konqueror
Cliente IRC Mirc Xchat, KVirc, BitchX
Licq, Micq, GnomeICU, Gaim,
Kopete, aMSN, Yahoo Messenger
Cliente de Mensagens ICQ, ICQ Lite, MSN, AIM, Yahoo
for Unix, AIM, Everybuddy,
centericq
Video Conferência e GnomeMeeting, NeVoT, IVS, Skype
NetMeeting, Skype
VoIP (prop.)
Lopster, Gnapster, eDonkey,
Compartilhador de Morpheus, Napster, Kazaa,
Xmule, FreeNet, Bittorrent, Nicotine,
arquivos eDonkey, Bittorrent
LimeWire, aMule
Dial-up Vdialer Kppp, gtkdial, Gppp, Modem Lights
Manipulação de arquivos
Gerenciador de arquivos Windows Explorer Konqueror, Nautilus, gmc, Rox
Compactadores e
WinZip, WinRar, arj, rar Ark, zip, FileRoller, gzip, bzip2
descompactadores
Ferramentas Desktop
Visualizador de PDF Adobe Acrobat Reader GhostView, Xpdf, GV, Kghostview
[Link], PDFLatex, GV,
Gerador de PDF Adobe Acrobat Distiller GhostView, Xfig, Ghostscript,
Kghostview
Programas de Scanner Cds que acompanham o scanner Xsane, Kooka
Norton Antivírus, TrendMicro, Dr.
Anti-vírus OpenAntiVirus, Clam Antivírus
Web
Jogos
Tetris Tetris Ltris, XWelltris
Minas Mines KMines, Perlmines, Dmines
Doom (1, 2 e 3), Quake (1, 2 e Enemy Territory, Unreal 2003 e
3), QuakeForge, DarkPlaces, 2004, Quake (1, 2 e 3),
Jogos de tiro
Return to The Castle of QuakeForge, DarkPlaces
Wolfeinstein (proprietários), Cube
Civilization, Sim City 3000, FreeCiv, Sim City 3000 (prop.),
Estratégia
Warcraft 2 Stratagus
Corrida Need for Speed Tux Racer, KartlingRace
Simulador de Vôo MS Flight Simulator Simulador FlightGear
Lemmings Lemmings Pingus
Xadrez ChessMaster Glchess, Xboard, Eboard