Software livre

O que é software livre?

Este artigo responde a diversas dúvidas comuns de novos usuários, desenvolvedores interessados, ou alunos às voltas com trabalhos acadêmicos. Entre as questões, estão incluídas:

  • O que é software livre
  • O que é copyleft
  • Qual a diferença entre software livre e código aberto
  • Quais as obrigações de quem desenvolve ou distribui software livre
  • Quais as licenças de software livre mais comuns
  • Quais os exemplos de softwares livres populares

e muitas outras. Ao final há um guia de referências adicionais sobre o assunto. Veja também a FAQ BR-Linux – Lista de Perguntas Freqüentes.

O que é software livre

Software Livre, ou Free Software, conforme a definição de software livre criada pela Free Software Foundation, é o software que pode ser usado, copiado, estudado, modificado e redistribuído sem restrição. A forma usual de um software ser distribuído livremente é sendo acompanhado por uma licença de software livre (como a GPL ou a BSD), e com a disponibilização do seu código-fonte.

Software Livre é diferente de software em domínio público. O primeiro, quando utilizado em combinação com licenças típicas (como as licenças GPL e BSD), garante os direitos autorais do programador/organização. O segundo caso acontece quando o autor do software renuncia à propriedade do programa (e todos os direitos associados) e este se torna bem comum.

O Software Livre como movimento organizado teve início em 1983, quando Richard Stallman (foto acima) deu início ao Projeto GNU e, posteriormente, à Free Software Foundation.

Software Livre se refere à existência simultânea de quatro tipos de liberdade para os usuários do software, definidas pela Free Software Foundation. Veja abaixo uma explicação sobre as 4 liberdades, baseada no texto em português da Definição de Software Livre publicada pela FSF:

As 4 liberdades básicas associadas ao software livre são:

  • A liberdade de executar o programa, para qualquer propósito (liberdade nº 0)
  • A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades (liberdade nº 1). Acesso ao código-fonte é um pré-requisito para esta liberdade.
  • A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo (liberdade nº 2).
  • A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie (liberdade nº 3). Acesso ao código-fonte é um pré-requisito para esta liberdade.

Um programa é software livre se os usuários tem todas essas liberdades. Portanto, você deve ser livre para redistribuir cópias, seja com ou sem modificações, seja de graça ou cobrando uma taxa pela distribuição, para qualquer um em qualquer lugar. Ser livre para fazer essas coisas significa (entre outras coisas) que você não tem que pedir ou pagar pela permissão, uma vez que esteja de posse do programa.

Você deve também ter a liberdade de fazer modifcações e usá-las privativamente no seu trabalho ou lazer, sem nem mesmo mencionar que elas existem. Se você publicar as modificações, você não deve ser obrigado a avisar a ninguém em particular, ou de nenhum modo em especial.

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 cópias deve incluir formas binárias ou executáveis do programa, assim como o código-fonte, tanto para as versões originais quanto para as modificadas. De modo que a liberdade de fazer modificações, e de publicar versões aperfeiçoadas, tenha algum significado, deve-se ter acesso ao código-fonte do programa. Portanto, acesso ao código-fonte é uma condição necessária ao software livre.

Para que essas liberdades sejam reais, elas tem que ser irrevogáveis desde que você não faça nada errado; caso o desenvolvedor do software tenha o poder de revogar a licença, mesmo que você não tenha dado motivo, o software não é livre.

O que é copyleft?

Copyleft é uma extensão das 4 liberdades básicas, e ocorre na forma de uma obrigação. Segundo o site da Free Software Foundation, “O copyleft diz que qualquer um que distribui o software, com ou sem modificações, tem que passar adiante a liberdade de copiar e modificar novamente o programa. O copyleft garante que todos os usuários tem liberdade.” – ou seja: se você recebeu um software com uma licença livre que inclua cláusulas de copyleft, e se optar por redistribui-lo (modificado ou não), terá que mantê-lo com a mesma licença com que o recebeu.

Nem todas as licenças de software livre incluem a característica de copyleft. A licença GNU GPL (adotada pelo kernel Linux) é o maior exemplo de uma licença copyleft. Outras licenças livres, como a licença BSD ou a licença ASL (Apache Software License) não incluem a característica de copyleft.

Dúvidas e enganos comuns sobre software livre sob a licença GPL

Posso distribuir comercialmente ou cobrar por software livre, de minha autoria ou de terceiros?

Note que a definição de liberdade apresentada acima não faz 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 em ser o software livre ou não. Nada impede que um software livre obtido por você seja copiado e vendido, tenha ela sido modificado ou não por você. Ou seja, software livre não necessariamente precisa ser gratuito.

