I love osdev. I don't know what the end game is for me, but there's something really cool about being able to just create... whatever I want. It all sort of clicked for me when I was able to get some basic x86 interrupts and syscalls working. Once you get the syscalls going, the world is your oyster!<p>Seriously, I would highly recommend tinkering around with a hobby OS. I used it as an opportunity to learn Rust and I got more than I bargained for. Now, I feel somewhat comfortable in Rust AND I can throw more double and triple faults than most people in the world.
Unfortunately this book has the classic fault of osdev tutorials: lots of talking about x86 minutiae, very little osdev. X86 minutiae is not osdev. It is a vanishingly small portion of what even a basic OS has to deal with.
My favorite OS book (less about development and more about how it works) is Operating Systems: Three Easy Pieces. Free in HTML and PDF form but they sell a printed book as well. <a href="https://pages.cs.wisc.edu/~remzi/OSTEP/" rel="nofollow">https://pages.cs.wisc.edu/~remzi/OSTEP/</a>
Thank you! This looks like a great resource on the topic.<p>I wish I still had the source code for the “OS” I made as a teenager. I got as far as writing an MBR boot loader, switching to protected mode, displaying characters on the screen, and keyboard input. I highly recommend it if you’re looking for a fun challenge.
Speaking of OS development, games make learning fun. I had the idea of making a game to teach operating systems while taking a journey through the history of computers. The player would play the part of the process scheduler and interrupt handler, starting on a single CPU system with very limited RAM, before growing to SMP systems then maybe getting to multi-system distributed computing platforms that we have today.
Since everyone is plugging their favourite alternatives, I am still a big fan of Project Oberon, it may be not fit for purpose on 2025 computing, however it is a tiny graphical based OS, written in a memory safe systems language, with enough content to learn about OS development.<p><a href="https://www.projectoberon.net/" rel="nofollow">https://www.projectoberon.net/</a>
There are two Japanese operating system development books I wish have English translations because they take you as far as getting a graphical environment with windows working [0], one of the books is even a 30-days challenge of sort [1].<p>Here is someone's take on MikanOS [0]
<a href="https://github.com/uchan-nos/mikanos" rel="nofollow">https://github.com/uchan-nos/mikanos</a><p>And another one on 30-days Homemade OS [1]
<a href="https://github.com/kamaboko123/30daysOS" rel="nofollow">https://github.com/kamaboko123/30daysOS</a><p>An attempt to translate "30-days Homemade OS" [1] to English but it didn't get far <a href="https://github.com/handmade-osdev/os-in-30-days" rel="nofollow">https://github.com/handmade-osdev/os-in-30-days</a><p>I do not know of any English book nor article that go this far, except Fusion but the graphical environment chapter is not done yet [2]<p>[0] <a href="https://www.amazon.co.jp/dp/4839975868" rel="nofollow">https://www.amazon.co.jp/dp/4839975868</a> - MikanOS<p>[1] <a href="https://www.amazon.co.jp/dp/B00IR1HYI0" rel="nofollow">https://www.amazon.co.jp/dp/B00IR1HYI0</a> - 30-days Homemade OS<p>[2] <a href="https://0xc0ffee.netlify.app/osdev/" rel="nofollow">https://0xc0ffee.netlify.app/osdev/</a> - Fusion, an OS made in Nim
This took me a nostalgic dive back to 2000's when a website called planet-source-code.com was popular among the developer community. It had hundreds of mini operating systems written by members. Most of them were written in C/C++ and Assembly for the bootloader, compiled using Mingw32, and booting from a regular Floppy disk.
Now, where's the instruction manual for the little red OS book? <a href="https://en.wikipedia.org/wiki/Kylin_(operating_system)" rel="nofollow">https://en.wikipedia.org/wiki/Kylin_(operating_system)</a>