Buscar

Software Livre-1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 73 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 73 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 73 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Software Livre
Conteúdo
Aula 1 – Histórico e Filosofia do Software Livre
· 1.1 Introdução
· 1.2 Um Pouco de História        
· 1.3 Surgimento do Software Livre
· 1.4 O Software Livre
· 1.5 Alguns Benefícios do Software Livre
· 1.6 Filosofia do Software Livre
· 1.7 Software Freedom Day
Aula 2 – Ambientes de Software Livre
· 2.1 Introdução
· 2.2 Sistemas Operacionais
· 2.2.1 GNU/Linux
· 2.3 Ferramentas de Desenvolvimento        
· 2.4 Servidores
· 2.5 Suítes e Aplicativos
Aula 3 – Configuração de Ambientes de Software Livre 
· 3.1 Preparação do Ambiente   
· 3.2 Ubuntu 
· 3.2.1 Versão Desktop (Escritório)     
· 3.2.2 Unity 
· 3.3 Ubuntu Servidor      
Aula 4 – Ferramentas Livres de Programação e Banco de Dados para Desenvolvimento de Sistemas
· 4.1 Esclarecimento Inicial
· 4.2 Ferramentas Livres de Desenvolvimento (IDE)
· 4.2.1 NetBeans
· 4.2.2 Eclipse        
· 4.3 Ferramenta Livre de Banco de Dados
· 4.3.1 Criando um Bando de Dados como MySQL Administrator e Consultando com o MySQL Query Browser
Aula 5 – Licenças Livres
· 5.1 Licenças Livres        
· 5.1.1 Copyright 
· 5.1.2 Copyleft 
· 5.2 Tipos de Licenças
· 5.2.1 GNU General Public License (GPL)
· 5.2.2 LGPL (Library ou Lesser General Public License)
· 5.2.3 BSD (Berkeley Software Distribution)
· 5.2.4 MPL (Mozilla Public License)
· 5.2.5 MIT (Massachusetts In Copyleft stitute of Technology) License        
· 5.3 Software Livre x Software em Domínio Público        
· 5.4 Software Livre e Copyleft  
· 5.5 Venda de Software Livre   
Aula 6 – Redução de Custos de Propriedade Usando Software Livre        
· 6.1 Redução de Custos de Propriedade Usando Software Livre        
· 6.2 O Software Livre como Modelo de Gestão de TI       
· 6.3 Software Livre no Governo Federal
· 6.4 Casos Sobre a Redução de Custos no Governo Federal
· 6.4.1 Banco do Brasil
· 6.4.2 Caso do Serpro
· 6.4.3 Caso do Ministério de Desenvolvimento Agrário
· 6.4.4 Caso do TRT 4ª Região (Judiciário Brasileiro)       
Aula 7 – Considerações Sobre Migração para Software Livre
· 7.1 Migração
· 7.2 Riscos
· 7.2.1 Aspectos Culturais
· 7.2.2 O Que Pode Causar Problemas?        
· 7.2.3 Mitigação de Riscos
· 7.4 Processo de Migração para Software Livre
· 7.5 Orientações Gerais para Processo de Migração        
Aula 1 – Histórico e Filosofia do Software Livre
O Software Livre vem ganhando cada vez mais espaço. Ao longo dos anos, esse tipo de programa deixou de ser uma exclusividade de programadores, entusiastas da livre distribuição de conhecimento e passou a fazer parte das máquinas de grandes corporações governamentais, empresas privadas e até dos usuário domésticos. A partir de agora, você acompanhará como foi o surgimento e a evolução do Software Livre e terá subsídios para se posicionar: afinal, software livre ou software proprietário?
Ao longo desta aula você será capaz de compreender a definição existente por trás da expressão “Software Livre” e perceberá as diferenças existentes entre esse tipo de software e o chamado Software Proprietário. Você conhecerá a história e compreenderá como foi o surgimento do Software Livre. Também serão apresentados os quatro tipos de liberdades fundamentais para a pressuposição de que um software seja livre, por meio de um conjunto de características definidas pela Free Software Foundation. Ao final da aula, você conhecerá a filosofia por trás do Software Livre e o conjunto de características próprias de um Código Aberto (Open Source).
“Porque eu tenho que escrever o GNU? Eu considero ser uma regra de ouro: se eu gosto de um programa eu tenho que compartilhá-lo com outras pessoas como eu. Eu não posso, com a consciência limpa, assinar um contrato de não divulgação de informações ou um contrato de licença de uso de software. De modo que eu possa usar programas de computador sem violar os meus princípios, eu decidi juntar uma quantidade suficiente de software livre, de modo que eu possa continuar usando os computadores sem utilizar nenhum programa que não seja livre”.
Com essa ideia, Richard Stallman fez com que o processo de desenvolvimento crescesse e ganhasse adeptos pelo mundo todo, consolidando, com isso, a criação da FSF (Free Software Foundation). Em 1984, apaixonados por tecnologia e por programação, os fundadores trocavam mensagens e trechos de códigos “livres”, construindo, colaborativamente, os primeiros componentes de um sistema operacional que tinha a proposta de ser um Software Livre.
1.1 Introdução
Software Livre (SL), segundo a definição criada pela Free Software Foundation, é qualquer programa de computador que pode ser executado, estudado, redistribuído e modificado sem restrições. Assim, podemos inferir que esse conceito de Software Livre se opõe ao conceito de Software Proprietário, ou não livre, que é aquele cuja cópia, redistribuição, modificação e execução são, de alguma forma, restritos pelo seu criador ou distribuidor.
Ao contrário do que ocorre com o SL, para que o usuário de um Software Proprietário (expressão que foi criada em oposição ao conceito de Software Livre), possa utilizar, copiar, ter acesso ao código-fonte ou fazer sua redistribuição, deve solicitar autorização ao proprietário ou pagar para poder fazê-lo: será necessário, portanto, adquirir uma licença.
1.2 Um Pouco de História
Na década de 1950 e início da década de 1960, praticamente todos os softwares eram produzidos por acadêmicos e pesquisadores corporativos que trabalhavam em colaboração. Por isso, os softwares não eram tidos propriamente como commodities, assim, sistemas operacionais e demais programas eram distribuídos amplamente e mantidos pela sua própria comunidade de utilizadores. O código-fonte era distribuído em conjunto com o software, pois seus utilizadores frequentemente precisavam modificá-lo para corrigir falhas ou adicionar novos recursos.
No decorrer da década de 1960, conforme os sistemas operacionais, montadores, compiladores e linguagens de programação foram evoluindo e os custos com a produção de software aumentavam. Na época, os softwares vinham empacotados junto ao hardware (o custo com a produção do software vinha imbutido nos custos do hardware). Enquanto isso, uma pequena e crescente indústria de software se formava para tentar incluir seus produtos no hardware a ser vendido.
Um acontecimento interessante ocorrido em Janeiro de 1969, denominado processo antitruste “Estados Unidos contra IBM”, já demonstrava a insatisfação com os softwares embutidos. Nesse episódio, o governo dos Estados Unidos moveu um processo contra a IBM, alegando que a prática de vender hardware com software embutido era anticompetitiva.
Nos anos 1970, a AT&T distribuiu versões iniciais do Unix sem custos para pesquisadores governamentais e acadêmicos, mas estas versões já não possuíam permissões para redistribuição ou distribuição de versões modificadas. Nessa época, já era bem perceptível o crescimento do número de softwares que eram vendidos.
Nos anos de 1970 e no início de 1980, começava-se a perceber que a indústria do software já tomava medidas enérgicas para garantir os seus interesses, impedindo que os usuários pudessem estudar e modificar o código dos programas produzidos. Em 1980, a indústria de software conseguiu na justiça a extensão da lei de copyright aos programas de computadores. Assim, nessa época, montadoras de computador e companhias envolvidas apenas com software começaram a cobrar licenças de software rotineiramente, anunciando isto como "Produtos de Programa". Também foram impostas restrições quanto ao desenvolvimento de novos softwares que, agora, eram vistos como bens ativos, por meio de direitos autorais, registro de marcas e contratos de arrendamento.
Em 3 de fevereiro de 1976, Bill Gates assinou uma mudança nos tempos quando escreveu a sua famosa carta aberta a hobbistas. Ela pedia aos entusiastas da computação que “maneirassem” na pirataria e espalhassem a mensagem de que o que os hackers chamavam de "compartilhamento" era, nas palavras dele, "roubo".
Assim, definitivamente, o rumo que o software estava tomando já não agradava maisos desenvolvedores e entusiastas da computação aberta e do desenvolvimento livre de software.
1.3 Surgimento do Software Livre
Se, de um lado, a comercialização do software parecia selada, de outro, era visível a frustração de alguns usuários com a mudança de cultura na indústria do software. Principalmente por parte da comunidade hacker. Em 1984,Richard Stallman, membro de longa data desta comunidade, anunciou o Projeto GNU. O Projeto GNU foi lançado com o intuito de criar um sistema operacional livre de limitações quanto à utilização de seu código-fonte. Ele veio aliado a uma frase mundialmente conhecida: “GNU is not Unix”, pois a ideia era desenvolver o primeiro Sistema Operacional Livre, com todas as funcionalidades do Unix e que rodasse programas compatíveis com ele, mas que fosse um software totalmente livre e desenvolvido de forma colaborativa.
Richard Stallman também lançou o Manifesto GNU, que foi publicado em 1985, para esboçar o Projeto GNU e explicar a importância da liberdade no software. Logo após o lançamento do manifesto, ele cunhou o termo "Software Livre" e fundou a Free Software Foundation (em português: Fundação para o Software Livre), que tinha a finalidade de promover o conceito e a definição de Software Livre, que foram publicados em 1986.
Em 1991, um jovem matemático finlandês (Linux Torvalds) divulgou na Internet kernel um sistema operacional baseado no Unix, mas com código fonte aberto. Nascia então o conhecido sistema operacional GNU/Linux.
1.4 O Software Livre
Um software é considerado livre quando atende aos quatro tipos de liberdade para os usuários do software. Essas características foram definidas pela Free Software Foundation.
Liberdade 0 – Liberdade para executar o programa para qualquer propósito
Liberdade de executar o programa significa dizer que qualquer tipo de pessoa física ou jurídica pode utilizar o software em quantas e quais máquinas desejar, em qualquer tipo de sistema, para qualquer tipo de trabalho ou atividade, sem nenhuma restrição imposta pelo fornecedor.
Liberdade 1 – Liberdade de estudar como o programa funciona e adaptá-lo para às suas necessidades
Para que se tenha liberdade de estudar ou modificar o software (para uso particular ou para distribuir) é necessário ter acesso ao código-fonte. Por isso, a disponibilidade desses arquivos é pré-requisito para a liberdade do software. Cada licença determina como será feito o fornecimento do código fonte para distribuições típicas, como é o caso de distribuições em mídia portátil somente com os códigos binários já finalizados (sem o fonte). As licenças serão melhor estudadas nas próximas aulas.
Liberdade 2 – Liberdade de redistribuir cópias, de modo que você possa ajudar ao seu próximo
Liberdade de redistribuir o programa compilado, isto é, em formato binário, necessariamente inclui a obrigatoriedade de disponibilizar seus códigos-fonte.
Liberdade 3 – Liberdade de modificar o programa e liberar estas modificações, de modo que toda a comunidade se beneficie
Caso o software venha a ser modificado e o autor da modificação queira distribuí-lo, gratuitamente ou não, será também obrigatória a distribuição do código fonte das modificações, desde que elas venham a integrar o programa. Não é necessário a autorização do autor ou do distribuidor do software para que ele possa ser redistribuído, já que as licenças de software livre assim o permitem.
Perceba que o acesso ao código-fonte do software é um pré-requisito para as liberdades de 1,2,3. Para que essas liberdades sejam reais, elas devem ser irrevogáveis. Caso o desenvolvedor do software tenha o poder de revogar a licença, o software não é livre. A maioria dos Softwares Livres é licenciada por meio de uma “Licença de Software Livre”, como a GNU GPL, a mais conhecida. Essas licenças serão melhor estudadas na aula 5.
Com base nessas informações, podemos listar alguns benefícios do Software Livre, principalmente em ambientes corporativos.
1.5 Alguns Benefícios do Software Livre
Hoje, existe não só uma quantidade suficiente de profissionais no mercado, mas todo um ecossistema econômico consolidado, com empresas prestadoras de serviços em Software Livre. Com isso, a organização que faz a opção pelo SL tem possibilidade de organizar a sua própria estratégia, já que pode ter acesso ao código-fonte da aplicação. Não há, portanto, a dependência com relação a um único fornecedor ou de um único padrão de mercado.
O SL, por possuir seu código-fonte aberto, permite que falhas eventuais sejam identificadas e resolvidas de forma mais fácil, rápida e econômica do que num Software Proprietário. Assim, identificado um problema, a resolução pode ser efetuada por qualquer programador com conhecimento do código-fonte.
Mas é importante lembrar que o fato de o código ser aberto não significa que ele seja vulnerável. A utilização de procedimentos seguros de desenvolvimento de programas permite que o código final, compilado a partir do código-fonte aberto, seja menos vulnerável a ataques.
O SL também utiliza padrões abertos, ou seja, normas técnicas de conhecimento público. A utilização desses padrões facilita a comunicação e a interoperabilidade entre usuários e organizações que, mesmo utilizando softwares diferentes (como os proprietários, por exemplo), conseguem desenvolver projetos, encaminhar documentos e tomar decisões a partir da utilização de padrões mundialmente conhecidos. Por isso, também é possível a interoperabilidade com os padrões proprietários. Isso permite uma implantação mais tranquila, pois o histórico de informações dos sistemas baseados em padrões proprietários pode ser aproveitado após a migração para o SL.
Outra característica é a continuidade de desenvolvimento. O usuário tem a garantia de que está utilizando um software que poderá continuar a ser desenvolvido mesmo que os programadores ou empresas responsáveis por ele desistam do desenvolvimento da aplicação.
É importante lembrar também que o SL tem custo de licenciamento Zero. O Software Livre não possui custos de licenciamento. Mas isso não significa que não exista a necessidade de investimento na implantação de um software livre. O detalhe é que, geralmente, esses investimentos são realizados para melhorar ou customizar o software ao ambiente da organização.
1.6 Filosofia do Software Livre
A filosofia do Software Livre está pautada na livre troca de conhecimentos e de pensamentos tradicionalmente encontradas no meio científico. Essa troca é a base de um processo de evolução que alimenta a ampliação do raciocínio, das ideias, das contribuições e, consequentemente, da construção do software. Para o movimento do SL, não é ético aprisionar conhecimento científico. Ele deve estar sempre disponível para permitir a evolução da humanidade.
A filosofia do SL pressupõe, acima de tudo, uma atitude de respeito quanto ao uso de um aplicativo. Ela resume o uso consciente do computador, por meio do estudo das funções por trás de cada clique, por trás de cada instrução do código liberado. Nesse aspecto, tal como as ideias, os programas de computador não são tangíveis e podem ser copiados sem perda. Os programadores por trás do Software Livre buscam não apenas desenvolver aplicativos “grátis”, mas também possibilitar que o conhecimento ali empregado esteja disponível a todos.
Na comunidade de SL o aperfeiçoamento de programas vem por meio de sugestões, que são constantemente melhoradas e transformadas em inovações práticas. Isso, de forma muito rápida! Essas contribuições podem ocorrer em fóruns ou grupos de discussão, por meio de uma verdadeira tempestade de ideias, vindas de uma imensa comunidade de membros voluntários, que são os seus maiores colaboradores.
É importante ressaltar que, hoje, o SL se expandiu para além do mundo seleto dos experts em informática e passou a ser uma aposta que vem ganhando cada vez mais o mercado e investimentos privados. O SL agora é encarado por uma vasta gama de usuários e desenvolvedores como uma possibilidade de legalidade, aprendizado e evolução. Muitos defensores do Software Livreargumentam que a liberdade é valiosa não só do ponto de vista técnico, mas também moral e ético.
1.7 Software Freedom Day
No dia 20 de setembro comemora-se o Dia da Liberdade do Software (Software Freedom Day) com eventos envolvendo as comunidades de usuários e desenvolvedores de software livre em todo o mundo.
O movimento do Código Aberto (Open Source), encabeçado pela OSI – Open Source Initiative, enfatiza a superioridade técnica do Software Livre com relação ao Software Proprietário, ao menos em potencial.
Os defensores do Open Source possuem uma filosofia um pouco diferente da filosofia do Free Software, pois o foco do argumento diz respeito às virtudes pragmáticas do SL ao invés das questões morais.
A discordância básica dos movimentos está no discurso. Enquanto o foco do movimento encabeçado pela FSF chama a atenção para valores morais, éticos, direitos e liberdade, o movimento encabeçado pela OSI defende um discurso mais voltado ao mercado. O movimento pelo Open Source prega que o software desse tipo traz diversas vantagens técnicas e econômicas, pois surgiu para levar as empresas a refletirem e adotarem o modelo de desenvolvimento Open Source.
Obviamente, a diferença entre os movimentos "Software Livre" e "Código Aberto" está apenas na argumentação. Mas, como os dois movimentos são em prol dos mesmos softwares, é comum que esses grupos se unam em diversas situações ou que sejam citados de uma forma agregadora por meio da sigla "FLOSS" (Free/Libre and Open Source Software).
Recapitulando...
Nesta aula, você foi capaz de compreender que, Software Livre, segundo a definição criada pela Free Software Foundation, é qualquer programa de computador que pode ser executado, estudado, redistribuído e modificado sem restrições. Você viu ainda que, em 1984, Richard Stallman anunciou o projeto GNU, um projeto lançado com o intuito de criar um sistema operacional livre de limitações quanto à utilização de seu código fonte. De acordo com a FSF, um software é considerado livre quando atende aos quatro tipos de liberdade para os usuários do software:
· Liberdade para executar o programa para qualquer propósito.
· Liberdade de estudar como o programa funciona e adaptá-lo para as suas necessidades.
· Liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo.
· Liberdade de modificar o programa, e liberar estas modificações, de modo que toda a comunidade se beneficie.
Por fim, você percebeu que a filosofia do Software Livre (Free Software) está pautada na livre troca de conhecimentos e de pensamentos, pressupondo, acima de tudo, uma atitude de respeito quanto ao uso de um aplicativo. Já o movimento do Código Aberto (Open Source) foca as virtudes pragmáticas e comerciais do software livre ao invés das questões morais. Os movimentos "Software Livre" e "Código Aberto" podem ser reconhecidos através da sigla "FLOSS" (Free/Libre and Open Source Software).
Aplicando o Conhecimento
· “Nos anos 1970, a AT&T distribuiu versões iniciais do Unix sem custos para pesquisadores governamentais e acadêmicos, mas estas versões não possuíam permissões para redistribuição ou distribuição de versões modificadas, portanto, não podem ser consideradas Software Livre” Com base nos seus conhecimentos acerca de Software Livre, você concorda ou discorda da afirmação acima? Explique o porquê.
· Explique o que eram os “Produtos de Programa" anunciandos pelas montadoras de computador e companhias envolvidas com softwares?
· Na década de 1980, foram impostas restrições quanto ao desenvolvimento de novos softwares, que passaram a ser vistos como bens ativos, por meio de direitos autorais, registro de marcas e contratos de arrendamento. Explique no que consiste cada uma dessas três formas de propriedade.
· Descreva, resumidamente, as principais ideias contidas na carta aberta a hobistas (escrita em 1976 por Bill Gates) e no Manifesto GNU, publicado em 1985 por Richard Stallman.
· Elabore uma tabela organizada cronologicamente de acordo com os principais acontecimentos que culminaram com o surgimento do Software Livre.
· Disserte sobre o seu entendimento a respeito da filosofia do software livre.
· Defina o que é um Software Proprietário e elenque suas vantagens e desvantagens com relação ao Software Livre.
· Descreva algumas das principais vantagens do SL com relação ao Software Proprietário.
· Quais as diferenças entre a filosofia do Software Livre e a Filosofia do Código Aberto?
 