Portanto, você pode ter pago para receber cópias de um software livre, ou você pode ter obtido cópias sem nenhum custo. Mas independente de como você obteve a sua cópia, você sempre tem a liberdade de copiar e modificar o software, ou mesmo de vender cópias – ou distribui-las gratuitamente.

“Software Livre” não significa “não-comercial”. Um programa livre deve estar disponível para uso comercial, desenvolvimento comercial, e distribuição comercial. O desenvolvimento comercial de software livre não é incomum; tais softwares livres comerciais são muito importantes.

Se eu distribuo um software livre, tenho que fornecer cópias a qualquer interessado, ou mesmo disponibilizá-lo para download público?

A resposta curta seria “não”. Seria uma atitude em sintonia com a filosofia da liberdade de software se você o disponibilizasse para qualquer interessado, preferencialmente em um formato de fácil manipulação (exemplo: imagens ISO de CD-ROMs, pacotes tar.gz com os códigos-fonte ou outros formatos para código executável instalável), mas você não tem esta obrigação.

Entretanto, você tem que deixar o código-fonte à disposição de quem vier a receber o código-executável (caso você não os distribua em conjunto, que é a forma mais apropriada), nos termos da licença. E, naturalmente, tem que respeitar todos os demais termos da licença livre adotada.

Se eu uso um software livre, tenho que disponibilizar meus próprios softwares para o público?

Não. Mesmo se você fizer alterações em um software GPL e guardá-las para seu próprio uso, você não estará infringindo a licença. A obrigação básica da GPL, no que diz respeito a disponibilização de software, é que se você for disponibilizar para terceiros algum software obtido sob os termos da GPL (modificado por você ou não), esta disponibilização deve ocorrer sob os termos da GPL.

Assim, é perfeitamente legal e normal um mesmo desenvolvedor disponibilizar alguns softwares com licenças livres e outros com licenças proprietárias, ter softwares livres e não-livres instalados no mesmo computador, usar softwares livres (como o compilador GCC) como ferramentas de desenvolvimento de softwares proprietários, ou incluir softwares livres e não-livres no mesmo CD-ROM, para citar alguns exemplos.

Outras dúvidas comuns

Veja a resposta a muitas dúvidas freqüentes de desenvolvedores, distribuidores e usuários de Software Livre na GPL FAQ (em português).

Software livre X Código aberto

Em 1998, um grupo de personalidades da comunidade e do mercado que gravita em torno do software livre, insatisfeitos com a postura filosófica do movimento existente e acreditando que a condenação do uso de software proprietário é um instrumento que retarda, ao invés de acelerar, a adoção e o apoio ao software livre no ambiente corporativo, criou a Open Source Initiative, que adota o termo Open Source (Código Aberto) para se referir aos softwares livres, e tem uma postura voltada ao pragmatismo visando à adoção do software de código aberto como uma solução viável, com menos viés ideológico que a Free Software Foundation.

Ao contrário do que muitos pensam, Código Aberto não quer dizer simplesmente ter acesso ao código-fonte dos softwares (e não necessariamente acompanhado das “4 liberdades” do software livre). Para uma licença ou software ser considerado como Código Aberto pela Open Source Initiative, eles devem atender aos 10 critérios da Definição de Código Aberto, que incluem itens como Livre Redistribuição, Permissão de Trabalhos Derivados, Não Discriminação, Distribuição da Licença e outros.

De modo geral, as licenças que atendem à já mencionada Definição de Software Livre (da Free Software Foundation) também atendem à Definição de Código Aberto (da Open Source Initiative), e assim pode-se dizer (na ampla maioria dos casos, ao menos) que se um determinado software é livre, ele também é de código aberto, e vice-versa. A diferença prática entre as duas entidades está em seus objetivos, filosofia e modo de agir, e não nos softwares ou licenças.

Segundo a Free Software Foundation, em sua página sobre o assunto:

O movimento Free Software e o movimento Open Source são como dois campos políticos dentro da comunidade de software livre.

Grupos radicais na década de 1960 desenvolveram uma reputação de facções: organizações que se dividem devido a discordâncias em detalhes das estratégias, e aí se tratavam mutuamente como inimigas. Ou ao menos esta é a imagem que as pessoas têm delas, seja ou não verdadeira.

O relacionamento entre o movimento Free Software e o movimento Open Source é justamente o oposto deste. Nós discordamos nos princípios básicos, mas concordamos (mais ou menos) nas recomendações práticas. Assim nós podemos e de fato trabalhamos juntos em diversos projetos específicos. Nós não vemos o movimento Open Source como um inimigo. O inimigo é o software proprietário.

