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.