🇬🇧   English

História do Linux

Postado em 28-12-2023, por Rodolfo

Como surgiu o sistema operacional do pinguim?

A maior parte das pessoas nunca lidou com um computador rodando Linux. Na verdade, a maioria nunca ouviu falar dele. E a verdade, irônica como sempre, é que todo mundo utiliza Linux.

Morfeu, personagem do filme Matrix

"Matrix está presente em tudo. Está ao nosso redor. Mesmo agora, na sala onde estamos. Você pode vê-la quando olha pela janela ou quando liga sua televisão". Morfeu, em Matrix (1999), retirado de allocine.fr

Linux é como Matrix. O mundo roda Linux. Servidores empresariais que ficam ligados 24/7 rodam Linux. O Android, sistema operacional da maior parte dos telefones celulares, é baseado em Linux. Até mesmo televisores: muitos deles rodam Linux internamente.

O sistema Linux não é tão conhecido como o Windows ou macOS por alguns motivos distintos. Por exemplo, a Apple utiliza o seu próprio sistema operacional em suas máquinas. Seu sistema tem similaridades com Linux porque ambos derivam do Unix.

Já as demais fabricantes tem uma história diferente. Nos anos 80, a Microsoft firmou contrato com a gigante fabricante de computadores IBM para embutir o seu sistema nos computadores destes. Assim, o sistema DOS, da Microsoft, passou a vir instalado de fábrica. Foi substituído pelo Windows alguns anos depois, que se tornou praticamente o imperativo para quem queria comprar um computador e realizar tarefas básicas com ele. Um grande ecossistema de programas e utilitários foi se formando ao redor do Windows, sendo que a maior parte deles só roda neste sistema. Empresas e criadores de software visam o Windows como plataforma principal a anos. Grande parte dos PCs vêm, até hoje, com o Windows pré instalado. Como uma pessoa comum vai conseguir utilizar outro sistema operacional dessa forma?

Outro motivo importante da não-popularidade do Linux dentro das casas: ele sempre foi mais complicado de utilizar e manter. Porém, hoje a realidade é mais favorável. Existem distribuições Linux facílimas de utilizar (talvez até mesmo mais compreensíveis do que o Windows em algumas tarefas), mas quando chegar a hora de alterar configurações ou mesmo instalar certos tipos de programas, ainda existirá grande dificuldade para o usuário leigo.

Faço aqui uma comparação com carros. Os veículos atuais são bem mais fáceis de conduzir do que os antigos. Tudo é eletrônico, computadorizado, controlado. A sensação ao volante é neutra, insossa. Mas, se você quiser extrema confiança mecânica, sentir a conexão homem-máquina, e estar no controle (tanto da condução quanto da manutenção do carro), terá que aprender sobre o assunto para dirigir um carro "puro".

Tio Ben, do Homem-Aranha

"Com grandes poderes vêm grandes responsabilidades". Tio Ben, em Homem-Aranha (2002), retirado de geekfeed.com

Certo, Linux é um sistema purista, completo, criado e mantido por pessoas comuns, e que nos dá plenos poderes e nada nos proíbe. Como ele surgiu?

Algum tempo atrás...

Em 1969 começou a ser desenvolvido um novo sistema operacional nos Laboratórios Bell, nos Estados Unidos. O que seria inicialmente um sistema para uso interno acabou sendo lançado em versões comerciais e acadêmicas no final da década de 70. O nome do sistema é Unix, e foi inicialmente escrito na linguagem de montagem Assembly.

Já em 1972, dois dos criadores do Unix (Ken Thompson e Dennis Ritchie) criaram a linguagem C, derivada da linguagem B. O Unix foi, então, reescrito em C. Isto permitiu que o Unix se tornasse o primeiro sistema operacional capaz de ser portável para outras plataformas de computadores, já que a linguagem C é multiplataforma.

Ken Thompson e Dennis Ritchie

Ken Thompson e Dennis Ritchie, renomados cientistas da computação. Retirado de computerhistory.org

O Unix acabou crescendo e se espalhando para além das capacidades pretendidas por seus criadores. Universidades adotaram o seu uso, e vários programadores criavam novos programas para ele. Acabou se tornando um sistema universal, que pode rodar em computadores de todos os tamanhos (os computadores pessoais ainda eram novidade na época em que dominavam mainframes e terminais). Através do Unix surgiu, inclusive, a Internet. Porém, nem todas as versões do Unix contém software livre.

Novos sistemas operacionais baseados no Unix foram aparecendo ao longo do tempo, os chamados "Unix-like systems". O Linux é um destes sistemas.

Avançando para os anos 80...

Em 1983 foi criado o projeto GNU.

A palavra GNU, neste caso, é um acrônimo recursivo que significa "GNU is Not Unix" (GNU não é Unix).

O projeto GNU consiste em mais de trezentos pacotes de software (como compiladores, editores de texto, editores gráficos, software multimídia...) que, quando em conjunto com um kernel (núcleo de um SO), formam um sistema operacional completo. O objetivo do GNU era ser um sistema Unix-like, mas composto somente por software livre. O mesmo homem que criou o projeto GNU escreveu também todas as versões da licença de software livre GPL, amplamente utilizada nos dias de hoje. Este homem se chama Richard Stallman.

