ELKS: Linux for 16-bit Intel Processors

Relationship to Linux and project goals

  • Originated in 1995 as a fork of the standard Linux kernel for 8086-class systems.
  • Runs in 16‑bit real mode with no MMU or protection, resembling early Linux 2.0 internals without SMP or modern complexity.
  • Current aim is “small is beautiful”: exploring what can be done with 64K code/data and ~640K RAM, rather than being a practical modern OS.

Hardware targets and deployment

  • Supports 8088/8086/286-era PCs and modern 16‑bit SBCs; confirmed to run on machines like early Amstrad portables and similar XT/AT‑class hardware.
  • Can run from ROM on embedded x86 (e.g., 8018x), including variations that use ROM filesystems or BIOS disk calls.
  • Fits on floppies: minimal systems boot from 360K; networking needs ~720K; full toolchains may require 1.44MB or more. Images exist specifically for these formats.

Comparisons with DOS and other vintage OSes

  • Several commenters argue that for 8086–286 hardware, MS‑DOS/FreeDOS/SvarDOS are more straightforward and practical.
  • DOSEMU is deemed a poor fit: it relies on 386 virtual 8086 mode, which ELKS’s target CPUs lack.
  • Other contemporary or alternative systems mentioned include Coherent (now FOSS), KA9Q NOS, PC/MIX, and various ROM DOS variants.

Tooling, software, and capabilities

  • Recently gained a native C toolchain (compiler/assembler/linker), though native builds on old hardware are very slow; emulators are commonly used for development.
  • Userland includes enough tools for networking (telnet/FTP, etc.); there is interest in porting classic games (NetHack, text adventures) and even Doom, though size limits prevent fitting everything on a single floppy.
  • There is experimental dual-screen console support (e.g., MDA + CGA), with calls for testing on EGA/VGA.

Bit width, legacy support, and economics

  • Discussion broadens to address vs. register width (e.g., 48‑bit virtual addresses on “64‑bit” CPUs) and when 64‑bit is actually needed.
  • Some argue 32‑bit remains common in embedded Linux; claims that “32‑bit is being removed from Linux” are disputed.
  • Separate thread debates the practical need for 8‑bit microcontrollers versus cheap 32‑bit RISC‑V parts.

Nostalgia and hobbyist value

  • Multiple stories of using ELKS on underpowered or obsolete laptops when nothing else would run.
  • Some see 16‑bit hardware as mostly collector items; others highlight the fun of pushing strict constraints and reviving old machines.