Projeto GNU

Por Djalma Nogueira, Hemerson Nogueira e Tiago Gonçalves em 04/05/2011

1.O que é o Projeto GNU

gnulogo.jpg

Iniciado em 1983 por Richard Stallman, o projeto GNU (acrônimo GNU's Not Unix) objetiva, através da cooperação de diversos desenvolvedores pelo mundo, o desenvolvimento de um sistema de software completo e compatível com UNIX desenvolvido com a ideologia de ser livre. Apesar de seu nome expressar a idéia de que o GNU não é o UNIX, o mesmo é baseado no UNIX, diferenciando-se pela liberdade dos usuários.
O objetivo principal e permanente do GNU é oferecer um sistema compatível com o Unix que seja 100% software livre.

2.O Linux e o Projeto GNU

a.O linux
Criado em 1991, 8 anos após o início do projeto GNU, por Linus Torvalds na Universidade de Helsinki na Finlândia, o Linux é um sistema operacional de código aberto (open source) distribuído gratuitamente pela internet. O código aberto permite que qualquer um veja como funciona o sistema, motivo pelo qual o mesmo é desenvolvido voluntariamente por programadores ao redor do mundo que tem por objetivo melhorá-lo.
Hoje o Linux é mantido por uma comunidade mundial de desenvolvedores (que inclui programadores individuais e empresas como a IBM, a HP e a Hitachi), coordenada pelo próprio Linus.

b.O kernel do Linux
O kernel é a base principal de um Sistema Operacional. É uma das artes que compõe um sistema operacional e que tem por finalidade alocar os recursos da máquina para os outros programas que estão executando. O kernel também cuida da partida e parada de outros programas. O kernel foi o que realmente foi desenvolvido a princípio por Linus. A partir daí, grosseiramente falando, bastava juntar uma série de aplicativos com o kernel para que um sistema operacional fosse criado. É praticamente o que o projeto GNU faz.

c.O kernel do GNU e o kernel do Linux
O projeto GNU dispõe de seu próprio kernel, o GNU HURD. Atualmente se encontra em funcionamento, mas não está pronto para usuários. Existe uma estimativa que uma versão alfa esteja pronta em breve. Então o kernel do Linux tornou-se disponível. O projeto GNU é sem dúvidas uns dos grandes propulsores da popularidade do Linux.

d.GNU e Linux (relacionamento entre ambos)

gnulinux.jpg

Analisando cada parte em sua verdadeira tarefa, vemos que o Linux e o GNU se relacionam de forma tão intensa a que os usuários nem possam imaginar.Quando nos deparamos com um individuo dizendo que está rodando o Linux em sua máquina, isso em parte é verdade, acontece que quem está em execução na verdade é somente o seu Kernel, o sistema em si é o GNU, elaborado por esse projeto, e que foi adicionado ao Linux.
O que torna o GNU um sistema bem eficiente uma vez que pode rodar em outros Kernels, sem haver a necessidade de ser o Kernel Linux.
Já o Linux, que se trata somente do Kernel puro, cuja função é alocar recursos da máquina para programas executáveis, é considerado inútil se agir sozinho em uma máquina, o que o faz dependente do sistema operacional GNU ou de outro sistema operacional.
Com isso quando nos tratamos de Linux não podemos esquecer da sua interdependência ao GNU, e então usaremos a notação GNU/Linux.

e.As distribuições (distros)
As distribuições do GNU/Linux chamadas de distros (Sistema de distribuição totalmente gratuito) seguem várias diretrizes definidas pelo projeto GNU para serem consideradas como tal. Ou seja, podem existir distribuições Linux que não se adequam as diretrizes do projeto GNU, logo não pertencendo ao mesmo.
Só o kernel GNU/Linux não é suficiente para ter um sistema funcional. Por isso que existem diversos grupos de pessoas, empresas e organizações que decidem distribuir o Linux junto com outros aplicativos. Este é o significado essencial de distribuição. Cada distribuição tem sua caraterística própria, como o sistema de instalação, o objetivo, a localização de programas. Segue abaixo uma lista com as principais distribuições:

• Debian – distribuição que independe de kernel podendo ser executada em kernels como o GNU hurd ou kernel BSD é a distribuição oficial do projeto GNU;
• Ubuntu – variante da Debian tem o objetivo de ser mais amigável com o usuário. É a melhor para o primeiro contato dos usuários com o Linux;
• Slackware – primeira distribuição lançada no mundo tem como objetivo ser estável, de fácil uso, flexível e poderosa;
• SuSE – distribuição comercial tem como foco o usuário com conhecimento técnico no Linux e não o usuário iniciante;
• Red Hat Enterprise Linux – distribuição comercial voltada a servidores de grandes e médias empresas;
• Fedora - patrocinada pela Red Hat dá prioridade ao uso do computador como estação de trabalho;
• Mandriva – é uma fusão da distribuição francesa Mandrake com a distribuição brasileira Conectiva;

3. Ideologia do software livre

a.SOFTWARE LIVRE x SOFTWARE PROPRIETÁRIO
Como já foi supracitado, o projeto GNU foi criado com o objetivo de desenvolver um sistema operacional Unix-Like (baseado em Unix) totalmente livre. Livre se refere à liberdade, e não ao preço. Significa que você está livre para executar, distribuir, estudar, mudar e melhorar o software.
Segundo Stallman, “o coração do projeto GNU é uma idéia: que software deve ser livre, e que a liberdade do usuário vale a pena ser defendida”.
A fim de defender essa idéia, Stallman idealizou a Licença GPL (Licença Pública Geral). A GPL baseia-se em 4 liberdades:
• 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). O 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 deles (liberdade nº 3). O acesso ao código-fonte é um pré-requisito para esta liberdade.