A Wikipédia traz mais detalhes:

Muitos que preferem o termo software livre e se consideram parte do movimento não acham que software proprietário seja estritamente imoral. Eles argumentam, no entanto, que liberdade é valiosa (tanto social quanto pragmaticalmente) como uma propriedade do software em seu próprio direito, separado da qualidade técnica num sentido limitado. Mais, eles podem usar o termo “software livre” para se distanciarem das alegações que software de “código aberto” é sempre tecnicamente superior a software proprietário (o que é quase sempre demonstravelmente falso, ao menos em um curto período). Nesse sentido, eles alegam que os defensores de “código aberto”, por se concentrarem exclusivamente nos méritos técnicos, encorajam os usuários a sacrificarem suas liberdades (e os benefícios que essas trazem em um longo período) por conveniências imediatistas que o software proprietário pode oferecer.

Os defensores do Código Aberto argumentam a respeito das virtudes pragmáticas do software livre (também conhecido como “Open source” em inglês) ao invés das questões morais. A discordância básica do Movimento Open Source com a Free Software Foundation é a condenação que essa faz do software proprietário. Existem muitos programadores que usam e contribuem software livre, mas que ganham dinheiro desenvolvendo software proprietário, e não consideram suas ações imorais. As definições “oficiais” de software livre e de código aberto são ligeiramente diferentes, com a definição de software livre sendo geralmente considerada mais rigorosa, mas as licenças de código aberto que não são consideradas licenças de software livre são geralmente obscuras, então na prática todo software de código aberto é também software livre.

O movimento software livre, não toma uma posição sobre trabalhos que não sejam software e documentação dos mesmos, mas alguns defensores do software livre acreditam que outros trabalhos que servem um propósito prático também devem ser livres (veja Free content).

Para o Movimento do Software Livre, que é um Movimento Social, não é ético aprisionar conhecimento científico, que deve estar disponível sempre, para permitir assim a evolução da humanidade. Já o Movimento pelo Código Aberto, que não é um Movimento Social, mas voltado ao Mercado, prega que o Software desse tipo traz diversas vantagens técnicas e econômicas. Este segundo movimento surgiu para levar as empresas a adotarem o modelo de desenvolvimento de Software Livre.

Licenças de software livre

Existem muitas licenças de software livre, e nada impede (embora isto não seja recomendado) que cada interessado crie sua própria licença atendendo às 4 liberdades básicas, agregando – ou não – uma cláusula de copyleft.

A Free Software Foundation mantém uma página com uma lista de licenças conhecidas, classificando-as entre livres (compatíveis ou não com a GPL) e não-livres, incluindo comentários sobre elas.

Algumas das licenças livres mais populares são:

Exemplos de softwares livres

Alguns softwares livres notáveis são o Linux, o ambiente gráfico KDE, o compilador GCC, o servidor web Apache, o OpenOffice.org e o navegador web Firefox, entre muitos outros.

Definições

Nas referências empregadas no BR-Linux, assume-se que a expressão “Software Livre” (ou “Free Software”) será empregada conforme a definição da Free Software Foundation, e que a expressão “Código Aberto” (ou “Open Source”) será empregada conforme definido pela Open Source Initiative. Softwares serão considerados como livres quando estiverem sob uma licença que se qualifique como software livre pela definição acima, e serão considerados como abertos quando estiverem sob uma licença que se qualifique como código aberto pela definição acima, levando em consideração a intersecção entre os 2 conjuntos.

Referências

Além dos links mencionados ao longo do texto, visite também os textos abaixo:

FONTE: BR-LINUX.ORG

O que é linux?

Este artigo responde a diversas dúvidas comuns de novos usuários, desenvolvedores interessados, ou alunos às voltas com trabalhos acadêmicos. Entre as questões, estão incluídas:

  • O que é Linux
  • Linux ou GNU/Linux
  • O kernel Linux
  • O sistema operacional Linux (ou GNU/Linux)
  • Como fazer download ou adquirir o Linux

e muitas outras. Ao final há um guia de referências adicionais sobre o assunto. Leia também O que é uma distribuição de Linux e a FAQ BR-Linux – Lista de Perguntas Freqüentes.

O que é Linux

Linux é ao mesmo tempo um kernel (ou núcleo) e o sistema operacional que roda sobre ele, dependendo do contexto em que você encontrar a referência. O kernel Linux foi criado em 1991 por Linus Torvalds, então um estudante finlandês, e hoje é mantido por uma comunidade mundial de desenvolvedores (que inclui programadores individuais e empresas como a IBM, a HP e a Hitachi), coordenada pelo mesmo Linus, agora um desenvolvedor reconhecido mundialmente.

