A minimal x86 operating system featuring a two-stage bootloader and a kernel that confirms it has booted.
os.img (raw disk image)
├── Sector 1 — boot/boot.asm (512 bytes, MBR bootloader)
└── Sector 2 — kernel/kernel.asm (loaded at 0x8000)
- Runs in 16-bit real mode at address
0x7C00(standard BIOS load address) - Prints
Loading CopperOS... - Loads the kernel from disk sector 2 into memory at
0x8000using BIOS INT 13h - Jumps to the kernel
- Runs in 16-bit real mode at address
0x8000 - Prints
CopperOS kernel has booted successfully! - Halts the CPU
- NASM — Netwide Assembler
- xorriso — to build the ISO image (
make iso) - QEMU — to run the OS image (optional)
makeThis produces os.img, a raw disk image containing the bootloader and kernel.
make isoThis produces os.iso, a bootable El Torito ISO image suitable for burning to a CD/DVD or booting in a virtual machine.
make runThis launches QEMU with the disk image. You should see:
Loading CopperOS...
CopperOS kernel has booted successfully!
make cleanPre-built ISO images are available on the Releases page.
A new release is automatically published whenever a version tag is pushed (e.g. v0.1.0-beta).
Tags that include alpha, beta, rc, or pre are published as pre-releases.