DEV Community

Gyimah-Benjamin
Gyimah-Benjamin

Posted on

I built a 32-bit OS from scratch and named it after my mom

The Beginning

A few months ago I didn't know what a bootloader was.
Today I have a working 32-bit operating system called
JanOS — named after my mom who supported me through
the entire journey.

What is JanOS?

JanOS is a 32-bit x86 operating system built completely
from scratch in C and x86 Assembly. No frameworks.
No shortcuts. Every line written and understood.

What it can do

  • Custom bootloader that loads the kernel via LBA
  • 32-bit protected mode with GDT
  • FAT12 file system (read, write, delete files)
  • Persistent storage via custom ATA driver
  • Shell with 10+ commands
  • Memory management with paging
  • Hardware cursor
  • Keyboard with shift support
  • History navigation with arrow keys
  • Screen scrolling

The hardest part

Making files persist across reboots was the biggest
challenge. I had to write a custom ATA driver that
talks directly to the disk controller hardware through
ports. No BIOS, no shortcuts — just raw hardware
communication.

What I learned

  • How the CPU actually boots
  • How memory is really managed
  • How files are actually stored on disk
  • How keyboard input really works

Video

Screenshot

What's next

  • IDT (interrupt handling)
  • Multitasking
  • GUI

Try it yourself

GitHub: https://github.com/Gyimah-Benjamin/JanOS


Still building. This is just the beginning 🚀

Top comments (0)