“blog_os” contains the source code for Philipp Oppermann’s renowned "Writing an OS in Rust" blog series. Each tutorial is paired with a Git branch demonstrating the OS's incremental evolution, covering components like kernel setup, interrupts, paging, heap allocation, and async multitasking. The current version of the blog is already the second edition. The first edition is outdated and no longer maintained, but might still be useful. You can find the branch for each post by following the (source code) link in the post list below. The branches are named post-XX where XX is the post number, for example, post-03 for the VGA Text Mode post or post-07 for the Hardware Interrupts post. For build instructions, see the Readme of the respective branch.
Features
- One-to-one correspondence of blog posts to Git branches (post‑XX)
- Step-by-step coverage: bare-metal kernel, VGA text, interrupts, memory, multitasking, async/await
- Easy code access via git worktree for exploring intermediate OS versions
- Includes build instructions in branch READMEs
- Ideal for learning OS development in Rust hands-on
- Continuously updated (2nd edition available)