// the find
ghaerr/elks
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.