Richard Stallman

Richard Stallman trabalhando em seu laptop, em algum lugar (bonito) do mundo. Retirado de seu site pessoal, stallman.org

O kernel criado para o GNU chama-se Hurd. Porém, por questões de status de desenvolvimento, o kernel mais comumente utilizado com o projeto GNU tornou-se o Linux.

Finalmente, o Linux!

Em abril de 1991, um estudante finlandês de apenas 21 anos do curso de ciência da computação da Universidade de Helsinki começou a conceber idéias para um novo sistema operacional inspirado no Minix. Seu nome é Linus Torvalds, e no mesmo ano ele postou esta famosa mensagem em um grupo da Usenet (traduzida livremente):

Linus Torvalds

"Estou criando um sistema operacional livre (é apenas um hobby, não será grande e profissional como o GNU) para clones de 386 (486) AT. Está acontecendo desde abril, e começando a ficar pronto. Gostaria de receber quaisquer opiniões sobre coisas que as pessoas gostam/não gostam no Minix, já que meu SO lembra um pouco ele (tem o mesmo layout físico do sistema de arquivos por motivos práticos, entre outras coisas). Já portei o BASH (1.08) e o GCC (1.40), e as coisas parecem funcionar. Isso mostra que terei algo prático dentro de alguns meses [...] Sim - ele é livre de qualquer código do Minix, e tem um sistema de arquivos multi-threaded. Ele não é portável (utiliza o sistema de troca de tarefas do 386, etc.), e provavelmente nunca suportará algo além de discos rígidos AT, já que é tudo o que tenho :-("

Post de Linus Torvalds, em 25 de agosto de 1991. Imagem retirada de wired.com

* Minix é um sistema operacional Unix-like, criado por Andrew S. Tanenbaum para propósitos educacionais.

* Bash e GCC são pacotes de software do GNU. O primeiro é um terminal, enquanto o segundo é um compilador da linguagem C.

Nessa mesma época o projeto GNU estava praticamente pronto, mas o kernel Hurd ainda estava incompleto. O Linux tornou-se, então, o kernel associado ao projeto GNU para formarem juntos um sistema operacional.

Sendo um sistema aberto a todos os interessados e estando publicamente disponível pela Internet, o Linux evoluiu rapidamente. Em 1994 foi liberado o kernel de versão 1.0, que suportava apenas computadores i386 de processador (CPU) único. Um ano depois já aparecia a versão 1.2, que trouxe suporte a CPUs das arquiteturas Alpha, SPARC e MIPS. Na versão 2.0 do kernel Linux, em 1996, surgiu o suporte a múltiplos CPUs na mesma máquina. No início do novo milênio, o kernel já suportava as tecnologias USB, Bluetooth, novos CPUs, mais sistemas de arquivos, entre inúmeras outras novidades. No momento da publicação deste artigo (dezembro de 2023), a atual versão do kernel Linux era a 6.6.8, para se ter uma idéia.

Linux ou GNU/Linux?

Existe um debate sobre a forma correta de se chamar o sistema operacional. Entretanto, muitos concordam que o correto é dizer que um sistema operacional Linux é, na verdade, um sistema "GNU/Linux", já que os dois projetos se uniram para formarem um sistema completo. O termo Linux compreende o kernel (núcleo) dos sistemas GNU/Linux, mas um kernel sozinho não provê um sistema funcional.

E quanto às licenças?

O kernel do Linux é distribuído pela licença GNU GPL, versão 2. Esta licença exige que o código-fonte esteja acessível com o software e que possa ser estudado e alterado por outras pessoas, desde que o novo software que possa surgir destas alterações tenha os mesmos termos.

Isto fez com que o Linux "não fosse projetado, mas sim que tenha evoluído", como muitos defendem. A licença adotada permitiu que o Linux fosse sendo criado não só por Torvalds, mas por uma enorme comunidade de desenvolvedores e testadores que o tornaram um projeto gigante, em um processo similar à seleção natural. Tendo uma licença que permite o acesso ao código-fonte, muitos foram e são os que melhoram o sistema, encontram falhas, as corrigem e criam novas funcionalidades. O próprio Linus Torvalds ainda trabalha mantendo novas versões do kernel.

O que são distribuições?

Talvez você tenha ouvido falar em distribuições Linux, ou no seu diminutivo, "distros". Parece um pouco estranho no começo, quando estamos acostumados apenas a ver novas versões do Windows ou do macOS serem lançadas de anos em anos, por exemplo, acompanhadas por números ou nomes.

