Linux Essencial/Lição Conceitos e Características do Linux
- Objetivo(s): Apresentar conceitos e características que envolvem o uso do Linux.
- Direitos autorais e licença: Veja notas de direitos autorais e licença no final da lição.
Definindo Software Livre
[editar | editar código-fonte]Agora será definido em poucos parágrafos o que é software livre, de forma simples e didática. Segundo Stallman, software livre é aquele que permite ser livremente executado, estudado, redistribuído e aperfeiçoado. Ou seja, ele deve prover as 4 liberdades principais:
- Liberdade 0 - A liberdade de executar o programa, para qualquer propósito.
- Liberdade 1 - A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades.
- Liberdade 2 - A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo.
- Liberdade 3 - A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie.
Acesso ao código-fonte é um pré-requisito para as liberdades 1 e 3, uma vez que não é possível estudar ou adaptar o programa sem acessar o código-fonte.
Em inglês, o termo utilizado para software livre é free software, que tem um significado ambíguo para “software grátis”. Apesar dessa ambiguidade na tradução, é importante frisar que o software livre tem como objetivo principal preservar a liberdade, não o preço. Nada impede que qualquer um cobre uma taxa pela distribuição, vendendo mídias com software livre; inclusive essa é uma das principais atividades que financiam a sua difusão. No entanto, o valor cobrado não pode ser muito alto, pois assim como o software é livre, há também livre concorrência. Ou seja, uma vez que qualquer um pode copiar e redistribuir o mesmo software, isso faz com que o próprio mercado estabeleça o preço justo. Outras atividades também rentáveis além da distribuição são os serviços agregados como: treinamento, manuais, suporte e consultoria. Para saber mais sobre este assunto, acesse o endereço: http://www.gnu.org/philosophy/selling.html.
Como este é um conceito novo para a maioria este texto pode não ser suficiente para uma compreensão total do assunto. Dessa forma é recomendável a leitura de textos complementares, tais como http://www.gnu.org/philosophy/free-sw.pt-br.html, disponível em português no próprio site da Free Software Foundation (FSF).
Licença GPL
[editar | editar código-fonte]A GPL além de preservar condições legais de liberdade do software, também estabelece que modificações ou melhorias futuras no software sejam livres também. Em outras palavras, isso garante que o software nunca seja proprietário. Essa condição extra imposta legalmente ao software livre é denominada copyleft e é implementada de uma forma bastante sutil: é necessário que o desenvolvedor original do software registre os direitos autorais (copyright) sobre o software no último termo, e que aplique em seus termos de licenciamento que as cópias modificadas do programa sejam distribuídas sob a condição de que a sua licença original sempre venha acompanhada e não modificada. Isso evita que outra pessoa ou empresa reclame pelo direito autoral (copyright) do software depois de tê-lo modificado e insira termos legais à sua licença original, revogando suas liberdades originais e tornando-o proprietário. Dessa forma, se uma pessoa torna um software criado por ela livre, ela nunca perderá a autoria do software. E, adicionalmente, ninguém poderá tornar parte ou o código como um todo proprietário.
A Licença Pública Gnu ou seu acrónimo GPL é a licença para software livre criada pela FSF, disponível publicamente em http://www.gnu.org/licenses/gpl.txt. Para ser aplicada, você deve fornecer o software juntamente com o texto integral, sem modificações (inclusive com a introdução e as instruções finais) e geralmente em um arquivo de formato texto puro com nome LICENSE, TXT, LICENSING, COPYING, etc.
Essa licença também possui uma versão traduzida, não-oficial em http://www.magnux.org/doc/GPL-pt_BR.txt. A FSF declara que essa versão não é reconhecida como legalmente oficial uma vez que a tradução não foi realizada por advogado bilíngue - um custo com o qual a FSF não pode arcar por enquanto. No entanto, essa versão em português pode ser utilizada para fins didáticos, com o intuito de melhorar a compreensão da GPL.
A GPL estabeleceu que o software seria fornecido sem nenhuma garantia porque seus desenvolvedores não poderiam sofrer punições por uma falha do programa. No entanto, terceiros poderiam oferecer serviços agregados de garantia de suporte e correções no código-fonte caso fossem encontradas falhas.
Além da GPL e das licenças do Creative Commons existem diversas outras licenças que garantem a flexibilidade dos direitos do autor sobre a obra e que de certa forma possuem uma filosofia parecida. Podemos citar por exemplo a Mozilla Public License[5] cujo principal uso é na suíte de software Mozilla, a MIT Public License[6] ou mesmo a MIT License[7]. As licenças citadas, por exemplo, são licenças que permitem que trechos de programas possam ser usados em softwares livres e softwares proprietários, o que não acontece com a GPL.
Onde encontrar Software Livre
[editar | editar código-fonte]Existem hoje milhares de projetos de software livre, tanto para servidor quanto para desktop. Atualmente não só a FSF, mas também várias outras instituições já dedicam-se à tarefa de localizar e até hospedar projetos de software livre. Vejamos alguns dos destaques:
- Free Software Directory (http://directory.fsf.org/): é um diretório (classificador) de software GNU/Linux e suas variantes mantido pela FSF e pela UNESCO (Órgão da ONU) . Em fevereiro de 2010, havia 6313 projetos indexados.
- Savannah (http://savannah.gnu.org) :é um site de hospedagem de projetos GNU. Há também um site idêntico, mantido também pela FSF, porém para software livre não-gnu http://savannah.nongnu.org. Em fevereiro de 2010, havia 388 projetos gnu e 2.705 não-gnu. É bom saber que projetos não-gnu hospedados neste site são na maioria software GPL, só não foram eleitos como oficiais para o projeto GNU; veja link [14] para maiores detalhes.
- Sourceforge (http://sourceforge.net): é um site que hospeda projetos de código aberto gratuitamente, funcionando sob seu próprio sistema comercial de desenvolvimento de software colaborativo de mesmo nome, com várias funcionalidades como: controle de versões, integração Web, facilidades de comunicação em equipe (fóruns, mensagens, dentre outros), etc.. É um dos projetos da OSDN (Open Source Development Network), uma subsidiária da VA Software Corporation. Em janeiro de 2004, havia 73 757 projetos hospedados e 762.997 usuários cadastrados.
- Freshmeat (http://freshmeat.net): é um dos melhores localizadores de software GNU (70%) e não-GNU (30%); possui uma classificação de software muito interessante, baseada em valores de vitalidade, popularidade e pontuação que permitem que os usuários possam “separar o joio do trigo”. É também um dos projetos da OSDN. Em janeiro de 2004, havia 31 338 projetos cadastrados.
- Código Livre (http://codigolivre.org.br): é uma iniciativa brasileira de hospedagem de software livre, através da Univates (http://www.univates.br). A base de seu código é do Sourceforge, por isso suas funcionalidades são praticamente as mesmas, porém sua apresentação é toda em português.
- Linux.org (http://www.linux.org/apps/index.html): é a área do site linux.org, mantido pela empresa Linux Online.
Perguntas Frequentes
[editar | editar código-fonte]A GPL é um assunto ainda novo para a maioria, e de certa maneira, difícil de se compreender rapidamente. No sentido de resolver algumas dúvidas que causam maiores polêmicas, juntamos aqui algumas perguntas mais frequentes e que valem a pena saber responder. Sugerimos também que acesse o FAQ da FSF sobre a GPL, disponível em [1].
- O GNU/Linux pode se tornar software proprietário? Ou de maneira mais abrangente, um software GPL pode se tornar proprietário?
- Não. O GNU/Linux, ou mais especificamente o kernel, bem como os outros softwares GPL são copyleft , ou seja, possuem termos jurídicos bem claros em seu licenciamento que asseguram que nunca se tornarão software proprietários.
- O GNU/Linux acabaria se Linus desistisse do projeto?
- Não. Juridicamente a GPL libera que o projeto seja mantido por outros, inclusive por outras instituições além da atual, denominada Kernel.Org - organização sem fins lucrativos que mantém o kernel atualmente, http://www.kernel.org - e que reúne vários voluntários e empresas patrocinadoras. Vários colaboradores são profissionais de empresas que cuidam das distribuições (Red Hat, Mandriva, etc) e de grande porte (IBM, HP, Sun, etc) e que têm negócios importantes que dependem do sucesso desse projeto. Assim, quando uma pessoa ou empresa deixa de atuar no kernel, outra pode livremente assumir o seu lugar.
- É permitido utilizar parte de software GPL em software proprietário?
- Não. Se o Software é livre, nem mesmo partes do código podem ser utilizadas em software proprietário.
- É permitido utilizar parte de código-fonte de software proprietário em software GPL?
- Não. O software proprietário impediria a liberdade das pessoas para distribuir cópias e modificar o código-fonte proprietário. No entanto, é permitido fazer chamadas a software proprietário e também ligar seu código-fonte a bibliotecas proprietárias, desde que o dono da biblioteca permita e que se faça uma observação na licença GPL. Para saber detalhes, acesse: http://www.gnu.org/licenses/gpl-faq.html#FSWithNFLibs.
- É permitido não distribuir modificações (melhorias ou customizações) de software GPL?
- Sim. A GPL não obriga a distribuição de softwares, mas libera para que outro redistribua caso deseje. Ou seja, se você desenvolver melhorias e customização de software GPL em um cliente, este poderá ou não distribuir suas modificações.
- O GNU/Linux é um projeto “sem dono” e portanto não há “responsáveis” por ele?
- Sim e não. Sob o ponto de vista de propriedade legal, sim; o Linux (kernel) e outros softwares livres não possuem “proprietários legais”. No entanto, sob o ponto de vista filosófico não, pois “todos” podem possuir sua própria cópia de software GPL (inclusive Linux) e fazer o que quiserem, desde que não infrinja as suas liberdades principais. A “responsabilidade” do GNU/kernel é semelhante à da Internet. A Internet apesar de não ter “dono” não quer dizer que não tenha “responsáveis” e nem por isso ela deixa de ser um dos grandes sucessos realizados pela humanidade. Todos seus usuários são co-responsáveis por ela, seu grau de responsabilidade aumenta na medida de sua contribuição.
- É verdade que a GPL é uma licença viral?
- Sim. Esta propriedade “viral” da GPL é denominada copyleft, ou seja, um software derivado de um software GPL sempre será GPL. No entanto, não devemos ser influenciados por pessoas que utilizam esse termo com más intenções, o associando a aspectos maléficos dos vírus de computadores; a verdadeira intenção da GPL em ser copyleft é garantir que um software GPL nunca será proprietário. Veja mais sobre essa discussão em: http://www.wikipedia.org/wiki/Copyleft.
Para saber quem são os responsáveis pelo kernel, procure em sua documentação, localizada geralmente em /usr/src/linux/MAINTAINERS e /usr/src/linux/CREDITS. Para aqueles que não gostam de contar com somente uma opção, existem também outros kernels. Como o kernel da própria GNU ou o kernel dos BSDs. Por exemplo, além do GNU/Linux, existe também o GNU/Hurd (veja link [12]) e outro é o GNU/Darwin (veja link [2], histórico do GNU/Darwin). Também existem o FreeBSD, NetBSD e OpenBSD que são ótimas opções para rodar vários softwares livres.
Creative Commons
[editar | editar código-fonte]O Creative Commons[3] é uma entidade sem fins lucrativos, criada pelo professor da Universidade de Stanford, Lawrence Lessig[4]. O objetivo da entidade é garantir flexibilidade nas obras protegidas por direitos autorais. Através da entidade foram criadas uma série de licenças que visam padronizar o licenciamento e distribuição de conteúdos culturais em geral (textos, músicas, imagens, filmes e outros), facilitando compartilhamento e recombinação de obras baseadas na filosofia do copyleft.
De forma resumida, as licenças Creative Commons preservam determinados direitos do autor sobre a obra, porém facilitam o acesso do publico à ela.
Licenças Creative Commons
[editar | editar código-fonte]O Creative Commons fornece formatos de licença prontos que vão desde uma abdicação quase total, pelo licenciante, dos seus direitos patrimoniais, até opções mais restritivas, que vedam a possibilidade de criação de obras derivadas ou o uso comercial dos materiais licenciados. Dessa forma descreveremos a seguir os 6 tipos de licenças possíveis oferecidas pela Creative Commons.
Não a Obras Derivadas (by-nc-nd)
Esta licença é a mais restritiva dentre as seis licenças principais. Ela permite sua redistribuição e é comumente chamada "propaganda grátis" pois permite que outros façam download de suas obras e as compartilhem, contanto que mencionem o link, e que não modifique a obra de nenhuma forma. Fica restrita também sua utilização para fins comerciais.
Compartilhamento pela mesma Licença (by-nc-sa)
Licença que permite que a alteração adaptação e a criação de obras derivadas sobre sua obra sendo vedado o uso com fins comerciais, contanto que atribuam crédito a você e licenciem as novas criações sob os mesmos parâmetros. Outros podem fazer o download ou redistribuir sua obra da mesma forma que na licença anterior, mas eles também podem traduzir, fazer remixes e elaborar novas histórias com base na sua obra. Toda nova obra feita com base na sua deverá ser licenciada com a mesma licença, de modo que qualquer obra derivada, por natureza, não poderá ser usada para fins comerciais.
Uso Não Comercial (by-nc)
Licença que permite que a alteração adaptação e a criação de obras derivadas sobre sua obra sendo vedado o uso com fins comerciais. As novas obras devem conter menção a você nos créditos, porém as obras derivadas não precisam ser licenciadas sob os mesmos termos desta licença.
Não a Obras Derivadas (by-nd)
Esta licença permite a redistribuição e o uso para fins comerciais e não comerciais, contanto que a obra seja redistribuída sem modificações e completa, e que os créditos sejam atribuídos a você.
Compartilhamento pela mesma Licença (by-sa)
Com esta licença é possível que outros alterem, adaptem, e criem obras derivadas ainda que para fins comerciais, contanto que o crédito seja atribuído a você e que essas obras sejam licenciadas sob os mesmos termos. Esta licença é geralmente comparada à licenças de software livre. Todas as obras derivadas devem ser licenciadas sob os mesmos termos desta. Dessa forma, as obras derivadas também poderão ser usadas para fins comerciais.
Atribuição (by)
Esta licença permite que outros distribuam, remixem, adaptem ou criem obras derivadas, mesmo que para uso com fins comerciais, contanto que seja dado crédito pela criação original. Esta é a licença menos restritiva de todas as oferecidas, em termos de quais os usos outras pessoas poderão fazer de sua obra.
Para encontrar mais detalhes acesse o seguinte link: http://www.creativecommons.org.br/index.php?option=com_content&task=view&id=26 no qual é poissível encrontrar além do resumo de cada licença a versão jurídica de cada uma.
Distribuições GNU/Linux
[editar | editar código-fonte]O que é uma distribuição GNU/Linux
[editar | editar código-fonte]Uma distribuição GNU/Linux (também chamada de distro) é um Sistema Operacional GNU/Linux funcional, ou seja, que utiliza não somente o Kernel Linux, mas também uma coleção de softwares livres com a Licença GNU (mas também podem ser encontrados softwares com outras licenças), testados para funcionar em conjunto.
O Kernel Linux por si só não torna um sistema funcional, pois ele é responsável pelas funções mais básicas de interação com o hardware, necessitando de dezenas de outros aplicativos complementares que interagem com o usuário, eleitos e fornecidos pela distro, como: interpretador de comando, interface gráfica, editores de texto, etc.
Toda distribuição é definida, criada e mantida por indivíduos, comunidades ou empresas que visam atender os diferentes interesses de nicho de mercado:
- Perfil técnico de usuário: há usuários de todo nível técnico, desde usuários leigos de informática até hackers com altíssimo nível técnico. Assim, algumas distribuições visam alcançar excelência na facilidade de uso, adequando-se aos interesses dos mais leigos, e outras visam maior configurabilidade, adequando-se aos interesses dos mais especializados.
- Hardware: as distribuições visam atender diferentes plataformas de hardware, obtendo o melhor desempenho e combinação de software para cada uma. Há distros voltadas tanto para palmtops até mainframes, de arquiteturas AMD até RISC (Sparc, PowerPC, etc), etc.
- Regionalidade: cada país pode possuir hardware próprio desenvolvido exclusivamente, além de possuir gostos por softwares diferentes dos demais, além de línguas e dialetos diferenciados. Assim, cada distribuição pode ter uma atuação voltada para atender os interesses de uma região específica.
- Tipo de mídia: além das tradicionais distros instaladas em disco rígido, há também distros em disquetes, CD e DVDs.
- Uso específico: existem distros voltadas para finalidades bem específicas, como: firewall, acesso internet, multimídia, etc.
Caso você queira encontrar uma lista com distribuições, com critérios de classificações e informações detalhadas, acesse um dos endereços:
- Linux Weely News - http://old.lwn.net/Distributions/index.php3 [8]: é uma lista mantida por uma das mais populares revistas on-line sobre GNU/Linux. Na contagem de fevereiro de 2010, existiam 572 distros em seu banco de dados.
- DistroWatch - http://www.distrowatch.com [9] : é uma lista de distros mantida pessoalmente por Ladislav Bovnar, com várias partes traduzidas em português. Na contagem de janeiro de 2010, existiam 310 distros em seu banco de dados.
O GNU/Linux é tão flexível que permite criar sua própria distribuição “na unha”. Este é o objetivo do projeto "Linux from Scratch", disponível no endereço http://linuxfromscratch.org. O mesmo documento está disponível em português no endereço http://lfs-br.codigolivre.org.br/.
Diferenciação e padronização
[editar | editar código-fonte]Se por um lado, a flexibilidade de criar distribuições contribui com a facilidade de customização, por outro, leva à uma diferenciação que pode causar dois principais problemas:
- incompatibilidade de software: um binário que é compilado em uma distro pode não funcionar em outra quando uma biblioteca necessária não existe ou seu caminho é diferente.
- aculturação de técnicos: quando um especialista em uma distro utiliza outra que ele não conhece, pode perder produtividade, se perdendo em características particulares, que geralmente são: inicialização, caminho de arquivos, arquivos de configuração, gerenciamento de pacotes de software, aplicativos básicos, etc.
Com a necessidade de se definir padrões que evitem prejuízos sem perder a flexibilidade, foi criado o projeto Linux Standard Base, ou simplesmente LSB, disponível em http://www.linuxbase.org, mantido pelo Free Standards Group (http://www.freestandards.org), uma instituição sem fins lucrativos, e patrocinado principalmente por empresas. Assim quando uma distribuição é considerada compatível com a LSB, significa que a distribuição segue os padrões especificados pelo projeto. Um projeto que tem alcançado avanços significantes é o FreeDesktop.org (http://www.freedesktop.org), que tem servido como ponto de discussão, sugestão e desenvolvimento de padrões e programas para desktop.
Como escolher “sua distribuição”
[editar | editar código-fonte]Alguns usuários se gabam por estarem utilizando a “melhor distribuição”, como se existisse uma única distribuição que atendesse a necessidade de tudo e todos. No entanto, existem distribuições adequadas para gostos e necessidades diferentes. Portanto, a “melhor distribuição” é aquela que melhor “pontuar” em seus critérios de valor.
Vejamos algumas sugestões de critérios que podem ajudar na escolha de uma distribuição:
- liderança: As seguintes distros são consideradas líderes de mercado pela LWN [10], sendo todas elas empresas comerciais: Ubuntu, Fedora, OpenSuse?, Debian e Mandriva.
- facilidade de uso: várias distros estão se dedicando para tornar o GNU/Linux cada vez mais fácil de utilizar, ou seja, sendo cada vez mais adequado aos usuários finais.
- origem: quando uma distribuição nova surge, geralmente ela se baseia em outra pré-existente, evitando “reinventar a roda”. Uma distribuição com muitas distros filhas reflete aspectos positivos como: tradição, popularidade, solidez e estabilidade. Debian é a distribuição que mais usada para criar outras distribuições, entre elas, Ubuntu é a mais conhecida.
- cultura: geralmente a melhor distribuição é aquela que mais conhecemos. A cultura atual da equipe de profissionais deve ser levada em conta, pois uma distro estranha pode provocar perda de produtividade e aumento de custos com treinamento e suporte para adaptação.
- estabilidade: é possível encontrar falhas (bugs) tanto na instalação quanto nos binários oferecidos nas distribuições. Infelizmente não existe uma estatística que determine objetivamente o quanto uma distro é mais estável que outra. Este critério será baseado na sua experiência ou no relato da experiência de terceiros.
- suporte técnico e outros serviços: várias distros oferecem vários serviços agregados que são muito importantes, tais como: suporte, treinamento, consultoria, documentação, avisos de falhas e problemas de segurança, correções e atualizações de software, etc.
- liberdade: a valorização da liberdade do software, é refletida pela forma em que a distribuição relaciona com seus usuários. Algumas atitudes refletem positivamente esta característica, tais como: disponibilização de suas versões para download sem custos, disponibilização das fontes dos programas juntamente com os seus binários, fornecimento de meios para acompanhar o desenvolvimento da distribuição de modo a visualizar suas fontes atuais, etc. No site Distro Watch [9] é apresentado uma escala de 1 a 5, classificando seu “nível de liberdade”.
- conjunto de software: você deve analisar se a coleção de software elegida pela distro é a mais adequada para a sua necessidade e gosto. Uma distro inadequada pode exigir muito trabalho para instalar seus softwares preferidos.
Versões do kernel e da distribuição
[editar | editar código-fonte]As distribuições, além de não seguirem a mesma sequência de numeração do kernel, também não seguem o mesmo formato. Portanto não confunda a versão do Kernel com a versão da distribuição. As numerações das distros podem variar, mas o fato de uma distribuição estar em sua versão 9 não significa que uma versão 9.1 seja a mais atualizada. Por exemplo, com a possibilidade de compilar e instalar pacotes livremente, uma distribuição com a versão 9, pode ser mais atualizada que uma na versão 9.1.
O kernel utiliza o seguinte formato: X.Y.Z-V, onde X é a versão do kernel, Y é o nome da revisão majoritária do kernel, Z é o nome da release (ou correção), V é uma variante e que pode indicar que é um kernel para multiprocessamento (smp = symmetric multiprocessing) ou kernel específico para uma arquitetura (i386).
Por padrão, quando o Y do kernel for um número ímpar, indicará que esta é uma versão em desenvolvimento para testes, também chamada de “instável”. Quando Y for par, indicará que trata-se de uma versão em produção para uso normal, também chamada de “estável”. Quanto maior for o valor de Z, mais estável e melhorada é a versão utilizada, pois refletem correções de bugs da versão e acréscimo de novas funcionalidades. A série 2.2, por exemplo, ganhou suporte à USB a partir da versão 2.2.18. Na série 2.6, foi melhorado o suporte a processadores multinúcleo.
Para saber a versão do kernel utilizada, execute:
#uname -r
Por exemplo, para 2.6.32-27-generic é um kernel da série 2.6 (ou versão 2.6), para uso em produção (não é para testes), com conjunto de correções de número 32 e variante 27-386 (neste caso, específico para a arquiterura i386). Você pode se informar das últimas versões do kernel no endereço: http://www.kernel.org.
A distribuição segue em geral um número A.B. Na maioria, para saber o número da versão você pode executar:
# cat /etc/issue
Este comando mostra o cabeçalho utilizado quando é solicitado o login em modo texto.
Características do GNU/Linux
[editar | editar código-fonte]Além das características apresentadas durante o decorrer dos capítulos anteriores, nesta seção serão apresentadas algumas características importantes do GNU/Linux, classificando-as como características gerais, servidores e usuário final.
Características gerais
[editar | editar código-fonte]Características gerais, usufruídas tanto pelos usuários técnicos e não-técnicos:
- Comunidade solidária: além do suporte comercial que pode ser adquirido, você também pode contar com uma comunidade GNU/Linux bastante solidária e numerosa. Em geral, você pode contar com a ajuda de milhares de pessoas que colaboram em listas de discussão. Uma das listas mais movimentadas nacionalmente é http://linux-br.conectiva.com.br (site da lista de usuários GNU/Linux mantida pela Conectiva).
- Vasta documentação: além da documentação padrão fornecida em cada software, existe um projeto dedicado para desenvolver e traduzir documentação gratuita classificadas como How-Tos (como fazer), livros e FAQs (perguntas frequentes) em http://www.tldp.org (The Linux Documentation Project) que é o principal repositório de documentação em GNU/Linux.
- Segurança: Mesmo com muitos outros recursos de segurança, o GNU/Linux separa os usuários como comuns e super-usuário (veremos mais detalhes nos capítulos seguintes). Em geral, utilizam-se usuários comuns para executarem tarefas do dia-a-dia, evitando que o sistema seja comprometido por terceiros ou algo semelhante.
- Multiprocessador, multitarefa e multiusuário: O kernel do Linux conta com os mais sofisticados recursos de S.O.s modernos, permitindo suporte à vários processadores (multiprocessador), várias tarefas por processador (multitarefa) e vários usuários utilizando o sistema ao mesmo tempo (multiusuário).
- Melhoria contínua: em geral, um sistema tem a tendência de aumentar a lentidão a cada nova versão. Pelo contrário as distribuições do GNU/Linux tem melhorado a cada versão, pois além de melhorar o seu desempenho, também aumentou o suporte à hardware incluindo novas funcionalidades.
A medida que o leitor for se familiarizando, outras características mais avançadas somente serão apresentadas futuramente.
Características para servidores
[editar | editar código-fonte]Servidores são máquinas responsáveis por oferecerem serviços, uma página web, por exemplo. Aqui apresentaremos algumas características para servidores, percebidas e implementadas por pessoal técnico:
- Servidor Web (páginas Internet): o GNU/Linux é considerado uma das melhores plataformas para rodar o líder de mercado dos Servidores Web (que serve páginas Internet), o servidor Web Apache. Este é um software livre com ótimo desempenho, bastante versátil, modular. É o mais conhecido e o mais utilizado. Quanto a questão funcionalidade, existem dezenas de módulos disponíveis, que quando habilitados, multiplicam o nível de funcionalidade do Apache, tudo dentro da sua necessidade.
- Servidor de e-mail: existem diversas opções de servidores de correio eletrônico, na maioria software livre de excelente qualidade, desempenho e funcionalidades. Os servidores mais populares são: sendmail, qmail, postfix e exim.
- Servidor FTP: São servidores de arquivos para Internet, através do protocolo FTP - File Transfer Protocol. Os servidores mais populares são: proftp e wu-ftpd.
- Servidor de arquivos: possui suporte à servidor remoto de arquivos utilizando um protocolos, NFS e AFS são alguns exemplos, de excelente desempenho, estabilidade e que pode ser utilizado tanto em redes locais quanto na Internet, ou seja, é como se você tivesse uma pasta em que pudesse acessar de qualquer lugar. Também pode servir arquivos através de protocolos nativos de outros sistemas.
- Compartilhamento de conexões internet: compartilha um acesso internet com outros da rede, através de um serviço denominado Proxy, permitindo autenticação e controle de acesso ao conteúdo. O proxy mais conhecido é o Squid.
- Conectividade com várias redes: pode comunicar com vários outros protocolos de rede, inclusive com os protocolos utilizados pela Microsoft (SMB), Apple (Appletalk) e Novell (IPX/SPX). A conectividade com o Windows - é realizada através do software livre Samba - permite compartilhamento de impressoras e arquivos, além de fornecer autenticação para estações Windows 9X, ME, XP, 2000 e 2003.
- Linguagens de programação: existem várias excelentes opções para programação no GNU/Linux. Dentre as opções livres estão ambientes de programação completos para as linguagens PHP (primariamente para Web), Perl e Python (programação geral, inclusive para Web), C e C++, Java, Pascal, além de linguagens novas como Lua e C#. Dentre as opções comercias destaca-se o Borland Kylix, ambiente integrado para desenvolvimento rápido em Object Pascal e C++.
A medida que o leitor for se familiarizando, outras características mais avançadas somente serão apresentadas futuramente.
Características para usuários finais
[editar | editar código-fonte]- Suporte à vários hardwares: o aumento de usuários GNU/Linux faz com que os fabricantes de hardware aumentem seu interesse em desenvolver drivers. Isto é perceptível a cada nova versão do GNU/Linux, no qual existe um aumento significativo de drivers, melhorando o suporte à impressoras, scanners, placas de vídeo, fax-modem, dispositivos USB, web-cam, placas multimídia, placas de rede, etc.
- Reconhecimento automático de hardware: um dos recursos mais importantes para os usuários leigos é o reconhecimento automático de hardware. O kudzu é um dos recursos mais utilizados nas distros que é capaz de reconhecer esses drivers – http://sourceforge.net/projects/kudzu/. Ele pode ser rodado na inicialização do sistema, ou até durante o funcionamento total.
- Várias interfaces gráficas: no GNU/Linux, não existe somente uma interface gráfica (gerenciadores de janela), mas dezenas delas; algumas são tão pequenas e leves que cabem em disquetes e outras bastante complexas e com muitas funcionalidades. As mais populares são: Blackbox, Enlightment, Fvwm95, Gnome, Icewm, Qvwm, KDE, WindowMaker, etc. No endereço: http://www.plig.org/xwinman/ há uma boa lista e análise de cada uma dessas interfaces gráficas e outras.
- Vários pacotes de escritório: existem disponíveis vários pacotes software livre para escritório disponíveis. Em geral, são bastante completos, com editores de texto, planilha de cálculo, apresentação, desenho vetorial, etc. Os mais conhecidos são: Koffice, Openoffice, Gnome-Office, etc.
- Execução de binários Windows e DOS: é possível rodar aplicativos Windows e DOS no GNU/Linux através de emuladores. Os mais populares são: Wine (aplicativos Windows) e dosemu (aplicativos DOS).
A medida que o leitor for se familiarizando, outras características mais avançadas somente serão apresentadas futuramente.
Termos utilizados
[editar | editar código-fonte]Especialmente neste capítulo, por ser um capítulo bastante conceitual, vários termos foram utilizados, iremos fazer aqui somente menção àqueles que consideramos essenciais para o entendimento do capítulo e para os capítulos seguintes.
- Compilador
- software que traduz (compila) um código-fonte em código intermediário, geralmente para um formato binário executável.
- Copyleft
- é uma condição aplicada às licenças impedindo que um software se torne proprietário, permitindo a modificação do software se e somente se as condições de software livre forem preservadas.
- Distro
- é sinônimo de Distribuição. Distribuição GNU/Linux: é uma coleção de softwares livres, em grande parte do projeto GNU, que juntamente com o kernel Linux formam um sistema operacional completo.
- FSF
- é acrónimo de Free Software Fundation, a fundação criada por Richard Stallman para promoção do software livre.
- GPL
- é o acrónimo de Licença Pública Geral, que garante liberdade para os seus usuários copiarem, distribuírem, entender e modificar o código-fonte e que os softwares resultantes de modificações sejam também GPL.
- Hurd
- é o kernel padrão do sistema operacional GNU, patrocinado pela FSF. Interpretador de comandos: é o aplicativo que proporciona interação do usuário com o sistema através de comandos.
- Kernel
- principal parte de um sistema operacional, denominado também de núcleo, que é responsável pelo controle de todo o hardware utilizados pelos demais softwares.
- LGPL
- é o acrónimo de a Licença Pública Geral para Bibliotecas. Esta é uma variação da GPL, com termos um pouco mais relaxados, usada em algumas bibliotecas GNU.
- Linux
- é o kernel criado por Linus Torvalds, utilizados nos S.O.s funcionais Linux.
- LSB
- é o acrónimo para Linux Standard Base, ou Base de Padrões Linux mantida por uma instituição sem fins lucrativos - freestandards.org - que cria padrões comuns para o Linux. Uma distribuição GNU/Linux que segue a especificação LSB possui várias características em comum com outros que seguem a LSB.
- Minix
- é o sistema operacional baseado nos padrões Unix, utilizado para fins didáticos e criado por Andrew Tanenbaum. Este sistema foi o que inspirou Linus quando se criou o GNU/Linux.
- POSIX
- são os padrões criados pelo IEEE, para definir as características básicas do Unix. Projeto GNU: é o projeto criado pelo Richard Stallman que tem como objetivo criar um sistema operacional completo e funcional. GNU vem da sigla em inglês "GNU is not Unix" -> "GNU não é Unix". Como os softwares eram baseados em Unix, as pessoas costumavam confundir, mas esse projeto é diferente do sistema operacional Unix. Quatro liberdades do software livre: definidas por Richard Stallman, são quatro condições fundamentais para que um software seja considerado livre. Single Unix Especification: é uma especificação semelhante e mais atual que à POSIX, criada e mantida por um consórcio de empresas com negócios com sistemas operacionais Unix. Sistema aberto: são sistemas computacionais que permitem interoperabilidade e portabilidade através da adoção de padrões abertos (disponíveis publicamente). Um caso de sistema aberto é um S.O. baseado nos padrões abertos do Unix. Não se deve confundir com sistemas de código-aberto, que tem significado diferente, sendo estes sistemas que disponibilizam o código-fonte. Software livre: aquele que provê, para seus usuários, as quatro liberdades principais do software livre.
- Unix
- atualmente é uma família de sistemas operacionais, que seguem os padrões POSIX, sendo o mais atual o “Single Unix Especification”.
Links Indicados
[editar | editar código-fonte]- [1] FAQ - FSF
- a. http://www.gnu.org/gnu/gnu-linux-faq.html
- b. http://www.compsoc.com/~coriordan/other/fsf.html
- O primeiro site apresenta as FAQ's sobre o projeto GNU/Linux e o segundo um site não oficial que contém as principais perguntas e respostas sobre o projeto FSF.
- [2] GNU-Darwin
- http://gnu-darwin.sourceforge.net/
- Site oficial do projeto GNU/Darwin.
- [3] Creative Commons
- [4] Lawrence Lessig
- [5] Mozilla Public License
- [6] MIT License
- [7] BSD License
- [8] Linux Weely News
- http://old.lwn.net/Distributions/index.php3
- Site que armazena informações sobre Distribuíções populares do GNU/Linux
- [9] Distro Watch:
- http://www.distrowatch.com
- Lista de distros mantida pessoalmente por Ladislav Bovnar, com várias partes traduzidas em português
- [10] LWN:
- http://lwn.net/
- Site de notícias focado em manter a melhor cobertura sobre Linux e o desenvolvimento do software livre.
Exercícios de revisão
[editar | editar código-fonte]1. O que é POSIX? O que é o “Single Unix Specification”?
2. O Linux deve ser chamado de GNU/Linux? Porquê?
3. Quais são as 4 liberdades fundamentais do software livre?
4. Defina:
- Freeware
- Shareware
- Software livre
- Copyleft
- Software de código-aberto
- GPL
- Software GPL
5. Software livre é necessariamente grátis? É permitido cobrar pela distribuição de software livre?
6. O que é necessário para licenciar um software sob a GPL?
7. Entre no seguinte endereço da FSF - http://www.gnu.org/cgi-bin/license-quiz.cgi - e faça um exame de conhecimento sobre a GPL.
8. Utilizando mecanismos de busca, localize os sites oficiais dos seguintes projetos de software: Apache (servidor web), Squid (proxy), Samba (integração com redes Windows) e gcc (compilador C e C++).
9. O que são distribuições GNU/Linux? O que existe em comum entre todas as distribuições?
10. Faça uma avaliação criteriosa de várias distribuições, escolha a sua favorita e justifique os critérios mais relevantes para você.
11. O que é a LSB? O que significa quando dizemos que uma distribuição é compatível com a LSB?
12. Identifique a versão do kernel e da distribuição instalada em sua escola e/ou casa e/ou trabalho.