- Basic Heap Allocator:
- Start with a basic heap allocator with a linked list free list
- Paging:
- Implement virtual memory by introducing basic paging
- RTC clock
- GDT
- IDT
- PCB
- Context switching
- Basic process mechanism with a time sliced scheduling
- Thread creation/synchronization/thread-local storage
- Minimal FS
- Start with a minimal in-memory fs
- Implement basic calls like
open,read,write,close
- FAT12 FS
- Drivers:
- Console I/O
- Disk Driver
- Keyboard and Mouse
- Signals
- Pipes
- Ethernet Driver
- Sys call interface
- Program loading
- Shell
./qemu