Com Linux é diferente. Todos estão livres para lançar novas versões de sistemas operacionais com o kernel Linux, sejam organizações, empresas ou até mesmo pessoas comuns, e também para modificar um sistema GNU/Linux existente visando suas próprias necessidades e distribui-lo a outros. A Canonical é uma empresa privada que criou e mantém, entre muitos serviços, a distribuição Ubuntu Linux. A Red Hat é outra empresa (subsidiária da IBM) que mantém a distro Red Hat Enterprise Linux. A comunidade Debian Project mantém a distro Debian GNU/Linux, criada por Ian Murdock em 1993. É a distribuição que eu utilizo, e é a segunda mais antiga ainda sendo mantida, atrás apenas do Slackware Linux, também de 1993. Esta última foi criada por um cara chamado Patrick Volkerding, que ainda está envolvido no projeto. Estes são exemplos de como o Linux não pertence a ninguém, e pertence a todos.

Uma distribuição pode ser definida como um sistema GNU/Linux que você baixa e instala. Ela contém o kernel do sistema (Linux), pacotes essenciais de software (projeto GNU), drivers necessários para todos os periféricos do PC, um servidor de interface gráfica (possibilita o desenho de gráficos na tela além de texto), e na grande maioria dos casos um ambiente de área de trabalho (gerenciador de janelas e pacotes de software como navegador, players, editores de texto, etc), embora um ambiente destes não seja necessário se o sistema operacional puder ser utilizado com linha de comando na tarefa pretendida. Por exemplo, em muitos casos um servidor só precisa de interação via linha de comando, não sendo necessárias janelas, gráficos e mouse.

Área de trabalho do Debian GNU/Linux

Minha área de trabalho. Debian GNU/Linux, com o ambiente de área de trabalho KDE personalizado (CLIQUE NA IMAGEM PARA AMPLIAR).

Alguns números curiosos:

1. Os 500 supercomputadores mais poderosos do mundo rodavam, até 2018, algum SO baseado em Linux;

2. O nome "Linux" quase não foi o oficial. Linus queria chamar o seu projeto de FreaX, uma combinação de "free", "freak" e "X" (livre, estranho e X, este último por causa do Unix). Porém, o dono do servidor que hospedava seus códigos iniciais trocou o nome para Linux, combinação de Linus e Unix, sem consultar Linus. Inicialmente Linus não queria tomar uma atitude que pudesse soar narcisista, mas o nome Linux acabou sendo adotado;

3. A NASA e a ESA utilizam Linux em seus programas espaciais, assim como a empresa SpaceX;

4. O mascote do Linux é um pinguim chamado Tux. Algumas pessoas explicam que um pinguim foi selecionado por causa da afeição que Linus tem pelo animal. O próprio Linus brinca que foi mordido por um pinguim nervoso, que o infectou com "pinguinite";

5. A comunidade de pessoas que desenvolvem para o sistema Linux ao redor do mundo é bastante ativa. Quase oito patches eram submetidos por hora ao kernel, em média, em 2021 e 2022;

6. Linux roda em tudo, de smartphones e servidores a submarinos e foguetes;

7. A Microsoft tentou destruir o Linux no final dos anos 90. Hoje ela tira proveito dele no seu negócio de servidores;

8. Em torno de 95% do código do Linux foi escrito na linguagem C, de acordo com o site openhub.net;

9. O Android é o SO mais popular do planeta, com mais de dois bilhões de usuários, de acordo com a Google. O Android é um SO baseado em Linux;

10. Sistemas operacionais Linux dão liberdade ao usuário para usar, testar, modificar, redistribuir ou até mesmo vender o SO;

11. O primeiro grande filme produzido com servidores rodando Linux foi Titanic (1997).

Conclusão

Para terminar, deixo aqui minha visão sobre software e sua criação. Não há nada de errado em criar uma empresa, contratar funcionários e criar software com código fechado (que o usuário pode apenas executar, e não "abrir para ver como funciona"), e lucrar com isto para sobreviver. Também não vejo nada de errado quando um programador cria um software por conta própria e o disponibiliza por meio de venda, sistema de doações ou sem custo, tendo o código-fonte fechado ou não. Acho que o ser humano deve ser capaz de criar algo do jeito que considerar melhor, dadas as normas do ambiente em questão.

O problema surge quando um pequeno punhado de big techs com poderes absurdos e exagerados começa a tentar definir todo o mundo da computação de acordo com seus objetivos. E acredite, eles vêm tentando fazer isso desde o início da nossa história.

Acho que esta é a melhor definição do que um hacker realmente é: uma pessoa interessada em um determinado assunto, que decide criar, consertar ou modificar algo, e fazer o que bem entender com isso, respeitando as licenças previamente estabelecidas e aceitas.

Acredito que as pessoas devam ser livres. E disso, o mundo do software livre entende.

Sites consultados:

https://linuxjourney.com/lesson/linux-history

https://www.omgubuntu.co.uk/2018/08/interesting-facts-about-linux

https://www.linuxfordevices.com/tutorials/linux/history-of-linux

https://unix.stackexchange.com/questions/123616/can-the-25-years-of-development-of-the-linux-kernel-be-qualified-or-abstracted-i

https://en.wikipedia.org/wiki/Linux_kernel

https://en.wikipedia.org/wiki/Linux

https://en.wikipedia.org/wiki/Unix

https://en.wikipedia.org/wiki/GNU

https://en.wikipedia.org/wiki/GNU_General_Public_License