Projeto da disciplina de Sistemas Operacionais — Ciência da Computação, UFPB.
Implementação de um sistema operacional x86 32-bit do zero, com base no livro The Little Book About OS Development de Erik Helin e Adam Renberg.
- Boot Multiboot via GRUB com kernel higher-half (
0xC0100000) - Paginação x86 two-level (4KB pages)
- Page Frame Allocator (bitmap)
- Heap do kernel (free-list com split e coalescing)
- GDT, IDT, PIC, PIT (100 Hz), TSS
- Driver de framebuffer VGA modo texto 80×25
- Driver de teclado PS/2 com buffer circular
- Gerenciamento de processos (PCB, tabela, context switch cooperativo)
- Scheduler round-robin cooperativo
- Mini-shell interativo com comandos:
help,clear,ps,top,info,spawn,kill,reboot,poweroff - Monitor de processos em tempo real (
top) com CPU%, RAM, heap e info do CPU
./install_deps.shOu manualmente:
sudo apt update
sudo apt install -y gcc gcc-multilib nasm binutils make \
grub-pc-bin grub-common xorriso mtools bochs bochs-xRequer Docker Desktop. Veja docs/08-como-rodar.md.
# Compilar e rodar no Bochs
make run
# Apenas compilar
make
# Gerar ISO
make os.iso
# Limpar artefatos
make cleanmake docker-build # constrói a imagem (uma vez)
make docker-run # compila + executa com QEMU headless
make docker-shell # shell interativo no containerA ISO gerada é uma imagem híbrida bootável em qualquer ambiente:
# QEMU
qemu-system-i386 -cdrom os.iso -serial stdio -no-reboot
# Pendrive (hardware real — BIOS legacy)
sudo dd if=os.iso of=/dev/sdX bs=4M status=progressVirtualBox e VMware também funcionam sem configuração especial. Veja docs/08-como-rodar.md.
A pasta docs/ contém a documentação técnica completa:
| # | Documento | Conteúdo |
|---|---|---|
| 01 | Estrutura do Projeto | Organização de arquivos, build, layout de memória |
| 02 | Processo de Boot | BIOS → GRUB → loader.s → kmain |
| 03 | Drivers e Subsistemas | FB, teclado, PIT, serial, GDT, IDT, PIC |
| 04 | Memória | Paginação, PFA, heap do kernel |
| 05 | Processos e Scheduler | PCB, context switch, scheduler cooperativo |
| 06 | Mini-Shell e Top | Comandos, monitor de processos, fluxo completo |
| 07 | Como Rodar | Guia detalhado Linux e macOS |
- Helin, E., & Renberg, A. The Little Book About OS Development — littleosbook.github.io
- OSDev Wiki
- Intel® 64 and IA-32 Architectures Software Developer Manuals
Contribuidores