Este guia coloca todas as noções básicas de software livre em contexto para ajudá-lo com a sua iniciação num campo tão variado, crescente e dinâmico que temos hoje de desenvolvimento de software. A zona de Software livre do developerWorks é sua fonte para obtenção de informações com instruções, ferramentas e atualizações de projetos que irão ajudá-lo no desenvolvimento com tecnologias de software livre e no uso dessas tecnologias com produtos IBM®. As áreas de tópicos incluem Eclipse (em inglês), Apache Derby (em inglês), Apache Geronimo (em inglês), linguagens de script, tais como, PHP (em inglês), Python (em inglês) e Perl (em inglês), bem como discussões mais amplas sobre licenciamento de software livre e desenvolvimento de software livre.

O que é tecnologia de software livre?

Em uma palavra, software livre é colaboração. Mais especificamente, é colaboração pública em um projeto de software. A IBM tem se comprometido com o software livre de forma significativa, com contribuições em mais de 120 projetos, incluindo mais de US$ 1 bilhão no desenvolvimento do Linux®. De acordo com a Open Source Initiative (OSI), isto pode ser definido desta maneira: "o software livre promove a confiabilidade e qualidade do software, suportando revisão de peer independente e rápida evolução do código de origem. Para ser certificado por OSI, o software deve ser distribuído com uma licença que garanta o direito de ler, redistribuir, modificar e usar o software livremente."

O software livre também pode ser aplicado ao movimento popular de pessoas, organizações e empresas que buscam colocar este tipo de software em uso oficial. De acordo com a Open Source Initiative, o software livre consiste em 10 pontos, que são reproduzidos abaixo. O software livre não significa apenas acesso ao código de origem. Os termos de distribuição do software livre devem estar em conformidade com os seguintes critérios:

1. Distribuição gratuita
A licença não restringirá nenhuma parte de vender ou doar o software como um componente de uma distribuição de software agregada contendo programas de várias origens diferentes. A licença não exigirá uma taxa por direitos autorais ou outra taxa para tal venda.

2. Código de origem
O programa deve incluir o código de origem e deve permitir a distribuição em código de origem, bem como em formato compilado. Onde algum formato de um produto não é distribuído com o código de origem, deve haver um meio bem divulgado de obter o código de origem por nada mais do que um custo de cópia preferencialmente razoável, por meio de download na Internet sem encargos. O código de origem deve ser o formato preferencial no qual um programador modificaria o programa. Um código de origem deliberadamente ofuscado não é permitido. Formatos intermediários, como a saída de um pré-processador ou tradutor, não são permitidos.

3. Trabalhos derivados
A licença deve permitir modificações e trabalhos derivados, e deve permitir que eles sejam distribuídos de acordo com os mesmos termos da licença do software original.

4. Integridade do código de origem do autor
A licença pode restringir a distribuição do código de origem em formato modificado apenas se a licença permitir a distribuição de "arquivos de correção" com o código de origem com o propósito de modificar o programa no tempo de construção. A licença deve permitir explicitamente a distribuição de software construído a partir de código de origem modificado. A licença pode requerer que trabalhos derivados tenham um nome ou número de versão diferente do software original.

5. Nenhuma discriminação contra pessoas ou grupos
A licença não deve discriminar nenhuma pessoa ou grupo de pessoas.

6. Nenhuma discriminação contra campos de trabalho
A licença não deve restringir ninguém de fazer uso do programa em um campo de trabalho específico. Por exemplo, ela não pode restringir o programa de ser usado em uma empresa, ou de ser usado para pesquisa genética.

7. Distribuição de licença
Todos os direitos vinculados ao programa devem ser aplicados a quem o programa for redistribuído, sem necessidade de execução de uma licença adicional por esses terceiros.

8. A licença não deve ser específica de um produto
Os direitos vinculados ao programa não devem depender da parte essencial do programa de uma distribuição de software específica. Se o programa for extraído dessa distribuição e usado ou distribuído dentro dos termos da licença do programa, todas as partes para as quais o programa for redistribuído deverão ter os mesmos direitos que foram concedidos juntamente com a distribuição do software original.

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

10. A licença deve ter tecnologia neutra
Nenhuma provisão da licença pode ser baseada em tecnologia individual ou em estilo de interface.

Consulte os artigos do developerWorks "Open source licensing, Part 1: The intent" e "Open source licensing, Part 2: Academic v. reciprocal" para obter informações adicionais.