O Linux adota a GPL, uma licença livre – o que significa, entre outras coisas, que todos os interessados podem usá-lo e redistribuí-lo. Aliado a diversos outros softwares livres, como o KDE, o GNOME, o Apache, o Firefox, os softwares do sistema GNU e o OpenOffice.org, o Linux pode formar um ambiente moderno, seguro e estável para desktops, servidores e sistemas embarcado.

Acima você vê 4 telas do sistema operacional Linux em ambiente PC desktop. Mas o sistema funciona em dezenas de outras plataformas, desde mainframes até relógios de pulso, passando por várias arquiteturas: Intel, StrongARM, PowerPC, Alpha etc., com grande penetração também em dispositivos embarcados, como handhelds, PVR, vídeogames e centrais de entretenimento.

Linux ou GNU/Linux?

A Free Software Foundation advoga que o sistema operacional formado pelo núcleo Linux e o conjunto de utilitários e aplicativos que incluem aqueles desenvolvidos pelo seu projeto GNU deve ser chamado de GNU/Linux, e não simplesmente de Linux. A questão tem sido objeto de intensos debates há anos, sem que um posicionamento geral e definitivo seja alcançado.

Naturalmente a posição da FSF não é a única existente. São conhecidas as declarações de Linus Torvalds (que acharia interessante a existência de uma distribuição chamada GNU Linux e mantida pelo projeto GNU), de Eric Raymond e de John Dvorak, entre outros. Há ainda uma interessante citação da própria FSF afirmando que um nome como GNU/X11/Apache/Linux/TeX/Perl/Python/FreeCiv seria absurdo, portanto é necessário estabelecer um limite. Mas, diz ela, “Não pode ser justo dar todo o crédito para uma contribuição secundária (Linux) enquanto se omite a contribuição principal (GNU).” Outra citação digna de nota vem de um editorial do veterano Linux Journal: “Talvez Richard Stallman esteja frustrado porque Linus recebeu as glórias por ter feito aquilo que Stallman pretendia fazer.”

O kernel Linux

(inclui trechos da Wikipédia)

Inicialmente, o kernel Linux foi desenvolvido como um hobby por Linus Torvalds (então um estudante) com o objetivo de desenvolver seu próprio sistema operacional “Unix-like” que rodasse em processadores Intel 80386. Linus chegou a estudar o Minix, um sistema similar de autoria do famoso acadêmico Andrew Tanenbaum, mas não ficou satisfeito com a arquitetura deste (que não era um software livre, inclusive) e resolveu criar o seu próprio sistema. O projeto Linux foi publicamente lançado em 1991 em uma famosa mensagem para a Usenet.

Hoje o Linux é um kernel híbrido monolítico. Drivers de dispositivo e extensões do kernel tipicamente rodam com acesso total ao hardware, embora alguns rodem em espaço de usuário. Ao contrário dos kernels monolíticos padrão, os drivers de dispositivo são facilmente configurados como módulos, e carregados e descarregados enquanto o sistema está rodando. Também ao contrário de kernels monolíticos padrão, drivers de dispositivo podem ser pré-inseridos sob certas condições. Essa última característica foi adicionada para corrigir o acesso a interrupções de hardware, e para melhorar o suporte a multiprocessamento simétrico.

Embora Linus Torvalds não tenha tido como objetivo inicial tornar o Linux um sistema portável, ele evoluiu nessa direção. Linux é hoje, na verdade, um dos kernels de sistema operacional mais portados, rodando em sistemas desde o iPaq (um computador portátil) até o IBM S/390 (um volumoso e altamente custoso mainframe), passando por várias arquiteturas: Intel, StrongARM, PowerPC, Alpha etc., com grande penetração também em dispositivos embarcados, como handhelds, PVR, vídeogames e centrais de entretenimento.

De qualquer modo, é importante notar que os esforços de Linus foram também dirigidos a um outro tipo de portabilidade. Portabilidade, de acordo com Linus, era a habilidade de facilmente compilar aplicativos de uma variedade de origens no seu sistema; portanto o Linux originalmente se tornou popular em parte devido ao esforço para que fosse fácil fazer com que códigos de aplicativos disponíveis para outros sistemas (inclusive no Unix e no sistema GNU) rodassem no Linux.

