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
|
⊙Buddy 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
|