Linux / História: de um projeto em 1991 à infraestrutura global
O Linux começou em 1991 como um kernel desenvolvido por Linus Torvalds para computadores pessoais e se expandiu por meio da colaboração pública. A infraestrutura construída depois combina esse kernel com ferramentas GNU, outros projetos de software, distribuições e o trabalho de comunidades e empresas; a história do sistema completo envolve todos esses participantes. Para os conceitos básicos, veja o que é Linux, com diferenças entre kernel e distribuição, em inglês.
Primeiro, diferencie o kernel do sistema completo
O que muda entre kernel e distribuição?
Em sentido estrito, Linux é o kernel, o núcleo do sistema operacional. Ele gerencia processador, memória, dispositivos e interfaces usadas pelos programas para acessar esses recursos. O ambiente de trabalho e os aplicativos que o usuário vê são outras partes do sistema.
Ubuntu, Debian e Rocky Linux integram o kernel com bibliotecas, ferramentas de administração, gerenciadores de pacotes e aplicativos. Um shell, por exemplo, interpreta comandos do usuário. Muitas dessas distribuições combinam Linux e componentes GNU; a expressão GNU/Linux destaca essa composição. A explicação do projeto GNU sobre Linux e GNU apresenta a perspectiva do projeto sobre o nome. Nem todo sistema que usa o kernel Linux possui a mesma composição de ferramentas.
Quais tarefas o kernel executa?
O kernel está entre os programas regulares que os usuários executam e o hardware. Tarefas como um navegador de internet lendo um arquivo ou um programa de servidor enviando pacotes de rede são, em última análise, manipuladas através de chamadas de sistema fornecidas pelo kernel. Para entender a história do Linux, é útil primeiro distinguir os seguintes quatro papéis.
- Processos: distribui tempo da unidade central de processamento (CPU) e coordena a execução.
- Memória: administra espaços de memória e permissões de acesso, incluindo compartilhamento controlado entre processos.
- Dispositivos: usa drivers para interagir com armazenamento, rede, vídeo e periféricos.
- Arquivos e rede: oferece interfaces para sistemas de arquivos e comunicação.
Portanto, mudanças no suporte a novos hardwares, desempenho, segurança, gerenciamento de energia e escalabilidade de servidores estão principalmente conectadas à história do kernel. Em contraste, telas de desktop, comandos de instalação de pacotes e aplicativos básicos estão mais relacionados à história das distribuições ou do software em espaço de usuário.
Antes de 1991: UNIX e o projeto GNU
O Linux é um kernel do tipo Unix, desenvolvido de forma independente. Ele adotou ideias como múltiplos usuários, execução de vários processos e interfaces de arquivos e dispositivos. Isso ajuda a explicar sua semelhança de uso com sistemas UNIX, sem tratá-los como o mesmo código ou produto.
Richard Stallman anunciou o projeto GNU em 1983 e iniciou seu desenvolvimento em janeiro de 1984. GNU é uma sigla recursiva para GNU’s Not Unix: o objetivo era um sistema compatível com Unix que pudesse ser executado, estudado, modificado e redistribuído livremente. No início dos anos 1990, o projeto já tinha compiladores, shell, editores e várias ferramentas, mas ainda buscava um kernel utilizável para completar seu sistema. A história oficial do GNU descreve esse trabalho.
1991: o projeto pessoal se torna público
Em 1991, quando estudava na Universidade de Helsinque, Linus Torvalds começou a desenvolver seu projeto para PCs Intel 386. Em agosto, apresentou o trabalho em andamento ao grupo comp.os.minix da Usenet, uma rede de grupos de discussão. Pediu opiniões a usuários do MINIX e explicou que vinha trabalhando no projeto desde abril. Esse anúncio de intenção e a disponibilização do código são momentos diferentes.
O 2020 Linux Kernel History Report da Linux Foundation identifica 17 de setembro de 1991 como a data da primeira versão, Linux 0.01. Na página 4, o relatório registra 88 arquivos, 10.239 linhas de código e suporte à arquitetura i386. Esses números descrevem aquela versão inicial; não são medidas do kernel atual.
1992–1994: licença livre e distribuições
A adoção da GNU GPL
Em 1992, o Linux passou a ser distribuído sob a GNU General Public License (GNU GPL), ou Licença Pública Geral GNU. A mudança permitiu ampliar o uso, a modificação e a redistribuição segundo as condições da licença, inclusive a distribuição comercial. As notas históricas da versão 0.12 registram a transição a partir da condição inicial que restringia a distribuição por dinheiro. O kernel pôde ser integrado a ferramentas já disponíveis e a distribuições que cuidavam da instalação e dos pacotes.
Ian Murdock fundou o Debian em 16 de agosto de 1993. O projeto desenvolveu uma distribuição aberta à participação da comunidade e um trabalho cuidadoso de integração e gestão de pacotes. Sua história oficial explica a origem e a organização. Também cresceram distribuições com suporte comercial, oferecendo outros meios de adoção do Linux.
O Linux 1.0 foi lançado em 14 de março de 1994, data registrada no Linux INFO-SHEET publicado naquele ano. O arquivo de fontes da série 1.0 no kernel.org preserva o código e as mudanças. A versão 1.0 marcou a passagem a uma série apresentada como estável, sem significar ausência de erros ou equivalência imediata às capacidades dos servidores atuais.
Como as distribuições facilitaram o uso
Os primeiros usuários frequentemente precisavam reunir e configurar o kernel e várias ferramentas por conta própria. As distribuições facilitaram essa tarefa ao integrar instaladores, pacotes pré-compilados, informações de dependências e, depois, repositórios de atualização. Mesmo quando usam o mesmo kernel, elas diferem na seleção de software, no período de atualizações e na administração das configurações.
O Debian desenvolveu uma organização comunitária para políticas e pacotes. A Red Hat combinou uma distribuição com produtos empresariais e suporte: sua história oficial descreve a evolução dos CDs dos anos 1990 ao modelo de assinatura. A coexistência de modelos comunitários e comerciais ampliou as opções de instalação, manutenção e suporte.
Linha do tempo da história do Linux
| Ano | Principais eventos | Significado |
|---|---|---|
| 1983 | Anúncio do projeto GNU | Propõe um sistema compatível com Unix baseado em liberdade de uso e colaboração. |
| 1984 | Início do desenvolvimento do GNU | Começa a construção de ferramentas que depois comporiam sistemas GNU/Linux. |
| 1991 | Anúncio do projeto e versão Linux 0.01 | Um projeto pessoal passa a receber contribuições pela internet. |
| 1992 | Adoção da GNU GPL pelo Linux | Amplia a base de modificação e redistribuição sob licença livre. |
| 1993 | Início do projeto Debian | Fortalece o modelo comunitário de distribuição e gestão de pacotes. |
| 1994 | Lançamento do Linux 1.0 | Estabelece uma série estável e um marco público do desenvolvimento. |
| 1996 | Lançamento do Linux 2.0 | Inclui multiprocessamento simétrico (SMP), importante para servidores. |
| 2000 | Criação do Open Source Development Labs (OSDL) | Organiza apoio empresarial ao desenvolvimento e uso do Linux. |
| 2003 | Lançamento do Linux 2.6 | Amplia a base para novos dispositivos e sistemas de maior escala. |
| 2005 | Criação e adoção do Git | Oferece controle de versão distribuído para o trabalho do kernel. |
| 2007 | Formação da Linux Foundation | Reúne OSDL e Free Standards Group numa organização de apoio. |
De 1.0 a 2.6: mais arquiteturas e servidores
O Linux 1.0 se concentrava nos PCs da família Intel 386. As séries seguintes ampliaram o suporte a arquiteturas, dispositivos e cargas de trabalho. Módulos carregáveis também permitiram incluir funcionalidades sem manter todos os drivers integrados de forma fixa numa única configuração de kernel.
O Linux 2.0, de 1996, incluiu multiprocessamento simétrico (Symmetric Multiprocessing, SMP), permitindo usar vários processadores em conjunto. O registro da palestra de Torvalds na USENIX em 1997 descreve esse suporte e as melhorias ainda necessárias. Nas séries 2.4 e 2.6, continuaram as mudanças em dispositivos, escalonamento, memória e escalabilidade. O arquivo 2.6 do kernel.org preserva a versão 2.6.0 de dezembro de 2003 e suas atualizações.
Nesse período, o Linux ampliou seu alcance para além dos PCs e passou a atender várias arquiteturas e finalidades. Fabricantes contribuíram com drivers, enquanto empresas e comunidades participaram de melhorias de desempenho e estabilidade. Esses interesses passaram a se encontrar no desenvolvimento compartilhado da árvore principal do kernel.
2005: Git e o desenvolvimento distribuído
Por que criar outro controle de versão?
À medida que o código do Linux cresceu e mais pessoas participaram, tornou-se importante gerenciar quem fazia quais alterações e como mesclar os vários fluxos de desenvolvimento. A comunidade do kernel usou uma ferramenta de controle de versão chamada BitKeeper por um tempo, mas quando o acordo de uso gratuito terminou em 2005, uma nova ferramenta foi necessária.
Torvalds iniciou o Git com foco em velocidade, trabalho distribuído e integração de muitas linhas de desenvolvimento. A história do Git no livro oficial, em português explica a ruptura com o uso gratuito do BitKeeper em 2005. O Git passou a ser usado também em projetos sem relação com o kernel.
Como as mudanças chegam à versão principal?
As mudanças são propostas como patches, conjuntos de alterações de código, e passam por revisão de mantenedores e outros desenvolvedores. Subsistemas de rede, arquivos, drivers e arquiteturas têm árvores próprias; mudanças selecionadas seguem para a árvore principal, ou mainline. Após um lançamento, a janela de integração recebe funcionalidades preparadas anteriormente; a fase de candidatos a lançamento concentra correções e estabilização.
A participação pública convive com critérios de revisão, testes e integração gradual; enviar uma mudança não garante sua aceitação. O HOWTO oficial de desenvolvimento explica como participar, e a descrição do processo de integração detalha o ciclo e a função dos mantenedores.
Dos servidores à nuvem e aos dispositivos móveis
Adoção em servidores e empresas
A adoção empresarial de Linux se expandiu com distribuições voltadas a servidores, recursos de rede e suporte a diferentes equipamentos. Fornecedores passaram a oferecer manutenção e suporte técnico para usos como servidores web, bancos de dados e sistemas empresariais. A duração e o conteúdo desse suporte dependem do produto e da versão contratados.
A expansão da virtualização e da computação em nuvem aumentou a importância da automação, das ferramentas de distribuição e do suporte a diferentes equipamentos. Recursos de isolamento e controle de processos no kernel também se tornaram a base de contêineres Linux. Isso não ocorreu numa única etapa: infraestrutura, ferramentas de execução e práticas operacionais evoluíram em conjunto.
Contêineres, isolamento e controle de recursos
Uma máquina virtual normalmente executa seu próprio kernel. Um contêiner Linux convencional compartilha o kernel do ambiente que o hospeda e isola processos usando namespaces, que separam visões de recursos como rede, pontos de montagem e identificadores. Grupos de controle, ou cgroups, organizam processos para controlar ou medir recursos como CPU, memória e entrada/saída. Em um desktop que executa contêineres por meio de uma máquina virtual Linux, o kernel compartilhado é o dessa máquina virtual.
A imagem, o runtime de execução, a rede e o armazenamento completam o ambiente de contêiner; namespaces e cgroups não são, sozinhos, uma solução completa ou garantia absoluta de segurança. A documentação oficial de cgroup v2 explica a organização e o controle de recursos.
Android e sistemas embarcados
O Linux foi adaptado para roteadores, equipamentos industriais, sistemas automotivos e dispositivos embarcados. No Android, kernels de suporte de longo prazo (Long Term Support, LTS) do Linux recebem modificações específicas para formar os Android Common Kernels (ACKs), conforme a documentação oficial do Android. Essa base comum não torna o espaço de usuário do Android igual ao de uma distribuição GNU/Linux de desktop.
Empresas e organizações de apoio
O crescimento inicial do Linux contou com desenvolvedores individuais, comunidades universitárias e pessoas interessadas em experimentar e aprender. À medida que o escopo de uso se expandiu, fabricantes de servidores, empresas de semicondutores, fornecedores de distribuições e provedores de nuvem também começaram a desenvolver funções necessárias para seus produtos e incorporá-las ao mainline. Isso ocorre porque o código incluído no mainline pode ser entregue a várias distribuições e usuários e receber revisão e manutenção conjunta.
Em 2000, a Open Source Development Labs (OSDL) foi estabelecida para apoiar a adoção empresarial e o desenvolvimento do Linux. Em 2007, a OSDL se fundiu com o Free Standards Group para lançar a Linux Foundation. De acordo com a explicação da história organizacional da Linux Foundation, esta organização apoia a comunidade do kernel a continuar o desenvolvimento independente, fornecendo infraestrutura de desenvolvimento, padronização, eventos, educação e apoio legal e de marcas registradas.
Integrar código ao kernel não transfere automaticamente todos os direitos autorais a uma única empresa: os direitos permanecem com seus titulares, que podem ser pessoas ou organizações. O kernel, como conjunto, é fornecido sob GNU GPL versão 2 somente, com a exceção explícita de chamadas de sistema. Arquivos individuais podem ter licenças compatíveis ou duplas. A exceção evita estender os requisitos da GPL a todo programa que apenas usa a interface de chamadas de sistema do Linux.
Três camadas para entender essa história
| Categoria | O que inclui? | Papel na história |
|---|---|---|
| Kernel Linux | Processos, memória, dispositivos, arquivos e rede | Base de comunicação entre programas e hardware. |
| Espaço de usuário | Ferramentas GNU e de outros projetos, bibliotecas, serviços e ambientes gráficos | Programas com os quais o usuário e as aplicações realizam tarefas. |
| Distribuição | Instalador, repositórios de pacotes, configuração, atualizações e política de suporte | Integração e manutenção dos componentes para um público e finalidade. |
Essas três camadas estão intimamente relacionadas, mas não são a mesma coisa. Por exemplo, uma correção de segurança do kernel pode ser relevante para várias distribuições, mas as versões dos pacotes e os períodos de suporte variam entre elas. O Android também usa o kernel Linux, mas seu espaço de usuário e a estrutura de aplicativos diferem das distribuições GNU/Linux usadas em desktops.
Fatores que sustentaram o crescimento
- Código aberto: qualquer pessoa pode revisar o código, corrigir problemas ou propor suporte para novo hardware.
- Licença clara: a GNU GPL fornece condições para modificação e redistribuição, formando a base legal para o desenvolvimento colaborativo.
- Colaboração pela internet: listas de discussão, mantenedores e processos de revisão pública possibilitaram o desenvolvimento além de limites regionais e organizacionais.
- Ecossistema de distribuições: instalação, pacotes, políticas de atualização e suporte técnico atendem a diferentes finalidades.
- Portabilidade: o kernel pode ser usado em vários hardwares, desde computadores pessoais até servidores, smartphones e dispositivos embarcados.
O que essa trajetória ajuda a compreender
A combinação de interfaces do tipo Unix, ferramentas GNU e de outros projetos, integração por distribuições, contribuições empresariais e revisão pública ajuda a explicar a continuidade do Linux. Essa é uma síntese dos fatores apresentados; nenhum deles, isoladamente, explica todos os usos e escolhas de cada organização.
Na prática, distinguir essas camadas ajuda a interpretar notícias e escolher um sistema. Uma nova versão do kernel pode melhorar um driver, enquanto a disponibilidade de um pacote, o ambiente gráfico e o período de atualizações dependem também da distribuição. “Usar Linux” não identifica, por si só, uma interface, um conjunto de aplicativos ou uma política de suporte.
Perguntas frequentes
Quem iniciou o Linux?
Linus Torvalds iniciou o kernel em 1991. Seu desenvolvimento passou a envolver contribuições de pessoas e organizações de vários países, com revisão e integração coordenadas por mantenedores.
Linux e UNIX são o mesmo sistema?
Linux é um kernel desenvolvido de forma independente, com interfaces e conceitos semelhantes aos de sistemas Unix. UNIX também designa uma família histórica de sistemas; semelhança de uso não significa que sejam o mesmo produto.
Qual é a diferença entre Linux e GNU/Linux?
Linux, em sentido estrito, é o kernel. GNU/Linux destaca sistemas que o combinam com ferramentas GNU. A composição varia: o Android, por exemplo, usa Linux com um espaço de usuário diferente do de distribuições GNU/Linux de desktop.
Por que existem distribuições?
Uma distribuição integra o kernel a bibliotecas, ferramentas, pacotes, instalação e atualizações. Essas escolhas e sua política de suporte determinam boa parte da experiência de uso e administração.
Uma empresa pode cobrar por Linux?
Sim. Software livre pode ser distribuído comercialmente, e empresas também cobram por manutenção, suporte e serviços. A distribuição de cópias do kernel, modificadas ou não, continua sujeita às condições aplicáveis da GPL, inclusive as de disponibilização do código-fonte. Os demais componentes possuem suas próprias licenças.
Uma única empresa é dona de todo o kernel?
Os direitos autorais das contribuições pertencem a muitos titulares. A coordenação técnica da árvore principal e o apoio da Linux Foundation têm funções diferentes dessa titularidade; apoiar a infraestrutura não equivale a possuir todo o código.
Referências e registros históricos
- História do sistema GNU
- Relatório de História do kernel Linux 2020 da Linux Foundation
- kernel.org Arquivo Linux 1.0
- kernel.org Arquivo Linux 2.0
- kernel.org Arquivo Linux 2.6
- História do projeto Debian
- História Oficial da Red Hat
- Processo de Desenvolvimento do kernel Linux
- Regras de Licenciamento do kernel Linux
- Documentação do cgroup v2 do kernel Linux
- Uma breve história do Git, em português
- O papel e a história da Linux Foundation
- Visão Geral do Kernel Android




