Start from a bootloader and build your way up to a functional operating system kernel running in protected mode. You will implement paging, interrupt handling via IDT, a VGA text-mode driver, and a round-robin process scheduler. This project teaches you what happens between the bootloader and main().
Write a multiboot-compliant bootloader in x86 assembly. Set up the Global Descriptor Table for protected mode segmentation. Switch from real to protected mode.
Implement 4KB page tables. Set up identity mapping for the kernel and enable paging via CR0. Add page fault handler with basic diagnostics.
Program the PIC and set up the Interrupt Descriptor Table. Implement handlers for keyboard, timer (PIT), and system calls (int 0x80).
Implement process control blocks, context switching in assembly, and a round-robin scheduler. Add system calls for fork/exit/wait. Support user-mode ring 3 execution.
Design a Virtual File System interface. Implement initramfs with a simple tar parser. Add read/write/open/close syscalls. Write a shell program that loads from the filesystem.
Complete all prerequisite tracks to unlock this capstone. Once submitted, your project will be peer-reviewed by 3 fellow completers.
Start Prerequisites