Aula 2 – Ambientes de Software Livre
Atualmente, a oferta de Software Livre é muito grande, sejam Sistemas Operacionais com as mais diversas particularidades, sejam Editores de Textos, Ferramentas de Desenvolvimento Flash, Servidores, IDEs, Sistemas Gerenciadores de Bancos de Dados e mais uma infinidade de ambientes, utilitários, suites e aplicativos. Nesta aula, veremos alguns desses ambientes.
Ao final desta aula você conhecerá alguns Sistemas Operacionais: Distribuições GNU/Linux, tal como Ubuntu, OpenSUSE, Debian, Slackware, Fedora, CentOS e LinuxMint. Você também compreenderá as principais características de algumas ferramentas de desenvolvimento, servidores e aplicativos baseados em Software Livre.
A demanda pelo Software Livre é uma crescente nas grandes corporações. De acordo com pesquisa realizada pela Global Graphics, 84% das grandes organizações americanas utilizam, pelo menos, seis peças desse tipo de software em seu negócio. Além disso, 54% dos CIOs - Chief Information Officer – usam mais de 10 diferentes produtos de Software Livre. Essa constatação ocorreu em uma entrevista que contou com cerca de 100 CIOs no Reino Unido e 300 CIOs nos EUA, em organizações com mais de 1.000 funcionários. A reportagem completa você encontra em:
http://www.computerworlduk.com/news/open-source/18518/demand-for-freeware-strong-in-large-businesses/.
2.1 Introdução
Existe uma infinidade de Softwares Livres, vários deles largamente utilizados em organizações públicas e privadas no Brasil e no mundo. Mesmo o usuário doméstico também tem um gigantesco número de possibilidades para testar e trabalhar com o SL, desde utilitários, IDEs, anti-vírus, até suítes de edição de documentos, aplicativos de edição de vídeo e áudio, jogos, etc. Por isso, obviamente, a intenção desta nossa aula não é esgotar o assunto, mas dar uma ideia panorâmica sobre algumas das possibilidades mais conhecidas que estão disponíveis para usuários em diversos níveis. A seguir, você encontrará a enumeração de alguns deles.
2.2 Sistemas Operacionais
2.2.1 GNU/Linux
O Linux é mais famoso entre os Sistemas Operacionais Modernos Livres. O termo GNU/Linux designa a união do Kernel Linux com as ferramentas disponíveis pelo projeto GNU. Assim, o Linux é o kernel de um sistema operacional que depende de uma série de ferramentas para ser um sistema operacional completo.
Uma distribuição Linux é um kernel acrescido de uma série de programas. Por isso, o Linux possui várias distribuições. Cada distribuição Linux possui suas particularidades, tais como forma de se instalar um pacote (ou software), interface de instalação do sistema operacional em si, interface gráfica, suporte a hardware e uma infinidade de outros detalhes. Desta forma, o usuário pode definir que distribuição Linux atende melhor às suas necessidades.
Geralmente, uma distribuição de Linux específica não satisfaz totalmente as necessidades de usuários experts, que acabam recorrendo à Internet para completar sua distribuição com programas adicionais. E isso é bom! Esta flexibilidade proporcionada pelo sistema é justamente o que esses usuários buscam. A facilidade de se obter programas ou pacotes gratuitos com qualidade para Linux na Internet é um dos fatores que mais cativam a legião de fãs deste sistema ao redor do mundo.
Atualmente, consideramos duas empresas distribuidoras de Linux como as maiores do mercado. A norte-americana Red Hat e a europeia Suse. Já no Brasil, com a crescente popularização do Linux, existe a Canonical como uma das principais distribuidoras. Em todo o mundo, existem outras distribuições muito populares, comoSlackware, Debian, etc.
Uma vez escolhida a distribuição Linux que você utilizará, o próximo passo é fazer o download para gravação e instalação em seu computador. É extremamente recomendável optar por uma distribuição Linux popular, pois isso significa que ela é bem testada e você encontrará documentação abundante na Internet, caso precise de ajuda. Logo abaixo, você verá algumas dessas versões.
Ubuntu GNU/Linux
Ubuntu é um sistema operacional baseado em Linux desenvolvido pela Canonical, é perfeito para notebooks, desktops e servidores. Ele contém todos os aplicativos que você precisa: navegador web, programas de apresentação, edição de texto, planilha eletrônica, comunicador instantâneo e muito mais. O Ubuntu é uma das distribuições Linux mais populares da atualidade. É considerado um dos sistemas Linux mais amigáveis e suas versões são muito dedicadas ao usuário final (desktop). O Ubuntu foi originalmente baseado no Debian Linux, possui foco em desktop e publicação de novas versões lançadas semestralmente.
Para maiores informações, visite o site oficial do Ubuntu Linux ou a comunidade do Ubuntu Linux no Brasil.
OpenSUSE GNU/Linux
O OpenSUSE Linux é a versão livre do belíssimo sistema operacional Novell SuSE. Além de se comportar de forma muito estável e robusta como servidor, também é muito poderoso quando o assunto é desktop. Seu diferencial é o famoso YaST (Yeah Another Setup Tool), um software que centraliza todo o processo de instalação, configuração e personalização do sistema Linux, comparando-se ao painel de controle do Windows. O YaST pode ser usado para configurar o sistema inteiro, como por exemplo, a configuração de periféricos (placa de vídeo, placas de som, rede, configurar serviços do sistema, firewall, usuários, boot, repositórios, idiomas, instalar e remover softwares, etc.). O YaST talvez seja a mais poderosa ferramenta de gestão do ambiente Linux. Este é um projeto Open Source patrocinado também pela Novell e ativamente em desenvolvimento.
Para maiores informações, visite o site oficial do OpenSUSE Linux ou a comunidade brasileira OpenSUSE Linux.
Debian GNU/Linux
O Debian é uma das distribuições Linux mais antigas e populares. Ele serviu de base para a criação de diversas outras distribuições populares, tais como Ubuntu e Kurumin. Sua versão estável é exaustivamente testada, o que o torna ideal para servidor (segurança e estabilidade).
Usuários consideram que o Debian GNU/Linux é mais que um simples SO, pois ele vem com mais de 29.000 pacotes contendo softwares pré-compilados, o que torna fácil a instalação deles na máquina. Esse é o chamado sistema de empacotamento .deb.
Para maiores informações, visite o site oficial do Debian Linux ou a comunidade brasileira Debian Linux.
Slackware GNU/Linux
Slackware Linux, junto com o Debian e Red Hat, é uma das primeiras distribuições. Foi idealizada por Patrick Volkerding, Slack – apelido adotado por sua comunidade de usuários – e tem como características principais leveza, simplicidade, estabilidade e segurança. Esta versão é indicada para quem procura uma distribuição Linux voltada para servidor ou para aqueles que desejam aprofundar os conhecimentos acerca do Linux.
Embora seja mais voltada para o usuário expert ou hacker, o Slackware possui um sistema de gerenciamento de pacotes simples, assim como sua interface de instalação, que é uma das poucas que continua em modo-texto, mas nem por isso se faz complicada.
Já foi considerado um "Linux padrão", mas sua popularidade diminuiu muito depois do surgimento de distribuições mais amigáveis. Mesmo assim, o Slackware continua sendo uma distribuição muito apreciada e respeitada, pois não mudou sua filosofia. Ele continua fiel aos padrões UNIX e é composto apenas por aplicações estáveis.
Para maiores informações, visite o site oficial do Slackware Linux ou o site da comunidade Slackware Linux do Brasil.
Fedora GNU/Linux
Fedora é uma das mais populares e estáveis distribuições Linux que existem atualmente. Ele representa um conjunto de projetos patrocinados pela Red Hat e direcionados pelo Projeto Fedora, um projeto desenvolvido por uma imensa comunidade internacional de pessoas focadas em prover e manter as melhores iniciativas por meio dos padrões livres do software de fonte aberto. Este é um sistema destinado a usuários que buscam um Sistema Operacional com poderes de Servidor, mas com as facilidades das ferramentas de configuração gráficas ou um Sistema Operacional para aqueles que simplesmente desejam um desktop mais robusto.
O Fedora conta com um ciclo de desenvolvimento rápido. A cada seis meses, em média, um novo Fedora Linux é liberado pelo Fedora Project. A própria comunidade em si é uma das mais ativas da internet e o Fedora conta com uma farta ajuda online, mesmo sem oferecer o suporte técnico direto da Red Hat.
O manuseio de pacotes é feito de forma inteligente e automática com a ajuda do Yum, que cuida das atualizações e resolve as dependências de todos os pacotes, baixando o que for necessário ao sistema dos repositórios e gerenciando a instalação. Encontra-se para o Fedora todo o tipo de aplicações, desde suítes de escritório poderosas até players de vídeo e de áudio com execução de quase todos os formatos conhecidos, além de uma generosa coleção de jogos, todos instaláveis com alguns simples cliques ou uma única linha de comando.
Para maiores informações, visite o site oficial do Projeto Fedora ou a página da comunidade do Projeto Fedora no Brasil.
CentOS GNU/Linux
CentOS é uma distribuição Linux de classe Enterprise derivada de códigos fonte gratuitamente distribuídos pela Red Hat Enterprise Linux e mantida pelo CentOS Project. Esse sistema suporta tanto ambientes de servidores para aplicações de missão crítica quanto ambientes de estações de trabalho.
O CentOS GNU/Linux foi criado para ajudar e ser ajudado por usuários de todos níveis de conhecimento. Ele possui numerosas vantagens, incluindo uma comunidade activa e crescente, rápido desenvolvimento e teste de pacotes, extensa rede para downloads, desenvolvedores acessíveis, múltiplos canais de suporte em português e suporte comercial por meio de parceiros.
Para maiores informações, visite o site oficial do CentOS Linux ou o site comunidade do CentOS Linux no Brasil.
LinuxMint
A proposta do LinuxMint é ser uma distribuição de desktop com visual elegante, amigável, confortável de usar e bem atualizada. Linux Mint é uma distribuição Linux irlandesa e possui duas versões: uma baseada em Ubuntu (com o qual é totalmente compatível e partilha os mesmos repositórios) e outra versão baseada em Debian. A evolução foi rápida e hoje é uma distribuição completa e bem resolvida, com ferramentas próprias de configuração, aplicativo de instalação de pacotes baseado na web, menus personalizados, entre outras características únicas. Sempre com um visual bem clean e elegante.
A versão inclui drivers, codecs e recursos que permitem fazer em modo gráfico configurações que em alguns sistemas sistemas são feitas através do modo texto. O Mint agregou essas facilidades e incorporou outras, sendo considerado um Ubuntu mais polido, com excelente seleção de softwares, belo desempenho e design. Esta foi uma das primeiras distribuições a fazer sucesso com os usuários pela facilidade em instalar programas, instalação e configuração automática de dispositivos e afins.
Utiliza por padrão o desktop Gnome modificado, com um menu no painel inferior junto à barra de tarefas (o MintMenu), similar ao menu do KDE, ou o menu "Iniciar" do Windows. O propósito da distribuição é providenciar um sistema Linux que funcione "out-of-the-box"; isto é, esteja pronto para uso assim que terminar a instalação. Dessa maneira, o único trabalho do usuário será o de personalizar a aparência, se desejar e instalar programas extra caso necessite.
Outras razões para o sucesso do Linux Mint, listados na página do projeto são: a velocidade com que a comunidade responde às demandas (uma solicitação postada no fórum do site pode estar já implementada no current em menos de uma semana);por ser derivada do Debian conta com toda a base sólida de pacotes e do gerenciador de pacotes do Debian; é compatível com os repositórios do Ubuntu; tem um desktop preparado para o usuário comum sentir-se confortável; se esforça para que os recursos, tais como suporte multimídia, resolução de vídeo, placas e cartões Wifi e outros, funcionem bem.
Para maiores informações, visite o site oficial do LinuxMint ou o site do LinuxMint no Brasil.
2.3 Ferramentas de Desenvolvimento
	Emacs
	Editor de texto avançado, o Emacs é usado por programadores e usuários que necessitam desenvolver documentos técnicos, em diversos tipos de sistemas operacionais.
	SWFTools
	SwfTools é uma ferremanta livre utilizada o desenvolvimento em Flash e ActionScript e para criar arquivos .SWF (formato Shockwave Flash). Seu principal utilitário é o SWFC, um compilador com suporte para figuras, botões, formulários, ActionScript e efeitos de imagem e de som.
	Eclipse
	Eclipse é uma plataforma IDE focada no desenvolvimento de ferramentas e aplicações de software. Hoje o Eclipse é a IDE Java mais utilizada no mundo. Possui como características marcantes o uso da SWT e não do Swing como biblioteca gráfica, a forte orientação ao desenvolvimento baseado em plug-ins e o amplo suporte ao desenvolvedor com centenas de plug-ins que procuram atender as diferentes necessidades de diferentes programadores.
	NetBeans
	Plataforma de desenvolvimento e programação em C, C++, Java, Python, UML e outras). O NetBeans é uma IDE para que programadores possam escrever, compilar, depurar e implantar programas. É escrito em Java - mas pode suportar qualquer linguagem de programação. Existe também um enorme número de módulos para aprimorar o NetBeans IDE, que é um produto gratuito sem restrições de como ser utilizado.
	Python , Java,Perl, PHP, Lua,Ruby, Gambas eTcl
	Linguagens de programação diversas.
