Why build an OS
from nothing?
Most people who learn programming never go lower than Python. Some go as far as C. A very few reach assembly. And then there's this project: start with a blank NASM file, a QEMU instance, and absolutely no shortcuts.
Deca-Tiny-OS is a real-mode x86 operating system built entirely in hand-written
assembly language. It boots on real hardware and on QEMU, speaks FAT12, runs
external .COM apps, features a CP/M-inspired shell, and even ships
a tiny BASIC interpreter — all in 16-bit real mode, all within the classic 640K
conventional memory envelope.
The project began with the most fundamental question in systems programming:
how does a computer even start? The answer is a 512-byte boot sector,
a master boot record that fits on the first sector of a disk, loaded by the BIOS
at 0000:7C00. From that single sector, everything else follows.
The first working milestone was nothing glamorous: dots printing to the screen as
the bootloader loaded the kernel sector by sector. The second was a flickering
prompt. The third was dir actually listing files. But each of those
milestones had to be earned — through BIOS geometry queries, CHS conversion
bugs, FAT12 byte-order surprises, and register clobbers that crashed everything
silently. Every bug is documented. Every fix is recorded.
This is a build-in-public story. The dev log runs to dozens of entries. Every feature slice has regression evidence: a SHA-256 image hash, a QEMU serial capture, a FAT cluster leak check. When it breaks, we fix it and write it down. That's the whole game.
Rules we follow
ruthlessly
Every feature slice must have: a build that passes, a QEMU smoke test that passes, a regression check that produces matching PowerShell and Python image hashes, and a dev log entry that records what changed and why. Nothing ships without evidence.
No silent regressions. When the bootloader sector count changes, the build fails at compile time. When a FAT cluster leaks, the regression script catches it. When an app overwrites the kernel, the memory guard fires. The system polices itself so that future work can be done with confidence.