Writing an OS from scratch

As a learning opportunity, and for something to stop me getting into trouble, I’ve always been tempted by the idea of writing an OS from scratch. Much like trying to write my own programming language, coding an OS from the ground up holds a certain allure as one of the Big Challenges of software engineer. Perhaps if I could do this, I’d be a Real Programmer(TM)?

Or perhaps not, but it’d be a lot of fun to try 🙂

My first experiment with this — see here — was a couple of years ago and didn’t get very far. Much of it was copied from James Molloy’s website, and it had its own bootloader implementation, a VGA driver, and little else.

Not too impressive, but I certainly learned a lot. Multiboot magic numbers, higher kernels, paging, etc., all became familiar to me.

Skip forward to 2019 and I’m trying again.


I imported the old code from Google Code, but almost immediately discarded it in favour of a new implementation taken from the so-called “Meaty Skeleton” project provided by the OSDev team.

My plan is to go through their “Going Further” page, and start to implement each suggestion. Follow along if you’re interested!

Leave a comment