finds.dev← search

// the find

ghaerr/elks

★ 1,636 · C · NOASSERTION · updated Jun 2026

Embeddable Linux Kernel Subset - Linux for 8086

ELKS is a Linux-derived operating system kernel for 16-bit x86 processors — the kind of hardware most developers only know from retrocomputing or emulation. It runs on real IBM PC XT/AT hardware, SBCs, FPGAs, and modern machines via QEMU, with networking, a windowing system (Nano-X), and even Doom. Target audience is OS hobbyists, retrocomputing enthusiasts, and embedded systems developers working with severely constrained hardware.

Active development with a push yesterday — this isn't abandonware. The toolchain story is surprisingly complete: ia16-elf-gcc, OpenWatcom C, a native C compiler, and a blink16 visual debugger with symbolic kernel debugging. No-MMU support down to 128k RAM for ROM-based systems is genuinely impressive engineering. Multiple real-hardware YouTube demos showing it booting on 1989-era machines give it credibility beyond a toy project.

The 64KB segment limit of 8086 real mode is a hard ceiling on everything — process size, kernel complexity, any ambitions you might have. The networking stack (ktcp) is a custom userspace TCP/IP that works but has known limitations documented in the historic changelog; don't expect BSD socket compatibility. Build tooling requires the ia16 cross-compiler, which isn't in any standard package manager and has its own setup story. The user base is small enough that if you hit a driver bug on obscure hardware, you're likely fixing it yourself.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →