Open Source

Destaques, Informática, Software em Março 20, 2010 1 Comentário

open source

Open Source refere-se a um programa ou software em que o código-fonte está disponível ao público em geral, para a utilização e/ou modificação do seu desenho original, a título gratuito.

O Open Source é geralmente criado com base num esforço cooperativo, através do qual os programadores melhoram o código e partilham as mudanças com a restante comunidade.

A maior justificação para este movimento reside no princípio de que um grupo de programadores que não se preocupe com os direitos de propriedade ou lucros, consegue produzir software com mais utilidade e com menos erros (bugs). O conceito assenta na análise que é feita por cada um dos membros da comunidade, para descobrir e eliminar possíveis erros no código, um processo que não é utilizado no desenvolvimento de produtos comerciais, sendo por isso uma mais-valia dos produtos Open Source.

Os princípios básicos por detrás da iniciativa Open Source, é que, quando programadores podem ler, modificar e redistribuir o código-fonte relativamente a uma parte do software, o software evolui. O Open Source surgiu na comunidade tecnológica como uma resposta às empresas de software proprietário.

Software proprietário, como o próprio nome indica, é propriedade privada e controlada. Na indústria de informática, proprietário é considerado o oposto de aberto. Um desenho ou técnica proprietária é aquela que é propriedade de uma empresa. Implica também que a companhia não divulgou especificações que permitiria a outras companhias reproduzir ou alterar o produto.

A Iniciativa Open Source (OSI – Open Source Initiative)

Open Source é uma norma de certificação emitida pela Open Source Initiative (OSI), que indica que o código fonte de um programa de computador é disponibilizado gratuitamente ao público geral. OSI dita ainda que para ser considerada “OSI Certified” um produto deve obedecer os seguintes critérios:

  • O autor ou titular da licença do código-fonte não pode receber royalties (valor pago pelo direito de uso de um bem pertencente a outrem) sobre a distribuição do programa;
  • O programa deve ter o código-fonte acessível ao utilizador;
  • O autor deve permitir modificações e derivações do trabalho sob o nome original do programa;
  • A nenhuma pessoa, grupo ou área de actividade pode ser negado o acesso ao programa;
  • Os direitos relacionados com o programa não devem depender do facto do programa ser parte de uma determinada distribuição de software;
  • O software licenciado não pode colocar restrições quanto a outro software que é distribuído juntamente com ele.

(No fim desta página pode encontrar a definição de Open Source, tal como disponibilizada pela OSI)

Licenciamento de Software Livre

Nem todos os softwares de código aberto são distribuídos sob a mesma licença. Alguns podem utilizar uma licença de software livre, copyleft, ou compatível com GPL. A licença GNU GPL é uma licença de software livre e uma licença copyleft, enquanto um “GNU Lesser General Public License” é uma licença de software livre, mas não uma licença copyleft forte. Existem muitos tipos diferentes de licenças de software livre. Alguns compatíveis com GNU GPL, outros não.

A Iniciativa Open Source aprova licenças de código aberto depois de terem percorrido com sucesso o processo de aprovação e estarem de acordo com a definição (acima). Existem actualmente mais de cinquenta licenças aprovadas pela OSI.

Por exemplo, o GNU General Public License (GPL) é uma licença que acompanha algum software de fonte aberta que especifica a forma como o software e seu respectivo código-fonte pode ser livremente copiado, modificado e distribuído. O mais amplo uso da GPL é, em referência ao GNU GPL, que é comummente abreviada simplesmente como GPL, quando se entende que o termo se refere à licença GNU GPL. Um dos princípios básicos da GPL é que quem adquire o material deve torná-lo disponível para qualquer outra pessoa sob a mesma licença. O GPL não cobre outras actividades que não sejam copiar, distribuir e modificar o código fonte.

Pode ler os detalhes e também as novas licenças aprovadas pela OSI na página de licenças Open Source.

Programadores & Empresas – Porquê investir naquilo que é gratuito?

Um programador de software pode ter as suas próprias razões para contribuir para projectos de código aberto. Alguns podem estar simplesmente à procura de diversão ou de um desafio, enquanto outros poderão estar empenhados em melhorar as suas habilidades de programação, ou quererem associar-se a um grupo ou projecto. Em muitos casos existe a oportunidade de ganhar dinheiro, dado que podem existir projectos de código aberto financiados pelo governo ou empresas patrocinadoras. Ao contrário dos projectos comerciais, os projectos de código aberto permitem ao programador dar a conhecer o seu nome, que certamente beneficiará o seu currículo, o que lhe poderá proporcionar outras oportunidades de participar em novos projectos Open Source ou até mesmo comerciais.

O Open Source também não passa despercebido no mundo comercial, levando mesmo algumas empresas a apostar neste domínio. Mas, sabendo que o objectivo destas empresas é o lucro, porque se interessarão em projectos Open Source? Em muitos casos, as empresas têm a possibilidade de lucro com a venda de suplementos sobre ferramentas ou módulos, ou prestar serviços de consultoria e suporte técnico para o programa.

Alguns projectos Open Source bem sucedidos