Confira também o white paper, "Integrating Open Source into your business (US)" para obter informações adicionais sobre software livre e computação aberta, os benefícios de desafios do software livre e como integrar o software livre em sua estratégia de TI.

Por que a tecnologia de software livre é importante?

A atração inicial que a maioria dos usuários de computadores têm pelo software livre é o preço. Os programas de software livre geralmente são doados pelo autor. No entanto, o custo zero não é uma qualidade intrínseca do software livre.

Há um argumento pragmático e filosófico favorável ao desenvolvimento de software livre:

  1. De acordo com o GNU Manifesto (US), as pessoas têm um direito moral ao formato legível por humanos de um programa de computador.

O que é FOSS?

FOSS significa Free and Open Source Software. Este termo é usado para o software que atende à definição em livre (US) ou à definição em software livre (US), quando não é necessário fazer uma distinção.

O que o software livre tem a ver com "cerveja grátis" e "discurso livre"?

A palavra em inglês "livre" é complicada, porque significa liberdade ou gratuidade, como em nenhum custo para o recebedor. Quando os proponentes ao software livre vão fazer seus discursos, geralmente eles devem começar fazendo suas observações para que o ouvinte saiba se o orador está se referindo a "livre" como em "discurso livre", que é uma questão de política, ou a "grátis" como em "cerveja grátis." Como qualquer estudante universitário pode relatar, alguém precisa arcar com o custo de criação da cerveja (ou software) enquanto outros consomem a cerveja (ou software) e a apreciam sem nenhum custo.

Como posso começar a usar o software livre?

A decisão de iniciar o desenvolvimento de software livre é uma decisão mais política e de licenciamento do que uma decisão de tecnologia. Consulte a lista da OSI de licenças de software livre aprovadas (US) e faça sua seleção, de acordo com suas necessidades e planos para seu projeto. Consulte os artigos do developerWorks "Open source licensing, Part 1: The intent" e "Open source licensing, Part 2: Academic v. reciprocal" para obter informações adicionais. Você pode consultar um advogado especialista em propriedade intelectual se achar que os termos das licenças existentes são confusos ou se tiver dúvidas.

No início de 2005, especialistas em licenças de software livre previram que a comunidade veria menos licenças de software livre, embora não tenha ficado claro se essa previsão era mais uma esperança do que uma expectativa.

O que é LAMP?

LAMP significa Linux, Apache, MySQL e PHP. No entanto, dependendo com quem você fala, o P pode significar Perl ou Python. Em geral, o P é considerado como PHP. LAMP também tem um significado mais amplo. LAMP representa um maneira flexível de criar um aplicativo sem proprietário baseado em servidor. Cada um dos programas que formam o termo pode ser substituído por uma alternativa que melhor atenda às necessidades do aplicativo. Pode ser feito upgrade de cada componente de forma independente, embora isto geralmente seja feito com cuidado e planejamento. O melhor de tudo, cada programa em LAMP é livre, quase livre, nos dois significados da palavra.

O developerWorks oferece excelentes artigos e tutoriais sobre Linux (em inglês), Apache (em inglês), MySQL (em inglês), PHP (em inglês), Python (em inglês) e Perl (em inglês).

Em qual linguagem o software livre é escrito?

Em todas. A tecnologia por trás do software livre não é o elemento mais importante do software livre. O elemento importante é a decisão do autor ou dos autores em liberar o software como software livre e usar uma das muitas linguagens de software livre.

O software livre é legalizado?

Sim, e quase todas as pessoas que usam e-mail ou surfam na Web são usuárias de software livre. A maioria dos e-mails passam por um servidor de software livre durante seu percurso pela Internet. A maioria dos servidores da Web dependem de software livre. O Google é baseado em software livre. Conforme a OSI enfatiza, as engrenagens da Internet, incluindo transportes de correio, servidores da Web e FTP, são virtualmente baseadas em software livre.

O software livre não é warez, que é software distribuído sem permissão dos proprietários de copyright ou sem uma licença apropriada.

O que são esforços de software livre da IBM?

Resumidamente, a IBM é uma força significativa que suporta a inovação e colaboração de software livre. A empresa participa de mais de 120 projetos colaborativos contribuídos para a comunidade de software livre, incluindo Eclipse (em inglês), Apache Derby (em inglês) e Apache Geronimo (em inglês). A IBM também está contribuindo com Apache Tuscany (US) e Apache Harmony (US).

A IBM possui uma licença de software livre?

Sim, a Licença Pública Comum. Consulte Common Public License (CPL) Frequently asked questions (em inglês) para obter informações complementares sobre a CPL.