Atenção! O conteúdo está sendo adicionado aos poucos! Muita coisa ainda pode estar em branco!
Meu nome é Felipe Lunkes e, neste repositório, vou tentar condensar tudo o que consegui agregar nestes quase 10 anos de interesse, pesquisa e criação de código na área de design e implementação de sistemas operacionais. Há alguns anos venho estudando e desenvolvendo, como hobby, sistemas operacionais. Essa atividade gerou alguns frutos, dois sistemas operacionais atualmente em desenvolvimento e de código aberto, que podem inclusive receber contribuições da comunidade e que serão citados nos tutoriais, como exemplo de código. São eles o Hexagonix e o Lunix OS. Além disso, irei citar diversos projetos de código aberto que me serviram de inspiração ou me ajudaram a compreender o funcionamento de vários componentes de um sistema operacional ou de hardware. Lembrando que você pode criar um fork de todos os projetos citados aqui e adicionar suas modificações, criando um campo de teste para praticar o que você vir aqui ou pesquisar por conta própria. Vale ressaltar que o Hexagonix é todo documentado em português, e busco colaboradores para auxiliar no desenvolvimento de ambos os sistemas (Hexagonix e Lunix OS). Sempre que possível, deixarei referências bibliográficas dos tópicos abordados aqui, para que você possa ler mais por conta própria.
Você também pode constribuir com o conteúdo desse repositório, agregando o máximo de experiência e conhecimento possíveis para auxiliar os outros! Me escreva em [email protected] para ser adicionado como contribuidor ou enviei sua constribuição por pull request!
Para seguir os tutoriais disponíveis aqui, é bom que você já tenha alguma experiência em algumas ferramentas que são necessárias para prosseguir com as etapas que serão apresentadas. São elas:
Agora vamos, finalmente, ao tutorial!
Essa primeira etapa traz conceitos de sistemas operacionais, sua história e seus componentes. Ela é o básico para compreender o que é cada coisa.
- O que é um sistema operacional?
- Um pouco de história, focada no Unix
- O que é um kernel?
- O que é hardware?
- O que é um sistema de arquivos?
Agora vamos ver mais sobre os componentes e como escrever o código!
- O boot de um sistema operacional
- Loader
- O kernel
- API
- Lib e Libc
- Userland
- Construindo e executando o sistema
A seguir, uma lista com vários projetos que você pode utilizar como base de estudos:
- Lista de projetos de sistemas operacionais de código livre em que você pode estudar, se inspirar e colaborar.
Lista de bibliografia que pode ser consultada:
Outros tutorais interessantes para serem seguidos: