A minimal 32-bit x86 operating system built from scratch for educational purposes.
Demonstrates boot process, protected mode transition, interrupt handling, memory allocation, scheduling, file system basics, and kernel design fundamentals.
Deployed using v86: Link
- Custom bootloader (16-bit real mode → 32-bit protected mode)
- C kernel with low-level Assembly integration
- Runs in QEMU
- VGA text mode driver with cursor support
- Full Interrupt Descriptor Table (IDT)
- Hardware interrupt handling
- PS/2 keyboard driver with shift/caps lock support
- Simple bump allocator (1MB heap at 0x200000)
- Memory usage statistics
- Fragmentation-free linear allocation
- Process table (up to 8 processes)
- States: READY, RUNNING, BLOCKED, ZOMBIE
- Round-robin scheduler (~1s time slice)
- Basic Process Control Blocks (PID, state, name)
- In-memory file system (16 files × 512 bytes)
- Create, read, write, delete operations
- Fixed-size storage (8KB total)
- Interactive CLI
- Built-in commands for memory, processes, and file management
- Manual memory layout configuration
- Custom linker script and low-level build system
- Direct hardware interaction (VGA, keyboard, interrupts)
- No persistence (RAM-only file system)
- No paging or user/kernel separation
- No true multitasking