Explorando os Códigos da Primeira Versão do Linux (v0.01)

Dec 12 / Paulo Oliveira

O kernel do Linux é frequentemente mencionado como um software de código aberto esmagadoramente extenso. Até o momento deste artigo, a versão mais recente é a v6.5-rc7, composta por aproximadamente 36 milhões de linhas de código. Sem dúvida, o Linux é fruto do árduo trabalho de muitos colaboradores ao longo das décadas.


No entanto, a primeira versão do Linux, a v0.01, era bastante pequena. Consistia apenas em 10.239 linhas de código. Excluindo comentários e linhas em branco, eram apenas 8.670 linhas. É pequeno o suficiente para ser compreendido e representa um bom ponto de partida para aprender sobre o funcionamento interno dos kernels de sistemas operacionais semelhantes ao UNIX.

Ler a v0.01 é realmente uma experiência para programadores entusiastas de código aberto. É como visitar o Museu da História da Computação em Mountain View. Vamos mergulhar em uma análise de alguns pontos desta primeira versão!

Como são as chamadas de sistema?

A v0.01 possui 66 chamadas de sistema. Aqui está a lista delas:

  • Ele oferece suporte à leitura, gravação, criação e exclusão de arquivos e diretórios. Além disso, outros conceitos fundamentais como chmod(2) (permissão), chown(2) (proprietário) e pipe(2) (comunicação entre processos) também são suportados.


  • fork(2) e execve(2) estavam presentes. Apenas o formato executável a.out era suportado.


  • O conceito de sockets não foi implementado. Portanto, nenhum suporte de rede.


  • Algumas funcionalidades como mount(2) não foram implementadas. Elas apenas retornam ENOSYS.

"FREAX"

Há boatos de que Linus Torvald originalmente nomeou seu kernel como "FREAX". O Makefile na Linux v0.01 ainda tinha o seguinte comentário, ele era realmente FREAX!

Qual sistema de arquivos é suportado na v0.01?

Hoje, o Linux suporta uma variedade de sistemas de arquivos, como ext4, Btrfs e XFS. E a v0.01? ext2? Não, aqui temos uma dica de include/linux/fs.h:

A resposta é o sistema de arquivos MINIX!

Hoje em dia as principais distro Linux utilizam em sua maioria o sistema ext4, sucessor do ext (extended file system - sistema de arquivos estendido), ext2, ext3, que foram inspirados no sistema de arquivos MINIX.

Erro de Kernel em 5 Linhas

Sem alardes! Deixe o usuário saber que algo deu errado e congele o sistema. Ponto.

Leia você mesmo!

Espero que você tenha aproveitado a leitura do código-fonte do Linux v0.01 e as nossas pontuações de alguns pontos interessantes. Se você estiver interessado na v0.01, faça o download do tarball da v0.01 em kernel.org. Ler o código não é tão difícil, o Linux v0.01 é minimalista, mas muito bem escrito.

Este artigo é uma releitura de uma análise feita pelo programador Seiya Nuta. Se você fala inglês e deseja ler na íntegra, com mais informações e uma análise bem divertida em seu blog, acesse aqui!

Autor do artigo

Paulo Henrique Oliveira

CEO da Linux Solutions, Networker e Millionaire Givers na BNI Brasil - Fiduciam RJ
Sobre mim
Mestre e Bacharel em Informática pela Universidade Federal do Rio de Janeiro. Graduado em Administração de Empresas pela Universidade Ibmec, com ampla experiência empresarial e liderança. Especialista em Linux e CEO da Linux Solutions, referência em soluções open source para seu negócio.
Criado com