Um texto um pouco grande com uma introdução teórica do Linux, como sua história, seu funcionamento “atrás do palco”, sua licença, entre outros. Bom para quem nunca ouviu falar de Linux!
O que diabos é o Linux?
O Linux é um sistema operacional, ou seja, a interface que gerencia o computador e torna possível a sua interação com o usuário. Sendo assim, o Linux é quem controla o gerenciamento dos dispositivos físicos (como memória, disco rígido, processador, entre outros) e permite que os programas os utilizem para as mais diversas tarefas. Outros sistemas operacionais incluem: a família UNIX BSD (FreeBSD, NetBSD, OpenBSD e outros), AIX, HP-UX, OS/2, MacOS, Windows, MS-DOS, entre muitos outros.
O criador do kernel Linux se chama Linus Torvalds, que também é até hoje o mantenedor da árvore principal deste kernel. Quando Linus fez o kernel, seguiu os padrões de funcionamento POSIX – os mesmos utilizados por todos os sistemas UNIX – e por isso é um sistema operacional bem parecido com os outros da família UNIX (mas não igual). Um fato curioso é a origem do nome Linux: o autor juntou seu nome ao Unix (Linus + Unix) e o resultando foi Linux.
Um dos recursos que deixou o Linux mais utilizado é sua alta portabilidade, que faz com que o sistema possa ser utilizado em diversas plataformas de hardware: PCs, main-frames, servidores de porte, sistemas embarcados, celulares, handhelds, roteadores, entre outros. Além disso, ele é um sistema operacional completo, multi-tarefa e multi-usuário, o que significa que vários serviços e usuários podem utilizá-lo ao mesmo tempo. Outra característica importante é sua alta capacidade de conversar com outros sistemas operacionais, tais quais outros sistemas UNIX, redes Windows, Novell, entre outros).
Além de todas essas funcionalidades, uma das principais e mais importantes características do Linux é ele ser um software livre e gratuito (Open Source – ou em português – Código Aberto). Isto significa que você não precisa pagar para usá-lo, além de ter a possibilidade de não depender de nenhuma empresa que controle o sistema operacional. O código-fonte do núcleo do sistema (kernel) está liberado sob a licença GPL e pode ser obtido na Internet por qualquer pessoa, pode também ter seu código alterado e re-distribuído, modificando ao seu gosto e suas necessidades, caso preciso. Por ser livre, o Linux tem como desenvolvedores vários programadores espalhados pelo mundo, de várias empresas diferentes ou até pessoas isoladas, que contribuem sempre mandando pedaços de códigos e implementações ao Linus Torvalds, que organiza e decide o que ir ao kernel oficial ou não.
História do Linux
O criador do Linux – Linus Torvalds – era inscrito em uma lista de discussão de programação baseada em UNIX, quando se deparou com a seguinte pergunta:
“Lembra-se daquela época quando os homens escreviam seus próprios drivers de dispositivos?”
Ele então resolveu desafiar a si mesmo e criar um sistema operacional onde se pudesse trabalhar como em UNIX, executasse em máquinas baratas (PCs) e que não se ficasse preso ao sistema, como ele se sentia com sistemas operacionais proprietários. Inspirado em um pequeno e humilde sistema feito por Andy Tanembaum – o Minix – Linus trabalhou bastante para desenvolver o Linux. Um pouco antes de lançar a primeira versão oficial do kernel, Linus mandou a seguinte mensagem para o grupo de notícias comp.os.minix:
“Você suspira por melhores dias do Minix-1.1, quando homens serão homens e escreverão seus próprios drivers de dispositivos? Você está sem um bom projeto e está morrendo por colocar as mãos em um sistema operacional o qual você possa modificar de acordo com suas necessidades? Você está achando frustrante quando tudo trabalha em Minix? Chega de atravessar noites para obter programas que trabalhem corretamente? Então esta mensagem pode ser exatamente para você.
Como eu mencionei há um mês atrás, estou trabalhando em uma versão independente de um sistema operacional similar ao Minix para computadores AT-386. Ele está, finalmente, próximo do estágio em que poderá ser utilizado (embora possa não ser o que você esteja esperando) e eu estou disposto a colocar os fontes para ampla distribuição. Ele está na versão 0.02… contudo eu tive sucesso rodando o bash, gcc, gnu-make, gnu-sed, compressão e etc nele.”
No dia 5 de Outubro de 1991, Linus Torvalds anunciou a primeira versão oficial do Linux, a versão 0.02. Desde então, muitos programadores têm respondido ao seu chamado e têm ajudado a fazer do Linux o sistema operacional que é hoje.
Software Livre / Código-Aberto
Quando um software é lançado, o autor geralmente escolhe uma licença para a sua criação. Esta licença é quem vai dizer o que se pode ou o que não se pode fazer com o software disponibilizado. Historicamente, com a popularização da informática, as licenças geralmente constituíam uma série de restrições para os usuários quanto ao uso do software, como por exemplo: usuários tinham que pagar para usar e não podiam modificar ou mexer na sua base de programação.
Quando Linus Torvalds criou e lançou seu kernel, ele o colocou sob a licença GPL, uma licença criada pela fundação GNU que permitia o livre uso dos softwares, protegendo de pessoas mal-intencionadas. A licença GPL foi uma das responsáveis pela popularização do sistema operacional Linux, pois permitia que usuários e desenvolvedores pudessem usar e modificar o sistema de acordo com suas necessidades. Além disso, ao mesmo tempo que ela permite liberdades em relação ao software, ela também protege o código para que a licença e suas liberdades não sejam modificadas. Este tipo de licença permissiva é quem define quando um software é livre, ou é de código-aberto.
Licença GPL
A licença GPL permite que o autor distribua livremente o seu código, oferecendo assim 4 liberdades:
- A liberdade de executar o programa, para qualquer propósito;
- A liberdade de estudar como o programa funciona e adaptá-lo para as suas necessidades;
- A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo;
- A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie deles.
Em outras palavras, todos podem utilizar, modificar e redistribuir o software (e inclusive as modificações), contanto que tudo isto seja feito respeitando e mantendo a mesma licença GPL. Isso permite que o software nunca seja fechado, assim pessoas mal-intencionadas não podem fazer uso desleal do código.
Outras Licenças
Além da GPL, há uma grande quantidade de outras licenças que permitem o uso livre dos softwares. Podemos citar alguns exemplos como a LGPL, Original BSD, Modified BSD, Apache License, Intel Open Source License, Mozilla Public License, entre muitas outras.
FSF e o Projeto GNU
A FSF – Free Software Foundation (Fundação do Software Livre, em português) – criada em 1985 por Richard M. Stallman é uma fundação sem fins lucrativos com o objetivo de incentivar o movimento do software livre. A FSF foi pioneira na discussão e criação de softwares livres no mundo, em uma época em que tudo estava tendendo ao software pago.
GNU’s Not Unix
O Projeto GNU foi o berço do software livre. Iniciado em 1984 e idealizado por Richard Stallman, seu propósito era criar um sistema operacional livre, de código-aberto. Stallman começou com a idéia criando o editor de textos emacs, que foi muito bem recebido ao seu redor, depois contemplando o projeto com outros pedaços de software como o compilador gcc.
Depois de algum tempo, o projeto GNU tinha todas as ferramentas prontas para os usuários utilizarem, mas faltava apenas uma coisa: o kernel. Sem um kernel próprio e livre, o ideal de software livre do projeto GNU não poderia ser alcançado. O kernel escolhido para ser utilizado no sistema operacional GNU é o GNU HURD, um tipo de micro-kernel que havia sido iniciado em 1990.
Porém, a implementação deste kernel nunca andou muito rápido. Por essa razão, um estudante da Finlandia chamado Linus Torvalds criou um kernel chamado Linux e utilizou todas as ferramentas do projeto GNU nele. Como o kernel era livre, rapidamente as pessoas ao redor do projeto GNU começaram a utilizá-lo e apesar de não ser considerado oficial, o Linux acabou se tornando o kernel principal do sistema GNU.
Por essa razão, muitas pessoas utilizam o termo “GNU/Linux” para chamar o sistema operacional que tem como kernel o Linux e muitas de suas ferramentas básicas do projeto GNU. Essa questão é bastante polêmica e gera muitas controvérsias, pois atualmente não se usa apenas as ferramentas GNU: as distribuições possuem vários outros programas de diversos projetos diferentes.
Free Software Foundation
Em 1985, Richard Stallman criou a Free Software Foundation, uma organização sem fins lucrativos que atua na defesa do software livre e suas licenças. A FSF cuida de licenças como a GPL, importantes na implantação e adoção do software livre no mundo. Além disso, ela também gerencia o projeto GNU, auxiliando todo o grande número de programas que participam do projeto.
A Free Software Foundation tem sua sede em Boston, MA, EUA. Além da sede, ela também tem filiais na América Latina, Europa e Índia.
Richard Stallman
Fundador e criador de várias políticas sobre softwares livres, Richard Stallman pode ser considerado um dos pais do software livre. Até os dias de hoje (2008), Stallman continua atuando como articulador pela Free Software Foundation. Defendendo o software livre e a GPL com todas suas forças.
Distribuições
Quando Linus lançou a primeira versão do Linux em 1991, ele utilizou boa parte do conjunto de ferramentas do kernel GNU para trabalhar junto ao kernel, afinal o kernel sozinho não poderia fazer nada de útil em relação à interface com o usuário. Para usar todas as ferramentas, ele teve que construí-las especificadamente para o seu kernel e uní-las para apresentar ao usuário uma interface para o uso do computador. Enquanto o kernel trabalhava com o hardware, as ferramentas trabalhavam servindo como ponte entre o usuário e o kernel.
O processo de montagem do kernel com estas ferramentas pode ser muito trabalhoso. Algumas empresas e pessoas viram isso como uma grande barreira para adoção do sistema: como usuários que não eram tão avançados conseguiriam utilizar o sistema operacional?
Esta questão foi resolvida com o surgimento das distribuições. As empresas e pessoas criaram processos de empacotamento do kernel e ferramentas diversas e forneciam aos usuários o pacote todo pronto: uma distribuição. Os usuários obtiam cópias de disquetes ou CDs através de amigos ou pela Internet e instalavam em suas máquinas através dos sistemas de instalação que as empresas e pessoas por trás das distribuições fizeram, tornando assim o trabalho muito mais fácil.
Com o tempo, as distribuições ficaram cada vez mais complexas, utilizando várias outras ferramentas além das do projeto GNU, se tornando verdadeiros sistemas operacionais que poderiam ser aproveitados por uma vasta base de usuários.
Uma das reações mais comuns entre as pessoas quando elas dizem que utilizam o Linux é perguntar: “Qual a sua distribuição Linux?”. Como o kernel Linux e suas ferramentas são softwares livres, este processo de empacotamento em uma distribuição poderia ser feito por qualquer um que entendesse do sistema. Por isso, cada empresa ou pessoa construiu sua distribuição de acordo com o que eles achavam que seria o melhor. Com isso, cada distribuição acaba tendo algumas características específicas que as diferenciam das outras, criando assim o gosto pela adoção nas pessoas. Enquanto uma pessoa utiliza a distribuição X, outra pessoa utiliza a distribuição Y e uma terceira pessoa a distribuição F.
Atualmente temos disponíveis centenas de tipos diferentes de distribuição, para todos os gostos.
Seguindo os Padrões
Quando centenas de distribuições começaram a aparecer, cada uma estava fazendo tudo do seu jeito. Apesar da liberdade de escolha ser algo bom, a falta de padrões poderia por em risco a utilização das distribuições Linux em geral, pois umas acabariam se tornando totalmente incompatíveis com as outras, como se fossem sistemas operacionais totalmente diferentes.
Para resolver esta questão, criou-se alguns padrões que as distribuições procuram seguir para manter a interoperabilidade intacta:
- FHS – http://www.pathname.com/fhs/ – Padrão que especifica a localização de arquivos e diretórios, juntamente com a especificação de qual seus papéis no sistema operacional.
- LSB – http://www.linuxbase.org – Um tipo de extensão ao FHS, que fornece modelos de teste para as distribuições possuírem a garantia de seguidoras do padrão LSB. Com esta garantia, as distribuições garantem que quando seguirem o padrão LSB, irão ser interoperáveis: ou seja, as aplicações que funcionam em uma funcionarão em todas.
Os diversos usos de uma distribuição
Como cada distribuição tem suas próprias características, é crucial sabermos que há tipos de distribuições realmente especializadas em fazer uma coisa em específico, como também há outras que adotam um uso mais genérico.
Uma distribuição Linux pode ser utilizada em diversas áreas como um servidor: firewalls, roteadores, servidores Web e FTP, servidores de e-mail, banco de dados, backup, entre muitos outros. Também pode ser utilizada para desktop: através de ambientes gráficos como o KDE, GNOME, XFCE, entre outros, os usuários tem acesso a programas que criam uma interface amigável para o usuário, além de fornecer as ferramentas para se trabalhar em: manipulação de imagens, desenvolvimento Web, visualização de textos e apostilas, navegação na Internet, editoração gráfica, jogos, música e vídeos, entre muitos outros.
Existem distribuições que ocupam um espaço mínimo (50MB), geralmente para computadores mais antigos e com poucos recursos; outras distribuições feitas diretamente para rodar de um CD, DVD ou até pen-drive, sem precisar instalar o sistema operacional, geralmente utilizadas para demonstração do sistema, para uso emergencial ou para reparos em um computador; outras são feitas especialmente para serem executadas pela rede, sem a necessidade de um HD; e até as distribuições que são utilizadas nos dispositivos que usamos no dia-a-dia: tocadores de mp3, celulares, roteadores (wireless ou não), modems, câmeras, dispositivos de TV, entre muitos outros.
Um bom ponto de partida para se conhecer muitas distribuições é o site Distrowatch – http://www.distrowatch.com (em inglês) – que contém uma lista gigante de distribuições, seus conteúdos, descrições e objetivos.