Sendmail
Sendmail é um agente de transferência de correio electrónico (MTA), usado para encaminhamento e entrega de e-mail. A versão original do Sendmail foi escrita por Eric Allman no início de 1980. Estima-se que o Sendmail está instalado em 60 a 80 por cento dos servidores de correio electrónico na Internet.

Servidor Web Apache
Muitas vezes referido simplesmente como Apache, um código aberto de domínio público, desenvolvido por um pequeno grupo de programadores. A primeira versão do Apache, baseado no servidor “Web NCSA httpd”, foi desenvolvido em 1995. O desenvolvimento do servidor Web Apache é assegurado por um grupo de cerca de 20 programadores voluntários, o chamado Grupo Apache (Apache Group). No entanto, porque o código fonte está disponível livremente, qualquer um pode adaptar o servidor para necessidades específicas, e existe uma grande biblioteca pública de add-ons para o Apache.

Linux
(Pronuncia-se lee-nucks ou LIH-nucks). Um sistema operativo de código aberto distribuído gratuitamente, que funciona várias plataformas de hardware. O kernel do Linux foi desenvolvido principalmente por Linus Torvalds. Porque é livre, e porque corre em muitas plataformas, incluindo PC’s e Macintoshes, o Linux tornou-se uma extremamente popular alternativa aos sistemas operativos proprietários.

GNOME
Acrónimo para GNU Network Object Model Environment. (Pronunciada guh-nome). GNOME é parte do projecto GNU e parte do software livre, ou do movimento de código aberto. GNOME é um ambiente de trabalho do género do Windows que funciona em UNIX ou sistemas semelhantes, e não é dependente de qualquer gestor de janelas. A versão actual funciona em Linux, FreeBSD, Solaris e IRIX. O objectivo principal do GNOME é fornecer um conjunto de aplicações fáceis de usar, num ambiente de trabalho igualmente simples.

Definição de Open Source

O software Open Source é normalmente distribuído com o código-fonte sob uma licença Open Source. A OSI define os seguintes termos com os quais o software deve estar de acordo.

Introdução
Open Source não significa apenas acesso ao código-fonte. Os termos de distribuição de software Open Source devem obedecer aos seguintes critérios:

1. Redistribuição livre
A licença não deve restringir nenhuma parte de vender ou oferecer o software como um componente de uma distribuição de software agregado contendo programas de várias fontes diferentes. A licença não deve exigir um royalty ou outra taxa para tal venda.

2. Código-fonte
O programa deve incluir o código-fonte, e deve permitir a distribuição tanto na forma de código-fonte, como compilada. Quando alguma forma de um produto não é distribuída com o código-fonte, deve existir um meio amplamente divulgado de obter o código sem nada mais do que um custo de reprodução razoável, preferencialmente, através da Internet sem custo. O código-fonte deve ser a forma preferencial com a qual um programador modificaria o programa. Código-fonte deliberadamente ofuscado não é permitido. Formas intermediárias como a saída de um pré-processador ou tradutor não são permitidas.

3. Trabalhos derivados
A licença deve permitir modificações e trabalhos derivados, e deve permitir a sua distribuição sob os mesmos termos da licença do software original.

4. Integridade do código-fonte do autor
A licença pode restringir o código fonte de ser distribuído em forma modificada, somente se a licença permitir a distribuição de “arquivos de patch” com o código fonte, com o propósito de modificar o programa em tempo de compilação. A licença deve explicitamente permitir a distribuição de software construído a partir do código-fonte modificado. A licença pode exigir que trabalhos derivados tenham um nome ou versão diferentes dos do software original.

5. Sem Discriminação Contra Pessoas ou Grupos
A licença não deve discriminar contra nenhuma pessoa ou grupo de pessoas.

6. Sem discriminação contra campos de trabalho
A licença não deve restringir ninguém de fazer uso do programa em algumas áreas específicas de trabalho. Por exemplo, não pode restringir o programa de ser usado numa empresa, ou de ser usado para pesquisa genética.

7. Distribuição da licença
Os direitos atribuídos ao programa devem-se aplicar a todos para quem o programa for redistribuído sem a necessidade da execução de uma licença adicional por essas partes.

8. A licença não deve ser específica de um produto
Os direitos atribuídos ao programa não podem depender do programa ser parte de uma distribuição de software em particular. Se o programa for extraído dessa distribuição e usado ou distribuído dentro dos termos da licença, todas as partes a quem o programa é redistribuído devem ter os mesmos direitos que são concedidos em conjunto com a distribuição de software original.

9. A licença não deve restringir outro software
A licença não deve colocar restrições noutro software que seja distribuído juntamente com o software licenciado. Por exemplo, a licença não deve insistir que todos os restantes programas distribuídos no mesmo meio, devam ser software Open Source.

10. A licença deve ser independente da tecnologia
Nenhuma das disposições da licença pode ser subordinada a qualquer indivíduo, tecnologia ou estilo de interface.

Tags:

Um comentário para “Open Source”

  1. [...] Artigo retirado de “Open Source” - http://www.laibit.com/?p=85 e “Apresentação da sessão sobre Software Libre e Comunidades no Mestrado de Open Source [...]

Deixe um comentário