OpenOS Development Roadmap
Current Status (v0.1)
✅ Completed Features:
- Multiboot-compliant bootloader
- 32-bit protected mode kernel
- VGA text mode terminal with scrolling
- Interrupt Descriptor Table (IDT) setup
- Programmable Interrupt Controller (PIC) configuration
- PS/2 keyboard driver with modifier key support
- Interactive shell prompt
- Basic I/O port operations
Phase 1: Core Interrupt System (Current)
Goal: Robust interrupt handling and basic I/O
Completed
Remaining
Phase 2: Timer and Basic Scheduling
Goal: Add time awareness and prepare for multitasking
Tasks
Estimated Complexity
- Difficulty: Easy-Medium
- Files to modify:
kernel.c, new timer.c/h
- Dependencies: PIC and IDT (already done)
Phase 3: Memory Management
Goal: Proper memory allocation and virtual memory
Physical Memory Manager
Virtual Memory (Paging)
Kernel Heap
Estimated Complexity
- Difficulty: Medium-Hard
- Files:
memory.c/h, paging.c/h, heap.c/h
- Critical: Page fault handler is essential
Phase 4: Process Management
Goal: Multiple processes and context switching
Process Abstraction
Context Switching
Simple Scheduler
Estimated Complexity
- Difficulty: Hard
- Files:
process.c/h, scheduler.c/h, context.S
- Dependencies: Timer, Memory Management
Phase 5: System Calls
Goal: User/kernel mode separation and syscall interface
User Mode Transition
Syscall Interface
Initial Syscalls
Estimated Complexity
- Difficulty: Medium-Hard
- Files:
syscall.c/h, syscall.S, modifications to process.c
- Dependencies: Process Management
Phase 6: Enhanced Shell
Goal: Useful command-line interface
Command Parsing
Built-in Commands
Command History
Estimated Complexity
- Difficulty: Easy-Medium
- Files:
shell.c/h, commands.c/h
Phase 7: File System (Future)
Goal: Persistent storage and file I/O
Disk Driver
File System
Estimated Complexity
- Difficulty: Very Hard
- Files:
ata.c/h, fs.c/h, vfs.c/h
Phase 8: Advanced Features (Long-term)
Networking
Graphics
Advanced IPC
Multi-core Support
Contributing to the Roadmap
Want to implement a feature? Great!
- Pick a task from the current or next phase
- Discuss your approach (open an issue)
- Implement incrementally (small PRs are better)
- Test thoroughly (especially with QEMU)
- Document your changes (code comments + docs)
Difficulty Guide
- Easy: Basic C knowledge, clear instructions
- Medium: Understanding of OS concepts required
- Hard: Deep understanding of x86 architecture
- Very Hard: Extensive research and debugging needed
Learning Resources
For each phase, these resources will help:
General
Phase-Specific
Version History
- v0.1 (Current): Basic interrupt handling and keyboard I/O
- v0.2 (Planned): Exception handlers and timer
- v0.3 (Planned): Memory management
- v0.4 (Planned): Process management and scheduling
- v1.0 (Goal): Full multitasking OS with syscalls and shell
Last Updated: February 2026
This roadmap is a living document and will evolve as the project grows. Suggestions and contributions are always welcome!