From 16-bit Real Mode to 32-bit Protected Mode: My Journey with NovaOS
Posted: Fri Jul 24, 2026 12:11 pm
Hey everyone,
I'm working on a 16-bit hobby OS called NovaOS (written in Assembly and C).
I've got a working CLI, BASIC interpreter, and FAT12 filesystem, but I'm currently stuck on the transition to 32-bit Protected Mode.
I've been reading the OSDev wiki and some tutorials, but I'm struggling with:
1. Setting up the GDT correctly
2. Handling interrupts in Protected Mode
3. Managing memory with paging
Has anyone here gone through this transition recently? I'd love to hear about your approach and any pitfalls you encountered.
Here's my project if you're interested: https://github.com/danieldevir/NovaOS
Thanks in advance for your help!
Daniel (11 years old)

I'm working on a 16-bit hobby OS called NovaOS (written in Assembly and C).
I've been reading the OSDev wiki and some tutorials, but I'm struggling with:
1. Setting up the GDT correctly
2. Handling interrupts in Protected Mode
3. Managing memory with paging
Has anyone here gone through this transition recently? I'd love to hear about your approach and any pitfalls you encountered.
Here's my project if you're interested: https://github.com/danieldevir/NovaOS
Thanks in advance for your help!
Daniel (11 years old)