francescobbo/nos — explained in plain English
Analysis updated 2026-07-14 · repo last pushed 2016-08-11
Learn how an operating system boots and manages memory by following the staged build process.
Study how CPUs switch between kernel and user mode to run programs safely.
Use the accompanying online guide as a self-taught course on low-level computer systems.
Explore how disk access and file systems like ext2 and FAT32 work at the hardware level.
| francescobbo/nos | jwasham/assembly-and-c | pret/pokered | |
|---|---|---|---|
| Stars | 1 | 188 | 4,695 |
| Language | Assembly | Assembly | Assembly |
| Last pushed | 2016-08-11 | — | — |
| Maintenance | Dormant | — | — |
| Setup difficulty | hard | hard | hard |
| Complexity | 5/5 | 4/5 | 5/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires a Docker environment with a prebuilt cross-compiler toolchain and familiarity with emulators for testing bare-metal code.
NOS is a personal project to build a custom operating system from scratch, paired with an online guide so others can learn from the process. The "nitrogen-powered" framing is a playful joke, the name references nitrous oxide, but the project is a real, working OS being written primarily in C++ and Assembly. It's an educational endeavor aimed at people curious about how computers actually work at the lowest level. The project is structured in stages. First, it gets the main CPU running, boots secondary cores, and handles basic memory allocation and slow disk access. Later phases add support for running user programs, faster disk operations, and file system drivers like ext2 and FAT32. The ultimate goal is ambitious: implement enough standard system calls that it can run existing Linux software, with the author hoping to eventually run Ruby and possibly even a web framework like Rails on top of it. This isn't meant for everyday users or production systems. The audience is hobbyists, students, and engineers who want to understand what happens when you press a key, write to a disk, or send a network packet, the kind of deep knowledge you only get by building an OS yourself. The author notes that while general-purpose OS development has gotten extremely complex across diverse hardware, custom operating systems are still relevant in embedded systems with strict real-time requirements, like self-driving cars or appliances. A few tradeoffs stand out. The project skips UEFI support (the modern boot standard) because emulator support is poor enough that testing would require constant physical reboots. Instead it uses an older boot approach, though the code is kept clean enough that UEFI support could be added later. Development happens inside a prebuilt Docker image containing the compiler and tools, so you can follow along from any operating system. The accompanying guide is being published on a GitHub Pages site.
A custom operating system built from scratch in C++ and Assembly, paired with an online guide that teaches you how computers work at the lowest level by walking through each stage of OS development.
Mainly Assembly. The stack also includes C++, Assembly, Docker.
Dormant — no commits in 2+ years (last push 2016-08-11).
No license information is mentioned in the explanation, so the terms of use are unclear.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.