Skip to content

ghaerr/elks

Repository files navigation

logo

cross main

What is ELKS?

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.

Memory requirements

  • 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

Try ELKS online

You can play with ELKS online thanks to 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".

Watch ELKS in action

Screenshots

ELKS running on QEMU ss1

Olivetti M24 8086 CPU ss2

ELKS Networking showing netstat and process list ss3

Running ELKS Basic on PC-9801UV21 (NEC V30 CPU) ss4

Downloads

A full set of disk images are available for download, for you to try out ELKS: Downloads.

How to build

Full build instructions are here.

Wiki

Help on how to use ELKS, as well as technical tutorials, are available on our Wiki.

Documentation

More information is in the Documentation folder: Index of ELKS Documentation.

Resources

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.

More information

Questions? Problems? Patches? Open an issue on the ELKS GitHub project!