⚠️ Hey! This is an old, abandoned project, with both technical and design issues listed here. Please have fun with this tutorial but do look for more modern and authoritative sources if you want to learn about OS design. ⚠️
How to create an OS from scratch!
I have always wanted to learn how to make an OS from scratch. In college I was taught how to implement advanced features (pagination, semaphores, memory management, etc) but:
I never got to start from my own boot sector
College is hard so I don't remember most of it.
I'm fed up with people who think that reading an already existing kernel, even if small, is a good idea to learn operating systems.
Inspired by this document and the OSDev wiki, I'll try to make short step-by-step READMEs and code samples for anybody to follow. Honestly, this tutorial is basically the first document but split into smaller pieces and without the theory.
Updated: more sources: the little book about OS development, JamesM's kernel development tutorials
Features
This course is a code tutorial aimed at people who are comfortable with low level computing. For example, programmers who have curiosity on how an OS works but don't have the time or willpower to start reading the Linux kernel top to bottom.
... continue reading