2.4 Servidores
	MySQL
	O MySQL é um Sistema Gerenciador de Banco de Dados RelacionaisSGBD que utiliza a linguagem SQL como interface. Atualmente é um dos bancos de dados mais populares do mundo. Seu sucesso se deve, em grande parte, à fácil integração com o PHP nos pacotes de hospedagem de sites da Internet oferecidos atualmente. Empresas como Yahoo! Finance, MP3.com, Motorola, NASA, usam o MySQL em aplicações de missão crítica. A Wikipédia também é um exemplo de utilização do MySQL em sites de grande audiência. Entre os seus principais aspectos estão:
· Portabilidade (suporta praticamente qualquer plataforma atual).
· Compatibilidade (existem drivers ODBC, JDBC e .NET e módulos de interface para diversas linguagens de programação, como Delphi, Java, C/C++, C#, Visual Basic, Python, Perl, PHP, ASP e Ruby).
· Excelente desempenho e estabilidade.
· Pouco exigente quanto a recursos de hardware.
· Facilidade de uso.
· Contempla a utilização de vários Storage Engines como MyISAM, InnoDB, Falcon, BDB, Archive, Federated, CSV, Solid.
· Suporta controle transacional; Triggers; Cursors (Non-Scrollable e Non-Updatable); Stored Procedures e Functions.
· Replicação facilmente configurável.
· Interfaces gráficas de fácil utilização cedidos pela MySQL Inc.
	PostgreSQL
	PostgreSQL é um sistema gerenciador de banco de dados objeto relacional (SGBDOR). O PostgreSQL conta com recursos de consultas complexas, chaves estrangeiras, integridade transacional, controle de concorrência multi-versão, suporte ao modelo híbrido objeto-relacional, gatilhos, visões, linguagem procedural (PL/pgSQL, PL/Python, PL/Java, PL/Perl) para procedimentos armazenados, indexação por texto, estrutura para guardar dados Georeferenciados PostGIS.
	Apache
	O servidor para web Apache (ou Servidor HTTP Apache) é o mais bem sucedido servidor web livre. Estima-se que o Apache seja responsável por mais de 50% dos servidores ativos no planeta. É largamente utilizado nos sites mais movimentados do mundo. AApache Software Foundation é responsável por projetos envolvendo tecnologias de transmissão via web, processamento de dados e execução de aplicativos distribuídos. O servidor é compatível com o protocolo HTTP e suas funcionalidades são mantidas através de uma estrutura de módulos, permitindo inclusive que o usuário escreva seus próprios módulos — utilizando a API do software.
	Samba
	O servidor de arquivos Samba é utilizado em sistemas operacionais do tipo Unix e simula um servidor Windows. Permite que seja feito gerenciamento e compartilhamento de arquivos, inclusive em uma rede Microsoft.
	Evolution
	O servidor e cliente de email Novell Evolution foi criado pela Ximian, que foi adquirida pela Novell em 2003. Este é um gerenciador de informações pessoais como uma ferramenta para oGNOME que inclui e-mail, calendário e endereços. Sua interface e funcionalidades são similares às do Microsoft Outlook e do Mozilla Thunderbird.
	Apache Tomcat
	O Tomcat é um servidor web Java, mais especificamente. O Tomcat é um servidor de aplicações JEE, porém não é um servidor de EJBs. Desenvolvido pela Apache Software Foundation, é distribuído como software livre dentro do conceituado projeto Apache Jakarta. O Tomcat foi oficialmente endossado pela Sun Microsystems como a implementação de referência para as tecnologias Java Servlet e JavaServer Pages (JSP). O servidor inclui ferramentas para configuração e gerenciamento, o que também pode ser feito editando-se manualmente arquivos de configuração formatados em XML.
	BIND
	O Servidor de nomes BIND (Berkeley Internet Name Domain) é o servidor para o protocolo DNS mais utilizado na Internet, especialmente em sistemas do tipo Unix, onde ele pode ser considerado um padrão. Foi distribuído pela primeira vez com o sistema operacional BSD. Atualmente o BIND é suportado e mantido pelo Internet Systems Consortium.
	Sendmail
	Agente de transferência para roteamento e entrega de correio (MTA).
	Postfix
	Outro agente de transporte de mensagens (MTA), o Postfix é um agente de transferência para envio e entrega de emails. Rápido e fácil de administrar. Pode ser considerada uma alternativa ao Sendmail. Muito utilizado em servidores UNIX.
2.5 Suítes e Aplicativos
Se a oferta de software livre para ambientes de servidores já é bastante grande, a disponibilidades de aplicativos ou programas específicos para o usuário final é gigantesca. Por isso, não podemos aqui preparar uma listagem definitiva com esses softwares para não cometermos injustiças. Não só pelo fato de que não poderíamos apresentar todos os merecedores de destaque, mas também porque cada usuário tem suas preferências, particularidades e finalidades.
Entretanto, são listados abaixo alguns dos mais famosos softwares livres disponíveis para o usuário final.
	Mozilla Firefox
	Mozilla Firefox é um navegador livre e multi-plataforma desenvolvido pela Mozilla Foundation. A intenção da fundação é desenvolver um navegador leve, seguro, intuitivo e altamente extensível.
	LibreOffice
	LibreOffice é uma suíte de aplicativos para escritório, livre multiplataforma, disponível para diversos sistemas operacionais. A suíte utiliza o formato OpenDocument (ODF) e também é compatível com os formatos do Microsoft Office, além de outros formatos legados. O LibreOffice surgiu como uma ramificação do projeto original OpenOffice.org.
	Pidgin
	O PidGin está relacionado a um conceito de comunicador universal. Este é um programa de chat que permite efetuar login em contas de diversas redes de bate-papo simultaneamente, por exemplo: AIM, ICQ, Google Talk, Jabber / XMPP, MSN Messenger, Yahoo!, Bonjour, Gadu-Gadu, IRC, Novell GroupWise Messenger, QQ, Lotus Sametime, SILC, SIMPLE , MXit, MySpaceIM, e Zephyr. E ainda pode suportar muitos mais com a instalação de plugins. O Pidgin também suporta vários recursos dessas redes de chat, tais como transferências de arquivos, mensagens de distância, amigo ícones, smilies personalizados, e notificações de digitação, e também pode ter funcionalidades estendidas através da instalação de plugins.Interessante saber que, pela etimologia da palavra, Pidgin é o nome dado a qualquer língua que é criada, normalmentede forma espontânea, de uma mistura de outras línguas! Daí a ideia deste nome para o programa!
	Kaffeine  
	Kaffeine é uma interface gráfica para rodar arquivos de multimídia. Ele permite que você execute vídeos e músicas em seu computador e possui recursos de gravação instantânea que permitem exportar de um arquivo em execução para um formato de vídeo escolhido pelo usuário.
	PiTiVi  
	PiTiVi é um editor de cinema intuitivo e com mais recursos para o desktop Linux. Este é um programa escrito em Pythonhttp://www.python.org.br/wiki e baseado nas bibliotecas Gtk+http://www.gtk.org/ e GStreamer http://gstreamer.freedesktop.org/. Aplicativos que utilizam estas bibliotecas podem fazer processamento de som em tempo real, reprodução de vídeos e o que mais for relacionado a mídia. O PiTiVi providencia diversos modos de criar e modificar um vídeo. Permite que se faça quantas combinações de efeitos o usuário quiser. Este editor possibilita a criação de vídeos de qualquer tamanho, sem limitação para número de trilhas utilizadas e os vídeos podem ser redimensionados para qualquer proporção. Ele possui um modo de visualização avançado que permite que se edite vídeos de maneira mais profissional e precisa.
	K3b  
	K3b foi criado para ser uma opção fácil de manusear em termos de aplicativo de gravação de CD. O K3b é um software que funciona como uma interface gráfica para a gravação de CD-ROMs e DVDs de dados, além de CDs de áudio, CDs de vídeo e cópia exata de CDs e DVDs.
	Gimp
	GIMP (GNU Image Manipulation Program) é um poderoso e avançado editor de imagens. O GIMP possui os recursos para ser utilizado na criação ou manipulação de imagens e fotografias. Seus usos incluem criar gráficos, logotipos, redimensionar fotos, alterar cores, combinar imagens utilizando camadas, remover partes indesejadas e converter arquivos entre diferentes formatos de imagem digital. Foi criado originalmente para o Linux, mas agora ganhou uma versão para Windows. Embora seja grátis, ele não fica devendo nada aos programas mais famosos da categoria.
	FileZilla
	Filezilla é uma solução FTP livre. Suporta os protocolos FTP, FTP sobre SSL/TLS (FTPS) e SSH (SFTP), roda em Windows, Mac e Linux, está disponível em 40 idiomas, incluindo o português do Brasil, suporta transferência e pausa para grandes transferências (acima de 4GB) e disponibiliza o sistema Drag-and-drop (arraste e solte). Existe uma versão do programa para uso portátil chamada FileZilla Portable. Com ela, é possível executar o FileZilla diretamente de um disco rígido portátil como um pen-drive.
	Moodle
	MOODLE (Modular Object-Oriented Dynamic Learning Environment) é um software livre, de apoio à aprendizagem, executado num ambiente virtual. Utilizado principalmente num contexto de e-learning ou b-learning, o programa permite a criação de cursos "on-line", páginas de disciplinas, grupos de trabalho e comunidades de aprendizagem, estando disponível em 75 línguas diferentes. Conta com mais de 25.000 websites registados, em cerca de 175 países.
	Joomla!
	Joomla! é um Sistema de gestão de conteúdos (Content Management System - CMS) desenvolvido a partir do CMS Mambo. É desenvolvido em PHP e pode ser executado no servidor Web Apache ou IIS e base de dados MySQL.
	Blender
	Blender (também conhecido como blender3d) é desenvolvido pela Blender Foundation, para modelagem, animação, texturização, composição, renderização, edição de vídeo e criação de aplicações interativas em 3D, tais como jogos, apresentações e outros. O programa é multiplataforma e está disponível para diversos sistemas operacionais. Acesse a comunidade brasileira do programa.
	Virtual Magnifying Glass
	Virtual Magnifying Glass é desenvolvido para deficientes visuais e outros que precisam ampliar uma parte da tela. É uma ferramenta de magnificação gratuita, em código aberto e multiplataforma. Ela é simples, personalizável e fácil de usar. Com mais de 300.000 downloads e uma história de 5 anos, a lupa digital visa prover uma ferramenta de magnificação fácil de utilizar para aqueles que precisam.
Após esta breve apresentação, abaixo estão dispostos mais alguns links onde você poderá pesquisar sobre o tipo de software que mais lhe interessa. Prepare-se, a partir de agora você terá um mundo de possibilidades à sua disposição!
Para Saber Mais
Você poderá encontrar uma lista de softwares livres e seus equivalentes proprietários neste endereço da web:
http://www.linuxrsp.ru/win-lin-soft/table-eng.html
Uma versão em português foi desenvolvida pela equipe do Projeto Software Livre Bahia em:
http://twiki.im.ufba.br/bin/view/PSL/MiniTabelaDeSoftwaresEquivalentes
Outros links interessantes:
· Lista de softwares livres brasileiros
· Download de alguns softwares livres (e/ou grátis)
· Listagem contendo mais alguns softwares livres notáveis
Agora, você mesmo pode iniciar sua busca pelo tipo de software livre que mais se adéqua às suas necessidades. Boa pesquisa!
Recapitulando...
Nesta aula você foi capaz de compreender que existe uma infinidade de Softwares Livres e que o GNU/Linux é o mais famoso entre os Sistemas Operacionais Modernos Livres. Você também obteve informações essenciais sobre algumas distribuições GNU/Linux, tais como: Ubuntu, OpenSUSE, Debian GNU/Linux, Slackware, Fedora, CentOS e LinuxMint. Além disso, você também encontrou conceitos fundamentais sobre algumas ferramentas de desenvolvimento (Emacs, SWFTools, Eclipse, NetBeans, Python, Java, Perl, PHP, Lua, Ruby, Gambas, Tcl) e Servidores (MySQL, PostgreSQL, Apache, Samba, Evolution, Apache Tomcat, BIND, Postfix e Sendmail). Por fim, você encontrou informações sobre algumas das várias Suítes e Aplicativos disponíveis no mercado (Mozilla Firefox, OpenOffice.org, LibreOffice, Moodle, Joomla!, Blender, Virtual Magnifying Glass, MediaWiki). Também estão disponíveis algumas listas de softwares livres para efetuar download.
Aplicando o Conhecimento
· O texto inicial desta aula menciona que 84% das grandes organizações americanas utilizam, pelo menos, seis peças de Software Livre em seu negócio. Além disso, 54% dos CIOs usam mais de 10 diferentes produtos de SL. A que você atribui este panorama?
· Pesquise instituições governamentais que utilizem os seguintes tipos de sistemas: Ubuntu GNU/Linux; OpenSUSE GNU/Linux; Debian GNU/Linux; Fedora GNU/Linux; CentOS GNU/Linux; OpenBSD. A seguir, elenque as principais características de cada um desses sistemas.
· Após efetuar as pesquisas sugeridas nesta aula, sugerimos que você utilize alguns dos produtos aqui descritos, caso ainda não seja usuário e relate de forma breve a sua experiência.
· Elenque as vantagens e desvantagens técnicas e de usabilidade em uma comparação entre os navegadores Firefox e Internet Explorer.
Aula 3 - Configuração de Ambientes de Software Livre 
Nesta parte da nossa UEA será necessário que você instale um sistema operacional baseado em Software Livre na sua máquina. Com ele, você conseguirá efetuar testes e verificar a qualidade inerente a esse tipo de software. Existem basicamente três formas de instalação do Linux: 1ª) Como único sistema operacional do computador; 2ª) Dual boot – dois ou mais sistemas operacionais no computador; 3ª) Em uma máquina virtual.
Para experimentar o poder do Linux, é recomendado que ele seja instalado com sistema operacional único ou em dual boot. Mas, para essa unidade, com finalidade acadêmica, vamos tratá-lo a partir de uma máquina virtual. Assim, você poderá trabalhar com o SL com tranquilidade, sem ter que mexer no particionamento do HD ou formatar a máquina que você já vem utilizando.
Ao final desta aula, você terá conhecimentos suficientes para instalar uma máquina virtual (VirutalBox) em seu sistema operacional, preparando-o para receber o GNU/Linux UBUNTU. Você irá manipular a versão escritório do sistema operacional, acompanhando os passos para sua instalação e operacionalidade, além de ter uma visão geral sobre o desktop, a Interface Gráfica Unity, o gerenciamento de aplicativos e o desenvolvimento do servidor.
Antes, porém, de iniciarmos esta aula,leia algumas curiosidades importantes sobre o Ubuntu. Veja também uma entrevista com Jane Silber, CEO da Canonical, empresa que dá suporte ao Ubuntu e reformou alguns valores para a recente versão lançada, o Ubuntu 11.04 Natty Narwhal.
3.1 Preparação do Ambiente
O Software Livre é extremamente flexível. Isso pode ser observado sob vários aspectos, principalmente: com relação às inúmeras soluções disponíveis; pela usabilidade em diferentes plataformas de hardware e principalmente pela sua adequação quanto às diversas realidades impostas pelos usuários.
Nesse aspecto, podemos destacar que um ambiente operacional escrito em SL, pode ser usado por qualquer pessoa, mesmo sem qualquer necessidade de formatação da máquina.
Por isso, uma dica fundamental para aproveitar bem o conteúdo desta aula é a instalação do Linux, podendo ser virtualizado com a ferramenta “VirtualBox”. O VirtualBox é um software de virtualização desenvolvido pela Sun Microsystems (posteriormente comprada pela Oracle) que visa criar ambientes para instalação de sistemas distintos. Ele permirá que você instale e utilize um sistema operacional dentro de outro, assim como seus respectivos softwares.
No nosso caso, o VirtualBox possibilitará a virtualização de ambientes para que possamos instalar o sistema operacional Linux. Assim, você poderá utilizar o Sistema Livre independente da plataforma de SO que esteja rodando na sua máquina. Você terá dois ou mais “computadores” independentes, mas que compartilham fisicamente o mesmo hardware.
Para nossos testes de configuração de ambientes de software livre utilizaremos o Sistema Operacional Ubuntu, simulando três ambientes diferentes. O primeiro ambiente será o desktop, o segundo, uma estação de desenvolvimento, e o último, um servidor (em versão dedicada para esse fim). Os primeiros ambientes partirão da versão do Ubuntu 11.04 (versão atualmente mais moderna para desktop e servidor).
3.2 Ubuntu
Ubuntu é um sistema operacional baseado no Debian, desenvolvido pela Canonical. É perfeito para notebooks, desktops e servidores. Ele contém todos os aplicativos que você precisa: navegador web, programas de apresentação, edição de texto, planilha eletrônica, comunicador instantâneo e muito mais.
A versão 11.04 do Ubuntu (codinome "Natty Narwhal") é uma das distribuições Linux mais populares da atualidade. Seu diferencial, com relação às versões anteriores, é a nova interface com o usuário, chamada de “Unity”. Entre as principais características dessa interface estão o “Launcher” (barra de atalhos similar à do Mac OS X), que fica na lateral esquerda da tela, o “Dash” (painel que permite acesso rápido a aplicativos e documentos a partir de um sistema de buscas), na parte direita superior da tela e os “Workspaces” (espaços virtuais que facilitam a organização do desktop, permitindo que os aplicativos sejam separados em grupos). Apesar do Unity ser considerado uma evolução, o usuário ainda tem a opção, na hora do login, de entrar na interface gráfica das versões anteriores, batizada de “Ubuntu Classic”, se desejar.
Há duas variantes oficiais do Ubuntu 11.04: desktop e servidor, para sistemas com processadores de 32 ou 64 Bits. Iniciaremos falando sobre a instalação e configuração da versão para desktop (escritório).
3.2.1 Versão Desktop (Escritório)
Instalação
A instalação pelo CD abre uma tela gráfica e logo dá espaço a uma janela na qual o usuário informa o idioma de sua preferência e escolhe entre rodar o instalador ou experimentar (Live CD) o ambiente livre no desktop.
Caso seja feita a opção pela instalação, o software verifica os requisitos do sistema e questiona se você deseja que todas as atualizações disponíveis sejam instaladas (é preferível deixar essa opção desmarcada durante a instalação), além das partes desenvolvidas por terceiros. Entre eles: codecs para MP3 e o Flash.
Em seguida, o software pergunta se o Ubuntu deve ocupar todo o disco ou se o usuário deseja editar ou criar uma ou mais partições manualmente. Caso seja selecionada a opção de particionamento manual, entra-se no particionador onde o usuário pode modificar/criar as partições do seu disco. Ao final, o disco é particionado, as opções são confirmadas e o instalador prossegue com a instalação. Os processos seguintes são compostos pela escolha do fuso horário, confirmação do layout do teclado e criação da conta de usuário, que oferece a opção de criptografar a pasta home.
Operacionalidade
Caso a instalação ocorra conforme o esperado, o Unity é carregado, a tela é configurada com a resolução apropriada, os drives de som são instalados e a placa de rede sem fio opera corretamente, tudo sem a necessidade de configuração manual.
Menu de aplicativos do Unity.
Desktop
Antes de efetuar login, o usuário pode escolher entre as opções de sessão: "Ubuntu", "Ubuntu Clássico" e "Ubuntu Clássico sem efeitos".
Desktop GNOME clássico no Ubuntu 11.04.
3.2.2 Unity
A Unity é interface gráfica padrão do Ubuntu 11.04. No canto superior esquerdo da tela existe o botão lançador. Ele abre uma tela que é, basicamente, um menu de aplicativos, com recursos de pesquisa em destaque. Cobrindo todo o lado esquerdo da tela temos a barra de início rápido, que contém aplicativos usados com frequência.
Os aplicativos não carregam suas barras de menu consigo e a barra de menu fica sempre no topo da tela. O Unity tem desktops virtuais (são quatro, por padrão) e um clique no ícone do pager mostra uma visualização afastada de cada desktop virtual.
Quatro telas abertas pelo laçador.
No menu, estão disponíveis:
· Firefox
· LibreOffice
· cliente de email Evolution
· gerenciador de fotos Shotwell.
· cliente de mensagens instantâneas Empathy,
· Gwibber para redes sociais,
· cliente BitTorrent Transmission
· cliente do terminal server.
Navegação na web via Firefox no Ubuntu 11.04.
O media player padrão é o Banshee, existe também um gravador de CDs, o editor de vídeos PiTiVi e um gravador de sons. Há também a seleção habitual de editor de textos, calculadora, compactador de arquivos e alguns jogos, como o Tomboy Notes, por exemplo.
Para compreender melhor a Unity, assista ao vídeo Entendendo a interface Unity.
Gerenciamento de Aplicativos
O Ubuntu inclui o gerenciador de pacotes Synaptic e a Central de Software do Ubuntu. O Synaptic é muito poderoso e flexível. A Central de Software também responde bem ao gerenciamento de programas como localizar, instalar e remover softwares. Também é possível enfileirar ações. A Central inclui ainda um log de histórico que mostra quais programas foram instalados ou removidos recentemente.
Os pacotes são divididos em três grupos: software livre dos repositórios do Ubuntu, software gratuito de terceiros e software comercial de terceiros. Os itens se subdividem em categorias, ajudando na localização de aplicativos multimídia, jogos, programas de escritório e assim por diante.  Cada programa traz também análises e notas dadas pelos usuários, de modo que podemos saber o que outros usuários acham de determinado pacote.
Central de Software.
Por fim, o Kernel presente neste sistema é a versão 2.6.38.
Para Saber Mais
Acompanhe o vídeo com algumas novidades operacionais do Ubuntu 11.04. 
Leia também o Guia de usuário para Unity.
Leia ainda o artigo “Como instalar o Ubuntu 11.04 Natty Narwhal”, um texto bem completo sobra a instalação do Ubuntu 11.04 (Natty Narwhal), criado por uma das comunidades Ubuntu.
Ambiente de Desenvolvimento
Nesse tópico, serão apresentadas linhas gerais sobre a instalação dos aplicativos: Apache, PHP, MySQL, e a IDE  Eclipse. Os comandos serão executados a partir do Shell.
Inicialmente, no terminal (alt+F2), digite gnome-terminal. Para instalar os pacotes desejados resumidamente no prompt insira:
sudo apt-get install apache2 php5 mysql-server
Após o comando, caso necessário, entre com a senha de root.
No próximo passo, defina a senha para o usuário root do MySQL. Para testar, abra o navegador e digite na barra de endereço:
http://localhost
E aguarde a mensagem “It Worked!”
Para testar o PHP no terminal, abra o gedit como comando:
sudo gedit
e digite:
<?php phpinfo(); ?>
Salve com o nome “phpinfo.php” na pasta “/var/www” (essa é a pasta padrão do Apache),
Reinicie o Apache, digitando no terminal a linha:
sudo /etc/init.d/apache2 restart
ou
sudo service apache2 restart
Volte ao seu navegador e digite na barra de endereço:
http://localhost/phpinfo.php
Quando aparecer uma tabela com várias informações sobre o PHP, isso significa que o Apache já interpreta código escrito em PHP.
Para testar o MySQL no terminal digite:
mysql -u root -p
Será necessário entrar com a senha que você definiu na instalação.
Execute o comando:
show databases;
Assim, você estará vendo todos os bancos de dados que você possui.
No caso do Eclipse, basta efetuar o download, extrair da pasta de sua preferência e abrir e executar a instalação.
Para instalação do NetBeans, uma sugestão é o link direto para o site do NetBeans.
3.3 Ubuntu Servidor
Para iniciar a instalação do Ubuntu Server, atente-se para: mídia de instalação do Ubuntu Server (embora a versão desktop possa ser usada como servidor, nesta parte do material falaremos sobre a versão Server); servidor com duas interfaces de rede (que terá a função de gateway da rede local, com uma interface conectada à rede local e a outra ao roteador  de acesso à Internet); conexão ativa com a Internet durante a instalação.
Procedimentos Iniciais
Conecte o cabo de rede que vem do modem na interface eth0 do servidor e insira o CD de instalação do Ubuntu Server no drive de CD. Para roteadores que não possuam o serviço DHCP, os dados da rede poderão ser fornecidos manualmente durante a instalação.
Iniciando a instalação
A figura abaixo mostra a tela inicial de instalação do Ubuntu Server.
Definições de Rede, Nome e Localidade
O próximo passo é a configuração da interface de rede, serão mostradas todas as interfaces de rede detectadas pela distribuição. Selecione a interface eth0.
O programa de instalação irá configurar automaticamente a interface eth0 por meio do serviço DHCP do modem ADSL. Não é necessário configurar a interface de rede eth1. Ela será configurada posteriormente durante a instalação.
Caso o programa de instalação não consiga configurar a interface de rede por meio do DHCP, será mostrada uma tela informando o problema. Nesse caso, a sugestão é conectar o cabo de rede na outra interface, teclar em voltar e tentar novamente.
Após configurada a interface de rede, será solicitado o nome do servidor. Dependendo da maneira como será fornecido o nome, o instalador irá se comportar de maneira diferente:
Fornecendo apenas o nome do servidor – Neste caso, o programa instalador da solução irá adotar na configuração dos seus serviços os seguintes nomes de domínio:
· OpçãoLinux PDC – o domínio default "opcaolinux" será adotado na configuração dos serviços.
· E-jovem Proxy – o domínio default "e-jovem" será adotado na configuração dos serviços. Atualmente apenas a solução E-jovem Proxy está pronta para o Ubuntu Server.
Fornecendo um nome totalmente qualificado (host.domínio) – Agora o domínio fornecido será usado por ambas as soluções.
Caso seja fornecido um nome totalmente qualificado do tipo "servidor.sua_empresa.com.br", será utilizada apenas a primeira parte do nome do domínio ("sua_empresa").
No nosso caso, podemos fornecer o nome "servidor", onde cada solução utilizará seus valores defaults na definição do domínio (opcaolinux ou e-jovem). No seu caso, use o nome que lhe for mais conveniente.
Após configurada a interface eth0 e fornecido o nome do servidor, o próximo passo será informar a localidade para que seja configurado o relógio do sistema.
O próximo passo é o particionamento do disco. A escolha do tamanho e do tipo do sistema de arquivos dependerá da função que irá desempenhar o servidor, ficando a critério do administrador da rede defini-las de acordo com as suas necessidades.
Quanto ao E-jovem Proxy, no tipo assistido, pode-se usar disco inteiro. Nesse caso, todas as partições necessárias serão criadas automaticamente.
Finalizado o particionamento, será iniciada a instalação do sistema básico com a cópia de arquivos para o disco rígido do servidor.
Em seguida, será solicitado o nome completo do usuário administrador do sistema.
Para a escolha do login do usuário administrador (tela seguinte), cuidado com alguns detalhes:
· Não use root, esse login foi reservado pelo sistema.
· Não use admin, esse login também foi reservado.
Definidas as informações sobre o usuário administrador, será solicitada a senha desse usuário.
Na etapa seguinte será solicitado endereço do servidor proxy da rede, como você está conectado diretamente ao modem, não será necessário configurar nada. Deixe o campo vazio e tecle continuar.
O próximo passo é a seleção dos pacotes que serão instalados durante a instalação do sistema.
,
Serão copiados mais alguns arquivos para o disco rígido e feitas algumas configurações finais no servidor, em seguida surgirá uma tela indicando a finalização da instalação.
Reinicie o servidor e pronto!
Depois de reiniciado o servidor temos que ativar a conta root. Para isso, logue com o login do usuário administrador definido na instalação e defina a senha do root com os comandos sudo e passwd como mostrado a seguir:
opl@servidor:~$ sudo passwd root
[sudo] password for opl: ******
Enter new UNIX password: ******
Retype new UNIX password: ******
passwd: password updated successfully
Agora já é possível logar no servidor como root e instalar qualquer solução disponível no site que seja suportada pelo Ubuntu Server.
Recapitulando...
Na parte inicial desta aula você foi capaz de compreender o significado da palavra “Ubuntu” e um pouco da filosofia presente nesse SL, além de conhecer uma lista dos lançamentos anteriores, atuais e planejados. Você verificou as possibilidades de virtualização por meio do VirtualBox e teve a oportunidade de instalar a versão 11.04 do Ubuntu (codinome "Natty Narwhal"), que é uma das distribuições Linux mais populares da atualidade. Nesta versão, você pode observar o comportamento do Uniti (Shell) e alguns softwares disponíveis, como Firefox 4.0, LibreOffice 3.3.2, cliente de email Evolution, gerenciador de fotos Shotwell, cliente de mensagens instantâneas Empathy, Gwibber para redes sociais, cliente BitTorrent Transmission. Também foram vistos conceitos relacionados ao desenvolvimento no Ubuntu e a instalação dele como Servidor.
Aplicando o Conhecimento
· A parte prática desta aula consiste em instalar o Ubuntu 11.04 corretamente e trocar impressões sobre as principais funcionalidades deste SL com seus colegas de turma e professor.
· Se você for um usuário de sistema operacional proprietário, você também pode elaborar um gráfico comparativo entre as principais funcionalidades de cada um dos sistemas operacionais: o livre e o proprietário.
Aula 4 - Ferramentas Livres de Programação e Banco de Dados para Desenvolvimento de Sistemas
Nosso foco ao longo do curso é a apresentação do Software Livre como uma opção viável nas organizações. Nesta aula, serão apresentadas algumas ferramentas livres de programação e bancos de dados para o desenvolvimento de sistemas. Obviamente, será só uma breve apresentação. Pois manipular corretamente essas ferramentas e tirar o melhor proveito de cada uma delas é uma questão que deverá ser vista em disciplinas próprias, cujo foco são o desenvolvimento e a gestão de bancos de dados. Ainda assim, esta aula fornecerá informações importantes sobre as possibilidades do SL para essas atividades.
Ao final desta aula você terá informações sobre ambientes de Desenvolvimento Integrado Livres (IDEs), como o NetBeans e o Eclipse. Além disso, verá conceitos fundamentais sobre a ferramenta livre de banco de dados (MySQL) e a Geração de modelos de dados.
A expressão “Programação Orientada a Objetos” foi criada por Alan Klay, considerado um dos criadores desse conceito de programação. Ele também foi inventor da linguagem Smalltalk, uma linguagem totalmente orientada a objetos, que não possui tipos primitivos, todos os tipos são objetos.
Hoje,disponível no mercado existem vários exemplos de linguagens orientadas a objetos como Java, C++, Object Pascal, Ruby, Python, entre outras. Esse paradigma é largamente utilizado no desenvolvimento de sistemas e também em Sistemas Gerenciadores de Bancos de Dados Relacionais.
4.1 Esclarecimento Inicial
A linguagem Java foi uma das grandes precursoras, uma das responsáveis pela popularização dos Softwares Livres. Inicialmente, a ideia era que os desenvolvedores não estivessem vinculados a nenhum tipo de ferramenta de desenvolvimento, nenhum fornecedor, nenhuma IDE específica. Buscava-se a filosofia do Software Livre também com relação à liberdade no desenvolvimento.
Assim, o foco deveria ser o programa em si, sem qualquer referência a plataformas de desenvolvimento. A própria Sun Microsystems, inicialmente, esteve reticente quanto ao desenvolvimento de uma IDE para o Java. Entretanto, o Java foi ganhando cada vez mais dimensão, mais popularidade e se tornando essencial em diversos sistemas. Cada vez mais, tornou-se necessário aumentar a produtividade e encurtar o tempo de respostas, desde o levantamento de requisitos até a versão final do programa. Por isso, é comum hoje o desenvolvimento dos códigos Java por meio das IDEs, que facilitam o trabalho e aumentam a produtividade.
4.2 Ferramentas Livres de Desenvolvimento (IDE)
Um Ambiente de Desenvolvimento Integrado (IDE – Integrated Development Environment) é um programa que permite a criação (ou desenvolvimento) de novos programas. A IDE dá apoio ao desenvolvimento, permitindo padronização, agilidade, maior qualidade e produtividade. As principais IDEs para aplicações em Java são:
4.2.1 NetBeans
O NetBeans é uma IDE bastante popular. Ele tem a chancela da Sun, e o projeto continua mesmo depois da empresa ter sido adquirida pela Oracle. É uma ferramenta gratuita, multiplataforma (pode ser usada no Windows, Linux, Solaris e MacOS), possui código aberto, totalmente escrito em Java e permite o desenvolvimento em outras linguagens além do Java, como por exemplo: C/C++, PHP, Groovy, Ruby entre outras.
Para baixar o NetBeans, acesse: http://netbeans.org/downloads/index.html.
4.2.2 Eclipse
A IDE Eclipse – Eclipse Foundation – é bastante encontrada nas empresas de desenvolvimento de software. Não é exagero afirmar que é a IDE Java é mais utilizada entre os desenvolvedores. O projeto Eclipse foi iniciado pela IBM. Depois de um tempo, a IBM entregou o Eclipse para a comunidade de software livre. É uma ferramenta gratuita, de código aberto, multiplataforma e possui várias extensões (plug-ins) responsáveis por facilitar a vida dos desenvolvedores e tornar o trabalho muito mais produtivo.
Para baixar o eclipse, acesse: http://www.eclipse.org/downloads/.
Acompanhe no vídeo como instalar sua IDE Java (Eclipse) no Ubuntu.
Agora que finalizamos toda a parte de instalação e configuração, já estamos aptos a rodar programas Java sem problemas. Entretanto, os conceitos relacionados ao desenvolvimento de sistemas (que não são poucos) não são o foco da nossa disciplina. Eles serão largamente estudados nas disciplinas que envolvem Linguagens e Técnicas de Programação, Programação Orientada a Objetos, Programação para Web, entre outras.
4.3 Ferramenta Livre de Banco de Dados
O MySQL é um sistema de gerenciamento de banco de dados SGBD criado na década de 1980 por dois suecos e um finlandês. Atualmente, é um dos bancos de dados mais populares no mundo. Em 2008, a Sun Microsystems comprou a MySQL AB, desenvolvedora do MySQL. Como vimos, posteriormente, a Oracle comprou a Sun Microsystems. Portanto, hoje, a responsável pela manutenção e distribuição do sistema é a Oracle. Existem várias versões do MySQL.
Existem duas ferramentas muito utilizadas para interação com o servidor Mysql, são elas: O MySQL Query Browser e o MySQL Administrator.
O MySQL também dispõe do MySQL Workbench, uma ferramenta completa que pode ser utilizada desde o desenho de uma estrutura de banco de dados até a administração do SGDB. O download da suíte MySQL Workbench pode ser feito a partir do link:  http://dev.mysql.com/downloads/workbench/.
Acompanhe no vídeo MySQL e Ferramentas a instalação do Servidor de Banco de Dados MySQL, bem como das ferramentas MySQL Query Browser e MySQL Administrator.
 
