O que é software livre

Antes dos anos 1980, a indústria da informática preocupava-se muito mais com o hardware do que com o software. Quando a empresa IBM começou a fornecer softwares que funcionavam em conjunto com suas máquinas, o código fonte era provido sem qualquer custo adicional. Código fonte é o conjunto de instruções em uma linguagem de programação, legível aos seres humanos e que deverá passar pelo processo de compilação para ser transformada em valores binários, e aí sim sendo compreendida por uma máquina.

Fonte: Vida de Programador

Ainda nessa década começou um movimento em que muitos dos programas existentes passaram a ser propriedade de alguém ou de uma empresa. Essa situação ainda existe nos dias de hoje, mas nos anos 1980 também surgiu uma importante ação dos programadores: o software livre.

História e conceitos

Richard Mattew Stallman era um programador que trabalhava como pesquisador em inteligência artificial no MIT (“Massachusetts Institute of Technology”) desde 1971. Em 1983, teve dificuldades em usar uma impressora cedida pela Xerox, devido a um pequeno problema em um driver. Ele entrou em contato com os fabricantes se oferecendo para fazer os ajustes para que pudesse usá-la em seu sistema operacional, e de graça.

Stallman, na foto de capa do livro Free as in Freedom: Richard Stallman’s Crusade for Free Software, de Sam Williams (2002)

Para seu espanto, seu pedido foi negado com a justificativa de que o código fonte não poderia ser dado ao conhecimento de terceiros por conter “segredos comerciais” da empresa. Ele acabou recorrendo à assistência técnica, mas refletiu que patentes e direitos autorais estavam atividades usuais dos programadores ao negar esse acesso.

Assim, Stallman idealizou o movimento do Software Livre. Ao longo dos anos, desenvolveu o conceito de copyleft, contrapondo-se ao nome copyright:

“Copyright: all rights reserved” (Direitos autorais: todos os direitos reservados)
“Copyleft: all rights reversed” (Esquerdos autorais: todos os direitos invertidos)

A copyleft permite ao autor estabelecer os usos de sua obra, garantindo o reconhecimento de sua produção e autoria; além disso, permite que cópias possam ser feitas e modificadas, mas sempre sob a mesma licença.

Em 27 se setembro de 1983, Stallman anunciou o Projeto GNU (sigla para GNU is not UNIX) através de um e-mail (uma versão traduzida do anúncio pode ser vista no link). [Ouvi dizer que o animal Gnu vive em sociedades democráticas, sem um líder, em que a maioria opta por se movimentar para um novo pasto ou não… não sei se tem alguma coisa a ver] Com o GNU, começou a escrever o sistema primeiramente pelos utilitários, baseados no UNIX.

O UNIX era um sistema operacional pequeno e simples, multiusuário (várias aplicações e usuários podiam trabalhar em conjunto), multiplataforma (podia ser instalado em qualquer computador) e multitarefa (dezenas de processos eram executados sequencialmente e rapidamente, dando essa impressão). Sua primeira versão foi lançada em 1971 e posteriormente foi distribuído gratuitamente para universidades e órgãos governamentais dos EUA. Funcionou sob uma licença livre em seus primeiros anos, sendo um fator que influenciou sua popularidade.

Para garantir a liberdade de software ao usuário, criou a licença GPL (General Public License). Dessa forma, subverte a relação de poder em que um usuário fica submisso à um fornecedor de software; ninguém pode se apropriar do software, que pertence à comunidade. A GPL contempla quatro liberdades:

  • liberdade 0: pode-se executar o programa, para qualquer propósito;
  • liberdade 1: pode-se estudar como o programa funciona, e adaptá-lo para as próprias necessidades;
  • liberdade 2: pode-se redistribuir cópias a quem as deseje;
  • liberdade 3: pode-se aperfeiçoar o programa, e liberar os aperfeiçoamentos, para que toda a comunidade se beneficie.

Para saber mais sobre o que é uma licença e outros tipos (inclusive a deste site), clique nesse link: licença de uso.

Em 1991, um estudante de Ciência da Computação da Universidade de Helsinki (Finlândia) chamado Linus Benedict Torvalds publicou o código aberto de um núcleo, posteriormente conhecido como Linux. Também conhecido como kernel, ele trabalha sob o sistema operacional, gerenciando aplicativos e funções como drivers, memória e sistema de arquivos. Não era baseado no código do MINIX, elaborado por Andrew Stuart Tanenbaum, apesar de inicialmente usar o sistema de arquivos.

No ano seguinte, o kernel Linux foi combinado com o GNU, que já era praticamente um sistema operacional. Daí surgiu o sistema operacional GNU/Linux que, muitas vezes, é chamado simplesmente de Linux – veja mais sobre ele clicando no link.

