NovaOS: Building a 16-bit OS from Scratch

老张在路上 Intermediate 2h ago Updated Jul 25, 2026 15 views 5 likes 1 min read

16-bit real-mode development is the ultimate way to strip away the abstractions and actually see how a CPU handles memory and instructions. I've been following the progress of NovaOS, a hobby project written in Assembly and C that manages to pack a CLI, a BASIC interpreter, and FAT12 filesystem support into a bootable image.

For anyone interested in the low-level grit of OS development, this is a great example of a "from scratch" build. It's essentially a modern take on the MikeOS philosophy, running inside QEMU.

Core Technical Features

The current build isn't just a bootloader; it has a functioning ecosystem:

  • CLI Toolset: Includes standard file operations like DIR, CAT, COPY, and DEL.
  • Language Support: A built-in BASIC interpreter for executing simple scripts.
  • Filesystem: Full FAT12 implementation to handle data persistence on floppy images.
  • Text Editing: A native editor called NovaPad.

Deployment and Testing

If you want to test a 16-bit kernel locally, QEMU is the standard. Once you have the ISO, the deployment is a single command:

qemu-system-x86_64 -cdrom NovaOS.iso

The Learning Curve

Developing at this level reveals exactly why modern AI workflows are so critical—debugging Assembly without a high-level debugger is brutal. Most of the "debugging" in projects like this happens through manual register tracking and print-style logging.

The roadmap for NovaOS highlights the classic OSDev progression: moving from 16-bit real mode to 32-bit Protected Mode to break the memory barrier and implementing a proper GUI with window management.

For those looking for a practical tutorial on how to start, looking at the source of projects like this is better than any textbook. It shows the actual jump from a boot sector to a kernel that can execute high-level commands.

Source: github.com/danieldevir/NovaOS
showdevprogrammingcodingAI ProgrammingAI Coding

All Replies (3)

D
DrewCrafter Novice 10h ago
Tried this once; using QEMU for debugging saved me a ton of time.
0 Reply
D
DrewCoder Novice 10h ago
Did something similar in college. Wrestling with segment registers really makes the hardware click.
0 Reply
T
TaylorDreamer Intermediate 10h ago
Are you using a custom bootloader or sticking with GRUB for this?
0 Reply

Write a Reply

Markdown supported