Skip to content
All work
Systems2024 — 2025

OwnOS — An x86 Kernel from Scratch

A hobby operating system kernel written from bare metal up in C and assembly — bootloader, protected mode, interrupts, and all.

Cx86 AssemblyQEMUGNU Make

The problem

Operating systems courses describe the machine. I wanted to find out how much of it I could actually rebuild myself, without a layer underneath doing the hard parts.

How it works

Built up from the boot sector: a bootloader that hands off to a kernel, the switch into 32-bit protected mode, a global descriptor table, and an interrupt descriptor table for handling hardware and software interrupts.

On top of that sits screen I/O and keyboard input written against the hardware directly — no standard library, no host OS underneath.

Outcomes

  • A kernel that boots from bare metal on emulators and real hardware.
  • Written end to end in C and x86 assembly, with no external kernel code.