Skip to content
Nyx edited this page Apr 27, 2025 · 4 revisions

The path is long and hard, but also fun and rewarding.

This is an implementation of a simple hobby Operating System. I have taken inspiration mostly from the OsDev Wiki and some other sources.

The Five Phases

Here I have listed the roadmap taken from Creating an Operating System - OSDev Wiki. We will try to implement most of these features.

Phase 0: Introduction

0.1 Welcome to Operating Systems Development
0.2 Usage Guide
0.3 Documentation Guide
0.4 FAQ's

Phase I: Beginning

1.1 Setting up a Cross-Toolchain
1.2 Creating a Hello World kernel
1.3 Setting up a Project
1.4 Terminal Support
1.5 Multiboot
1.6 Global Descriptor Table
1.7 Memory Management
1.8 Interrupts
1.9 Multithreaded Kernel
1.10 Keyboard
1.11 Filesystem Support

Phase II: User-Space

2.1 User-Space
2.2 Program Loading
2.3 System Calls
2.4 OS Specific Toolchain
2.5 Creating a C Library
2.6 Fork and Execute
2.7 Shell

Phase III: Extending your Operating System

3.1 Time
3.2 Threads
3.3 Thread Local Storage
3.4 Symmetric Multiprocessing
3.5 Secondary Storage
3.6 Real Filesystems
3.7 Graphics
3.8 User Interface
3.9 Networking
3.10 Sound
3.11 Universal Serial Bus

Phase IV: Bootstrapping

4.1 Porting Software
4.2 Porting GCC
4.3 Compiling your OS under your OS
4.4 Fully Self-hosting

Phase V: Profit

Clone this wiki locally