project info

About CopperOS

Copperhead is a 32-bit x86 operating system written from nothing: 512 bytes of NASM, a freestanding C kernel with no libc under it, a VESA framebuffer, and a desktop the kernel draws pixel by pixel. It exists to be read and to be booted, in that order.

Download the release Read the source

The short version

A learning kernel that gets all the way to a desktop.

Most hobby kernels stop at a text-mode "Hello from ring 0". Copperhead keeps going: it brings up a graphics mode, draws startup screens, runs a setup wizard, asks for a passcode, plays a welcome animation, and lands on a desktop with a taskbar and windows you can drag. The whole arc works end to end, and that arc is the point of the release.

Everything is deliberately BIOS-era. There is no UEFI path, no GRUB, no ACPI, and no borrowed drivers. If a pixel changes, code in this repository changed it. That constraint is what keeps the finished system down to about 1.8 MB and small enough to read through in an evening.

Status

The emulator is off

CopperOS used to boot inside the browser on the Try it page. That has been switched off while it is repaired, and the page now says so plainly instead of hanging on "Booting…". The full explanation — and the ISO in QEMU was always the better experience anyway.

Highlights

What is actually built.

Startup

A 512-byte NASM boot sector loads the kernel, switches to 32-bit protected mode, and hands over. No bootloader dependency to install or configure.

Display

The framebuffer asks for VESA 1280×720×8 and falls back through modes that virtual machines reliably provide, so it comes up on almost anything BIOS-based.

Windows

Frames are composed off-screen before they are drawn. That single change removed the full-screen flicker the early builds had and leaves room for real animation later.

Assets

Startup PNGs are resized and converted to raw bitmaps at build time and linked into the kernel, because there is no image decoder at runtime and no filesystem to read them from.

Desktop

Eight apps, all of them drawn by the kernel.

The workspace takes its cues from Windows 95 — a black desktop, a taskbar, a Start menu, draggable window chrome, and a pointer steered with I, J, K and L, because there is no mouse driver yet. First boot runs a setup wizard that collects a username, a four-digit passcode, install or try mode, a disk target, a desktop theme, and a network choice, then plays a welcome animation and asks for that passcode at a login screen.

File Explorer Internet Explorer Activity Manager Paint System Settings System Updates Calculator TXT Editor

There is no recovery for that passcode. Nothing on disk can be asked to reveal it, so pick something memorable or be willing to reinstall over it.

Honest limits

What it is not.

The apps are kernel-rendered built-ins rather than user-space programs — there is no process isolation between them because there are no processes yet. Internet Explorer accepts a typed URL and then admits it cannot fetch it, which is correct: real browsing needs a network card, TCP/IP, DNS, TLS and an HTML parser, and none of those exist. System Updates reports the release status; System Settings covers Wi-Fi choice, desktop theme, Start menu style, and diagnostics. There is no filesystem to speak of, so nothing you make inside CopperOS survives a reboot.

None of this should go near a machine you care about. Use a virtual machine. The roadmap is where the missing pieces are tracked, and v1.6 Big Waterfall is the release that closes some of them.