Notas de Osdev
Um livro, originado como uma coleção de notas, destinado a orientar o leitor nas etapas de construção de um kernel de sistema operacional do zero. Escrito enquanto escrevemos (e reescrevemos) nossos próprios kernels, cada capítulo cobre uma etapa do processo, desde a seleção de um gerenciador de inicialização até a execução de um ELF carregado no espaço do usuário.
Esperamos que você goste e encontre algo interessante aqui!
O conteúdo deste repositório também está disponível em livro impresso , podendo ser adquirido via Lulu:
- Brochura : Clique aqui
- Capa dura : clique aqui
A versão master mais recente contém o PDF criado a partir do master.
Capítulos Atuais:
- Parte 0: Introdução
- Conhecimento Assumido
- Sobre os autores
- Parte 1: Protocolos de construção e inicialização
- Construindo um Kernel
- Bootloaders e protocolos de inicialização
- Makefiles
- Scripts do vinculador
- Gerando um ISO inicializável
- Parte 2: Arquitetura e Drivers Básicos
- Visão geral
- Olá mundo
- Uma metade superior do kernel
- Tabela de Descritores Globais
- Interrupções
- Tabelas ACPI
- APIC
- Temporizadores
- Visão geral do teclado PS2
- Tratamento de interrupção do teclado PS2
- Implementação do driver de teclado PS2
- Parte 3: Saída de Vídeo
- O framebuffer
- Desenhando texto no Framebuffer
- Parte 4: Gerenciamento de Memória
- Visão geral
- Memória Física
- Paginação
- Gerenciador de memória virtual
- Alocação de pilha
- Parte 5: Agendamento
- Visão geral
- O Agendador
- Processos e Threads
- Fechaduras
- Parte 6: Chegando ao espaço do usuário
- Visão geral
- Alternando modos
- Tratamento de interrupções atualizado
- Chamadas do sistema
- Exemplo de Syscall ABI
- Parte 7: Comunicação entre processos
- Visão geral
- Memória Compartilhada
- Passagem de mensagens
- Parte 8: Sistema de Arquivos
- Visão geral
- O sistema de arquivos virtual
- O sistema de arquivos Tar
- Parte 9: Carregando e Executando ELFs
- Teoria
- Carregando e executando
- Parte 10: Indo além
- Extras: Apêndices
- Solução geral de problemas
- Dicas e truques
- Linguagem C
- Trabalhando com NASM
- Tudo sobre compiladores cruzados
- Depuração
- Proteção de memória
- Recursos úteis
- Agradecimentos
Nossos Projetos
- DreamOs64: sistema operacional de 64 bits escrito do zero por Ivan G.
- Northport: Outro sistema operacional de 64 bits com SMP e suporte a riscv! por Dean T.
- DreamOs: sistema operacional de 32 bits escrito do zero. Este projeto foi descontinuado, mas ainda vale a pena mencioná-lo. Também por Ivan G.
Autores
- Ivan G (dreamos82) – Autor e criador destas notas.
- Dean T (DeanoBurrito) - Autor.
Licença
O conteúdo (código, texto e outros ativos) deste repositório está licenciado sob a Licença Pública Creative Commons Attribution-NonCommercial 4.0, consulte o arquivo LICENSE para o texto completo.
Embora não seja um aconselhamento jurídico, esta licença pode ser resumida como:
- Você é livre para compartilhar (copiar e redistribuir) este material em qualquer meio ou formato.
- Adapte (remix, transforme e desenvolva) o material.
Sob as seguintes restrições:
- Você deve dar o devido crédito, fornecer um link para a licença e indicar se foram feitas alterações.
- Você não pode usar o material para usos comerciais.
Observe que nenhuma garantia de qualquer tipo é fornecida.