Roadmap
This document specifies the planned topics and features that will be developed in the LearnixOS and covered by this book.
Each topic has a corresponding issue both in the book and in the OS repository. The status of each topic can be tracked using the links provided in the tables below.
Note: This list is definitely not final, and more topics will be added as the development continues.
Bootloader
| Feature/Topic | Status in OS | Status in Book |
|---|---|---|
| Enable A20 | ✓Implement A20 Line Before PublicationDone | ✓Enable A20 Before PublicationDone |
| Read kernel from disk | ✓Read Kernel From Disk Before PublicationDone | ✓Read Kernel From Disk Before PublicationDone |
| Load and Initialize global descriptor table | ✓Load and initialize GDT Before PublicationDone | ✓Load and Initialize GDT Before PublicationDone |
| Enable Paging | ✓Enable Paging Before PublicationDone | ✓Enable Paging Before PublicationDone |
Memory Management
| Feature/Topic | Status in OS | Status in Book |
|---|---|---|
| Obtaining Memory map | ✓Obtain Memory Map Before PublicationDone | ⊙Obtain Memory Map Before Publication |
| Bitmap Page Allocator | ✓Bitmap Page Allocator Before PublicationDone | ⊙Bitmap Page Allocator Before Publication |
| Mapping Virtual Memory | ✓Mapping Virtual Memory Before PublicationDone | ⊙Mapping Virtual Memory Before Publication |
| Slab Allocator | ⊙Slab Allocator Before PublicationIn Progress | ⊙Slab Allocator Before Publication |
| Virtual Memory Allocator | ⊙Virtual Memory Allocator After Publication | ⊙Virtual Memory Allocator After Publication |
Interrupt Handling
| Feature/Topic | Status in OS | Status in Book |
|---|---|---|
| Load and Initialize interrupt descriptor table | ✓Load and Initialize the IDT Before PublicationDone | ⊙Load and Initialize IDT Before Publication |
| Interrupt handlers and the PIC | ✓Interrupt Handlers and the PIC Before PublicationDone | ⊙Interrupt Handlers and the PIC Before Publication |
| Timer interrupt | ✓Timer Interrupt Before PublicationDone | ⊙Timer Interrupt Before Publication |
I/O & Drivers
| Feature/Topic | Status in OS | Status in Book |
|---|---|---|
| VGA driver | ✓VGA Driver Before PublicationDone | ⊙VGA Driver Before PublicationDone |
| Keyboard driver | ⊙Keyboard Driver Before PublicationDone | ⊙Keyboard Driver Before Publication |
| Memory mapped IO and Port mapped IO | X | ⊙Memory Mapped IO and Port Mapped IO Before Publication |
| Scanning PCI bus | ⊙Scanning the PCI bus Before PublicationDone | ⊙Scanning the PCI bus Before Publication |
| AHCI driver | ⊙AHCI Driver Before PublicationIn Progress | ⊙AHCI Driver Before Publication |
File System
| Feature/Topic | Status in OS | Status in Book |
|---|---|---|
| FAT32 | ⊙FAT32 File System After Publication | ⊙FAT32 File System After Publication |
Process Management
| Feature/Topic | Status in OS | Status in Book |
|---|---|---|
| Spinlock mutex | ⊙Spinlock Mutex Before PublicationIn Progress | ⊙Spinlock Mutex Before Publication |
Utilities
| Feature/Topic | Status in OS | Status in Book |
|---|---|---|
| Debugging Tips | X | ⊙Debugging Tips Before PublicationDone |
| Build and Run the project | X | ⊙Build and Run the project Before Publication |
| Common Error with Hardware | X | ⊙Common Errors with Hardware Before Publication |
| Tests | ⊙Tests Before Publication | ⊙Tests Before Publication |