GitHub – ghaerr/elks: Embeddable Linux Kernel Subset

ELKS is a project that provides 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). Those systems are old computers (IBM-PC XT / AT and clones) as well as new SBCs, SoCs, and FPGAs. ELKS supports networking and HDD installation using MINIX and FAT file systems.
- Stock images require 512k RAM
- ELKS requires 256k RAM to run, 512k to actually use
- No hardware MMU required
- ROM based systems can run on 128k RAM
You can play with ELKS online thanks for the v86 emulator. Login with “root” and no password. Go to the bin folder and try the different commands available. Try nxtetris. Start the game by pressing “n”.
ELKS Networking showing netstat and process list
Running ELKS Basic on PC-9801UV21 (NEC V30 CPU)
Running Matrix and vi on multiple consoles
A complete set of disk images is available for download, so you can test ELKS: Downloads.
Full building instructions are HERE.
Help on how to use ELKS, as well as technical instructions, are available at our Wiki.
More information is available in the Documentation folder: ELKS Documentation Index.
Other projects and resources of interest to ELKS and our programming community:
- flash16 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 that shows how great things can be done without bloat.
- gcc-ia16 TK Chia’s gcc compiler targeted for the 8086, is maintained and used for the ELKS kernel and all its applications.
Questions? Problem? Patches? Open an issue on the ELKS GitHub project!
https://opengraph.githubassets.com/65831a51f113c567d7b389f2e95e5611155ac51a21380a99aac98a736dd2d596/ghaerr/elks
2025-01-04 19:23:00