Hoje, Linus Torvalds continua a dirigir o desenvolvimento do kernel, enquanto outros subsistemas (como ferramentas de desenvolvimento, ambientes gráficos e aplicativos) são desenvolvidos independentemente. A tarefa de integrar todos estes componentes para formar um sistema completo é desempenhada pelas empresas e organizações que mantêm distribuições de Linux.

O sistema operacional Linux (ou GNU/Linux)

(inclui trechos da Wikipédia)

Logo que Linus Torvalds passou a disponibilizar o Linux, ele apenas disponibilizava o kernel (núcleo) de sua autoria juntamente com alguns utilitários básicos. O próprio usuário devia encontrar os outros programas, compilá-los e configurá-los e, talvez por isso, o Linux tenha começado a ter a fama de sistema operacional apenas para técnicos. Foi neste ambiente que surgiu a MCC (Manchester Computer Centre), a primeira distribuição Linux, feita pela Universidade de Manchester, na tentativa de poupar algum esforço na instalação do Linux.

Hoje em dia, um sistema operacional Linux completo (ou uma “distribuição de Linux”) é uma coleção de softwares (livres ou não) criados por indivíduos, grupos e organizações ao redor do mundo, tendo o Linux como seu núcleo. Companhias como a Red Hat, a Novell/SUSE, a Mandriva (união da Mandrake com a Conectiva), bem como projetos de comunidades como o Debian, o Ubuntu, o Gentoo e o Slackware, compilam o software e fornecem um sistema completo, pronto para instalação e uso.

As distribuições de GNU/Linux começaram a ter maior popularidade a partir da segunda metade da década de 1990, como uma alternativa livre para os sistemas operacionais Microsoft Windows e Mac OS, principalmente por parte de pessoas acostumadas com o Unix na escola e no trabalho. O sistema tornou-se popular no mercado de servidores, principalmente para a Web e servidores de bancos de dados, inclusive no ambiente corporativo – onde também começou a ser adotado em desktops especializados.

No decorrer do tempo várias distribuições surgiram e desapareceram, cada qual com sua característica. Algumas distribuições são maiores outras menores, dependendo do número de aplicativos e sua finalidade. Algumas distribuições de tamanhos menores cabem em um disquete com 1,44 MB, outras precisam de vários CDs, existem até algumas que tem versões em DVD. Cada uma tem seu público e sua finalidade.

Veja também a questão O que é uma distribuição de Linux.

Download ou aquisição do Linux

Embora provavelmente a forma mais fácil de obter o Linux seja através dos CDs distribuídos como brinde em diversas revistas nacionais (escolha sempre uma versão recente!), o jeito mais fácil de obter sua cópia sem desembolsar nada a mais é através do download de imagens ISO, que são arquivos (geralmente por volta de 650MB cada um) trazendo o conteúdo completo de um CD-ROM, prontos para serem gravados em um CD, permitindo assim que você obtenha cópias idênticas de um CD original. Verifique na ajuda do seu programa favorito de gravação de CDs como fazer para gravar a partir de uma imagem ISO – quase todos os programas populares dispõem deste recurso, e a operação em geral é simples.

Algumas distribuições (como o Knoppix e o brasileiro Kurumin) são especialmente disponibilizadas na forma de Live CDs, capazes de rodar diretamente do CD e dispensando instalação no disco de seu computador – é uma boa forma de ter seu primeiro contato.

Como o Linux é um software livre, a maior parte dos produtores disponibiliza imagens ISO contendo exatamente o mesmo conteúdo dos CDs vendidos em lojas ou na Internet, e você pode fazer o que quiser com elas – até mesmo gravar em CDs para revendê-las (e se você quiser comprar CDs deste tipo, lojas virtuais brasileiras como a Tempo Real e a LinuxMall estão à disposição). Quando se trata de Linux, este tipo de cópia e revenda não é irregular nem anti-ético, pois é da essência do software livre.

Você pode procurar suas imagens ISO no site de sua distribuição preferida – às vezes será necessário fazer o download de mais do que uma imagem, e em outros casos o download da primeira imagem é obrigatório, e o das outras é opcional. Raras são as distribuições que não disponibilizam imagens ISO de instalação.

Se preferir, procure no site linuxiso.org, cuja especialidade é apontar links para imagens ISO dos CDs das distribuições de Linux do mundo todo.

Como se trata de um download grande (uma distribuição em 3 CDs corresponde a quase 2GB de dados), certifique-se de ter espaço suficiente no seu HD, e utilize um bom gerenciador de download.

Veja também o artigo Escolhendo, obtendo e gravando o Linux: como fazer o download ou comprar.

Referências

Posted under Uncategorized

Deixe um comentário