ELKS is a project providing a Linux-like OS for systems based on the Intel IA16 architecture (16-bit processors: 8086, 8088, 80188, 80186, 80286, NEC V20, V30 and compatibles). Such systems are ancient computers (IBM-PC XT / AT and clones) as well as more recent SBCs, SoCs, and FPGAs. ELKS supports networking and installation to HDD using both MINIX and FAT file systems.
- Stock images require 512k RAM
- ELKS requires 256k RAM to run, 512k to be really useful
- No hardware MMU required
- ROM-based systems can run in 128k RAM
- ELKS, a 16-bit no-MMU Linux on Amstrad PC 2086 (thanks @pawoswm-arm)
- Booting ELKS on an old 286 MB from 1,44MB floppy (thanks @xrayer)
- Epson PC Portable Q150A / Equity LT (Nec V30 8086 - 1989) (thanks Alejandro)
- ELKS on ESP32 through IBM PC emulator (thanks @fdivitto)
ELKS Networking showing netstat and process list
Running ELKS Basic on PC-9801UV21 (NEC V30 CPU)
A full set of disk images are available for download, for you to try out ELKS: Downloads.
Full build instructions are here.
Help on how to use ELKS, as well as technical tutorials, are available on our Wiki.
More information is in the Documentation folder: Index of ELKS Documentation.
Other projects and resources interesting to ELKS and our programming community:
- blink16 A visual 8086 emulator and debugger capable of booting the ELKS kernel for symbolic debugging, as well as an emulator for ELKS executables.
- Size Optimization Tricks A great article from Justine Tunney's blog showing how big things can be done without bloat.
- gcc-ia16 TK Chia's gcc compiler targeted for 8086, maintained and used for the ELKS kernel and all its applications.
Questions? Problems? Patches? Open an issue on the ELKS GitHub project!