Software Livre não significa não comercial. Um programa livre deve estar disponível para uso comercial, desenvolvimento comercial, e distribuição comercial. Existem exemplos de distribuições que são comerciais, a exemplo da SuSE e da Red Hat.
O conceito de Software proprietário é o oposto do conceito de Software Livre. A execução, distribuição, mudanças (quando possível) e melhoramentos (quando possível) só são realizados com prévia permissão do proprietário. A liberação para uso e distribuição é feita através de pagamento de licença. O código não é aberto a alterações.
Alguns dos principais exemplos de softwares proprietários é o Microsoft Windows e o Mac OS.

A fim de reiterar o que está sendo dito, segue um vídeo da comemoração dos 25 anos do projeto GNU, onde se fala um pouco mais sobre liberdade. Afinal como é dito no próprio vídeo: "Todo conhecimento é livre".

4. Software proprietário (não livre) escondido na sua distribuição GNU/Linux.

Dentre as pessoas que gostam de software livre, o favorito é o GNU/Linux, mas nem todos sabem que esse sistema operacional não é totalmente livre, pois ele possui vários softwares não livre embutidos, um deles é o pacote corefonts que não é livre e pertence a Microsoft, existe nele restrições de uso de pacote e o impedimento de alterações. O corefonts pode ser instalado opcionalmente junto ao ImageMagick que é livre, fazendo com que os usuários pensem que o software é totalmente livre.
No Linux também existe drivers não livres, como drivers de placa de vídeo, placa de rede sem fio etc, utilizados para facilitar a compatibilidade de hardwares com o Sistema Operacional.
Isso ocorre não por culpa do projeto GNU, nem por que o desejo do projeto seja romper com sua ideologia de liberdade. Mas o problema vem da tendência das empresas da distribuição do Linux adicionarem softwares não livres ao GNU/Linux “em nome da conveniência e do poder”, conforme é dito pelo próprio Richard Stallman. Apenas a Red Hat oferece um pacote completamente livre.
O Projeto GNU disponibiliza em seu site uma lista de distros para quem tem o interesse em softwares totalmente livres. Veja essa lista aqui: http://www.gnu.org/distros/free-distros.html.
A adição de software não-livre ao GNU/Linux pode torná-lo mais popular, mas ao mesmo tempo isso gera um uma descontinuidade no comprometimento da comunidade com a meta de liberdade.
Segundo Stallman, “se a nossa comunidade continuar se movendo nesta direção, ela pode redirecionar o futuro do GNU/Linux para um mosaico de componentes livres e não-livres…se isto acontecer, nossa campanha pela liberdade terá falhado”.

5. Relação entre Projeto GNU e Compiladores

A grande vantagem de software livre e de código aberto é a disponibilidade do código fonte do programa. Como o código é aberto, na maioria das vezes, alguns desses não vem prontos para a execução. Será necessário compilá-los.
A princípio isso pode parecer nada prático, porém o acesso ao código fonte nos permite otimizá-los antes da compilação.
O GCC, GNU Compiler Collection é um conjunto de compiladores desenvolvidos por Richard Stallman para ser o compilador padrão do Projeto GNU. Com o tempo o mesmo foi adotado por diversos desenvolvedores que resolveram otimizá-lo. Algo possível por seu código ser aberto. Pelo fato do mesmo ser mantido por diversos desenvolvedores ao redor do mundo, é considerado um dos compiladores que tem a maior a adaptação a plataformas distintas.

6.Tópicos Relacionados

Portable Unbutu : http://pesquompile.wikidot.com/portable-ubuntu

Licenças X Codigo Livre X Codigo Aberto: http://pesquompile.wikidot.com/alternativas-codigo-livre

Ubuntu: http://pesquompile.wikidot.com/ubuntu-t

Ubuntu: http://pesquompile.wikidot.com/ubuntu-n

Licença GPL : http://pesquompile.wikidot.com/licenca-gpl

Kurumin: http://pesquompile.wikidot.com/kurumin

7. Referências:

SILVA, Gleydson Mazioli. Guia Foca GNU/Linux. Disponível em:<http://www.guiafoca.org/>. Acesso em: 30 de Abril de 2011.

Página Oficial do Projeto GNU. Disponível em:<http://www.gnu.org/>. Acesso em: 02 de Maio de 2011.

LAUNCHBURY, Vincent. Software não livre escondido na sua distribuição GNU/Linux. Disponível em:<http://www.hardware.com.br/artigos/software-nao-livre-linux//>. Acesso em: 03 de Maio de 2011

CAMPOS, Augusto. O que é Linux. BR-Linux. Disponível em <http://br-linux.org/faq-linux>. Acesso em 03 de maio de 2011.

GNU Compiler Collection. Disponível em: http://pt.wikipedia.org/wiki/GNU_Compiler_Collection. Acesso em 03 de maio de 2011.

GCC, the GNU Compiler Collection. Disponível em: http://gcc.gnu.org/. Acesso em 03 de maio de 2011.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License