Entenda a história dessa tirinha nesse link do Partido Pirata

Qualquer licença livre é também uma licença código aberto (ou Open Source), que é o software produzido colaborativamente. A diferença entre as duas nomenclaturas reside essencialmente na sua apresentação e na ideologia que as alicerçam.

Note que também existem vários softwares gratuitos que não são de código aberto (como o WiZip), assim como existe software com código aberto e que é pago (como o Red Hat).

Por fim, o software proprietário, privativo ou não livre, é um programa licenciado com direitos exclusivos para o produtor. Seu uso, redistribuição ou modificação é proibido ou requer que você peça permissão – o oposto de software livre.

Conclusão

Como todos têm a liberdade de usar, copiar, modificar e contribuir, as pessoas participam de todas as partes do processo de desenvolvimento do software, sendo o conhecimento compartilhado. O software livre passa a ser a apropriação coletiva dos meios de relacionamento na nova realidade e nos dá liberdade de redefinir as leis do cyber espaço. Veja mais algumas vantagens técnicas:

Resposta rápida para possíveis falhas (muitas pessoas em uma comunidade apontando os problemas e trabalhando na modificação dos códigos)

  • Alta qualidade técnica (testado por muitas pessoas)
  • O programador tem mais liberdade (não precisa pedir autorização e pode dedicar-se ao estudo do código, ganhando confiança e portfólio)
  • Proteção contra vigilância (coleta de dados e invasão)
  • Favorecimento à inovação e pequenos empreendedores
  • Qualquer pessoa pode contribuir

A seguir, um documentário “Inproprietário – O mundo do software livre“, trabalho de conclusão do curso de Comunicação Social com habilitação em Jornalismo dos ex-alunos Jota Rodrigo (Johnata Rodrigo de Souza) e Daniel Pereira Bianchi do Centro Universitário UNIFIEO.

Como posso contribuir?

Alguns projetos de código aberto são apoiados por empresas, mas a maioria são obras de dedicação dos participantes envolvidos. Se você tem algum tempo (ou dinheiro) livre, pode contribuir de volta para seus projetos favoritos de software livre e ajudá-los a crescer. Além de “devolver” o conhecimento que se recebe, você melhora seus conhecimentos, resolve seus problemas também (o que chamam de “coçar sua coceira”), acrescenta a sua carreira profissional e até se diverte.

Veja algumas formas de contribuir (em algumas, nem precisa ser programador):

  1. Trabalhar usando software livre: você precisa desacomodar e acostumar a alguns novos hábitos
  2. Divulgar uso: através de palestras, blogs e conversas
  3. Testar o programa em diferentes plataformas e browsers
  4. Reportar bugs: de preferência, detalhar ao máximo como foi utilizado, incluindo arquitetura, sistema operacional, etc (não relate erros se você estiver usando uma versão antiga do software, pois os desenvolvedores já podem ter corrigido o problema)
  5. Trabalhar colaborativamente com o código (através de GitHub, por exemplo)
  6. Participar de fóruns e listas de e-mails: caso algum usário seja rude ao responder alguma dúvida sua, o recomendado é captar o que ele pode acrescentar e depois fazer fazer diferente; se for responder, seja gentil (ninguém nasceu sabendo, nem mesmo você), orientando para manuais e bons links (tem muito conteúdo espalhado na internet, às vezes é difícil achar a resposta)
  7. Construa ou ajude a incrementar a documentação: traduzindo, acrescentando informações, aplicando correções e atualizações (escrever em inglês permite que um maior número de pessoas possa entender e usar o software)
  8. Ajude a traduzir o código para outros idiomas: pode usar ferramentas automáticas de tradução, mas sempre é bom verificar depois (para não aparecer “bolachas” em vez de “cookies”, por exemplo)
  9. Atuar na portabilidade: recompilar pacotes para outras versões e outros sistemas operacionais
  10. Correção de bugs e novas funcionalidades: geralmente os projetos possuem uma lista de problemas a serem resolvidos e pontos a serem investidos
  11. Melhorar o design de interface com o usuário
  12. Mesmo que não tenha muito a acrescentar na linguagem em que o programa está sendo feito, você pode ajudar em outros pontos como a hospedagem, páginas web do projeto, etc
  13. Financeiramente (só pagando um café ou até periodicamente)
  14. Ser voluntário também não só com os desenvolvedores, mas também com instituições que promovem o software livre, seja trabalhando como voluntário para sua manutenção, em eventos ou mesmo financeiramente (principalmente as organizações menores e mais próximas de você)

Fontes