ELKS: Linux for 16-bit Intel Processors
ELKS, a compact Linux-derived OS for 16‑bit x86 processors like the 8088 and 80286, is drawing interest from retro‑computing enthusiasts who want a Unix‑like environment on hardware that predates mainstream Linux. Commenters explore how it runs in real mode without an MMU, can fit on tiny floppy disks or ROMs, and revives old PCs, embedded boards, and SBCs that would otherwise be unusable with modern software. The thread branches into comparisons with DOS, historical ROM‑based systems, and broader questions about optimal CPU bit widths and the economics of 8‑, 16‑, 32‑ and 64‑bit architectures.
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.