Explorando os Códigos da Primeira Versão do Linux (v0.01)
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!
Acompanhe as novidades da comunidade linux:
. . .
Originalmente publicado em: https://nova.escolalinux.com.br/blog/explorando-os-codigos-da-primeira-versao-do-linux em 12 de Dezembro de 2023.