4.3.1 Criando um Bando de Dados como MySQL Administrator e Consultando com o MySQL Query Browser
Para criar o banco de dados, siga os procedimentos a seguir:
1. Abra o MySQL Administrator e entre com o login root e senha atribuida durante o processo de instalação do MySQL Server.
2. Com MySQL Administrator aberto, clique em Catálago para verificar os bancos que estão sendo criados.
3. No espaço onde se encontram os dois bancos criados, clique com o botão direito do mouse e selecione Create Schema, entre com o nome do banco e pressione Ok ao final.
4. Para criar uma tabela, clique no banco criado e posteriormente em Create Table.
5. Crie alguns campos e posteriormente em Apply Changes
6. Será mostrado o script que o MySQL Aministrator utilizará para criação da tabela. Clique em Executar e posteriormente em OK.
Observe a tabela Criada.
Você pode consultar o banco criado com o MySQL Query Browser. Para isso, execute os procedimentos abaixo:
1. Abra o MySQL Query Browser, entre com o login root e senha atribuida durante o processo de instalação do MySQL Server.
2. Clique no Banco de Dados e posteriormente dê um clique duplo na tabela que deseja fazer a consulta. Note que o próprio Query Browser sugere a consulta para você.
3. Clique em Executar e veja o resultado da consulta.
Esta foi uma ideia geral sobre algumas das ferramentas livres utilizadas em desenvolvimento de sistemas. Modelos, operações, funções tabelas, chaves e todos os conceitos técnicos relacionados aos Sistemas Gerenciadores de Bancos de Dados (SGBD) serão vistos com detalhes nas disciplinas relacionadas a Banco de Dados.
Recapitulando...
Nesta aula, você foi capaz de compreender que a linguagem Java foi uma das grandes precursoras, uma das responsáveis pela da popularização dos Softwares Livres. Além disso, você percebeu que os SL NetBeans e o Eclipse são bastante encontrados nas empresas de desenvolvimento de software. Além disso, você também obteve informações sobre o MySQL e a geração de modelos de dados.
Aplicando o Conhecimento
1. Pesquise sobre outras IDEs livres e organize uma tabela, contando os prós e contras de cada uma delas com relação ao NetBeans e o Eclipse.
2. Pesquise sobre outras ferramentas livres de banco de dados e organize uma tabela com os prós e contras de cada uma delas com relação ao MySQL.
Aula 5 - Licenças Livres
A expressão “software livre” pode dar a falsa impressão de que se pode fazer o que quiser com os programas desenvolvidos neste modelo. Mas não é exatamente assim que funciona na prática. Existe uma série de modalidades de licenças de software livre que definem termos e condições de uso para cada programa. Assim, o desenvolvedor pode escolher entre essas diversas modalidades ou mesmo criar sua própria licença. Este será o assunto da nossa aula! Bons estudos!
Ao final desta aula, você compreenderá o que é Copyleft, bem como seus subtipos (forte, fraco, completo e parcial). Também serão apresentados os tipos de licenças GNU General Public License (GPL), LGPL (Library ou Lesser General Public License) e BSD (Berkeley Software Distribution). Você também acompanhará um quadro comparativo entre as licenças mais utilizadas: GPL e BSD. Outras licenças que serão vistas: MPL (Mozilla Public License), MIT (Massachusetts Institute of Technology) e Apache License 2.0, além do Ceative Commons, que é um projeto sem fins lucrativos que disponibiliza licenças flexíveis para obras intelectuais. Ao final, uma breve exposição sobre as diferenças entre Software Livre e Software em Domínio Público.
5.1 Licenças Livres
De forma geral, vimos que um Software Livre é aquele que pode ser usado, copiado, distribuído e modificado por qualquer pessoa, mediante pagamento ou não. Por isso, quem o desenvolve deve permitir que o usuárioacesse seu código fonte. Assim, as informações ali contidas possibilitam ao programador manter as características que considera interessantes, remover as que não interessam e fazer melhorias no software. Entretanto, o que diferencia cada modalidade de licenciamento é, justamente, o que o programador deve fazer depois que acessou essas informações. Por isso, a importância de compreendermos como funcionam essas licenças na prática.
5.1.1 Copyright
Para compreendermos melhor as licenças, iniciaremos falando sobre o Copyright, que se refere a uma obra protegida. Basicamente, este termo significa a proibição do direito à cópia ou mesmo reprodução. É o direito de restringir ou impedir a cópia de um bem artístico ou intelectual. O termo é formado pela união de duas palavras copy (cópia) e right (direito). Obviamente, este não é o nosso foco de estudo quando falamos de software livre, mas é necessário que compreendamos o sentido de Copyright para chegarmos ao ponto que nos interessa, o Copyleft.
5.1.2 Copyleft
O Copyleft é uma forma de usar a legislação que protege os direitos autorais, mas com o objetivo de retirar barreiras quanto à utilização, difusão e modificação de uma obra criativa. “Copyleft”, traduzido literalmente, significaria algo como “deixe cópiar”, sendo um trocadilho com o termo “copyright”.
Uma obra, seja de software ou outros trabalhos livres, sob uma licença Copyleft, requer que suas modificações, ou extensões, sejam livres, passando adiante a liberdade de copiá-lo e/ou modificá-lo novamente. Uma das razões mais fortes para os autores e criadores aplicarem Copyleft aos seus trabalhos é que, desse modo, podem criar condições favoráveis para que mais pessoas se sintam livres para contribuir com melhoramentos e alterações neles. Isso torna o processo cíclico e continuado. Portanto, este é um termo que está intimamente relacionado com a filosofia do Software Livre.
Richard Stallman achou pouco viável, a curto prazo, eliminar as leis de Copyright e as injustiças que considerava quanto ao pagamento pelos softwares. Por isso, decidiu trabalhar dentro do marco legal existente e criou sua própria licença de direitos autorais, a Licença Pública Geral do GNU (GPL). Assim, o termo foi popularizado por Richard Stallman em 1988, quando associou o termo Copyleft à licença GPL. O Copyleft funciona, na verdade, como um termo adicional a uma licença.
As licenças Copyleft também podem ser conhecidas como “licenças virais”, pois trabalhos derivados de outros sob a licença Copyleft são, por obrigatoriedade, regidos pela mesma licença quando distribuídos (o que são características de um comportamento viral). O termo “General Public Virus”, ou “GNU Public Virus”, já tem uma longa história na internet, datando desde a elaboração da GPL. Mas não é bem visto por alguns que consideram a associação à palavra vírus uma coisa pejorativa.
· Tipos de Copyleft
· Copyleft Forte – Quando todos os tipos de derivações do trabalho sob uma das licenças copyleft estão sob essa mesma licença copyleft também.
· Copyleft fraco – Quando a derivação não necessariamente está sob a mesma licença, dependendo do tipo de trabalho derivado. O copyleft “fraco” geralmente é aplicado em projetos de criação de bibliotecas de softwares.
· Copyleft completo – Aquele em que todas as partes de um trabalho (exceto a licença em si) podem ser modificadas por autores secundários.
· Copyleft parcial – Exime algumas partes do trabalho das obrigações do Copyleft ou de alguma forma não impõe todos os seus princípios.
Um exemplo conhecido de licença de software livre que usa Copyleft “forte” é a GNU GPL. Como exemplos de licenças que usam Copyleft “fraco” temos a GNU Lesser General Public License e a Mozilla Public License. Mas  também há exemplos de licenças de softwares livres sem Copyleft como a X11 license, a Apache license as BSD licenses. Estudaremos cada uma dessas licenças mais adiante.
5.2 Tipos de Licenças
Como vimos até agora, as licenças de software livre se popularizaram por darem a garantia jurídica aos utilizadores de que não estão cometendo atos de infração de direito de autor, copiando ou modificando softwares sem autorização. Por isso, é importante conhecer as particularidades de cada uma delas. Os principais tipos de licenças são descritos a seguir.
5.2.1 GNU General Public License (GPL)
A GPL (General Public License) é uma modalidade de licença que garante ao usuário do software as quatro liberdades fundamentais do software livre: utilizar o programa para qualquer finalidade; estudar como ele funciona e modificá-lo; redistribuir cópias; fazer melhorias no programa e divulgar as melhorias para o público (o que inclui a prerrogativa de liberar o acesso ao código fonte).  A GPL possui o mecanismo Copyleft por excelência, que exige que qualquer programa desenvolvido a partir de um software livre também deve ser licenciado em GPL, garantindo assim a abertura do seu código fonte.
A GPL é, na verdade, a designação da licença para Software Livre idealizada por Richard Matthew Stallman, em 1989, no âmbito do Projeto GNU da Free Software Foundation (FSF). Passado algum tempo, percebeu-se que o texto da licença não abarcava totalmente as ideias contidas na ideologia do Software Livre. Assim, em Junho de 1991, foi publicada a GPL versão 2, sendo ao mesmo tempo introduzida uma nova licença, a LGPL (que veremos a seguir). Em 2005, Stallman anunciou que estava preparando uma nova versão da licença, a GPL versão 3, que foi publicada inicialmente em janeiro de 2006, com versão final em junho de 2007.
A GPL é a licença com maior utilização por parte de projetos de SL, em grande parte devido à sua adoção para o projeto GNU e o sistema operacional GNU/Linux. O software utilizado para administrar o conteúdo da Wikipédia, por exemplo, é coberto por esta licença.
A licença GPL permite que os programas sejam distribuídos e reaproveitados, porém, mantendo-se os direitos do autor, de forma a não permitir que essas informações sejam utilizadas de maneira que limite as liberdades originais. A licença não permite, por exemplo, que o código seja apoderado por outra pessoa ou que sejam impostos sobre ele restrições que impeçam que seja distribuído da mesma maneira como foi adquirido.
A GPL está redigida em inglês e atualmente nenhuma tradução é aceita como válida pela Free Software Foundation, com o argumento de que há o risco da introdução de erros de tradução, o que poderia deturpar o sentido da licença. Deste modo, qualquer tradução da GPL é não oficial e meramente informativa, mantendo-se a obrigatoriedade de distribuir o texto oficial em inglês junto com os programas.
A seguir, você encontra uma dessas traduções: Licença Pública Geral GNU Versão 2, junho de 1991.
Veja também informações sobre a GNU GPL no âmbito do Governo Federal.
Outras licenças relacionadas são a GNU FDL (Licença de Documentação Livre GNU) e a GNU AGPL (Licença Pública Geral Affero GNU).
Perceba que a Licença Pública Geral GNU acompanha os pacotes distribuídos pelo Projeto GNU (General Public License). Ela impede que o software seja integrado em um software proprietário e garante os direitos autorais. Na GPL todo o código do programa é aberto, o que atende bem a maioria dos projetos colaborativos. Entretanto, muitas empresas possuem tecnologias e inovações que desejam preservar. Por isso, preferem não abrir totalmente o código de seus programas. Para essa questão surgiu a LGPL.
5.2.2 LGPL (Library ou Lesser General Public License)
A GNU Lesser General Public License foi escrita por Richard Stallman e Eben Moglen, em 1991 e atualizada em 1999. Esta é uma licença de software livre aprovada pela FSF. A LGPL é uma variação da GPL que permite ao desenvolvedor usar bibliotecas livres onde estão disponíveis códigos prontos que podem ser utilizados para facilitar a criação de um novo programa. Na prática, é um tipo de licença que permite que o programador aproveite os códigos livres para criar um programa fechado, por exemplo, ou então, o desenvolvimento de programas de código aberto que contenham

Outros materiais