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)