Embeddable Linux Kernel Subset
The Embeddable Linux Kernel Subset (ELKS), formerly known as Linux-8086, is a Unix-like operating system kernel. It is a subset of the Linux kernel, intended for 16-bit computers with limited processor and memory resources such as machines powered by Intel 8086 and compatible microprocessors not supported by 32-bit Linux.
Features and compatibility
ELKS is free software and available under the GNU General Public License (GPL). It can work with early 16-bit x86 (8086, 80186 and 80286) computers like IBM PC compatible systems, and in virtual 8086 mode, a feature of the 32-bit Intel 80386 and later CPUs found in newer machines. Another useful area are single board microcomputers, intended as educational tools for "homebrew" projects (hardware hacking), as well as embedded controller systems (e.g. Automation).
ELKS also runs on Psion 3a and 3aR SIBO (SIxteen Bit Organiser) PDAs with NEC V30 CPUs, providing another possible field of operation (gadget hardware), if ported to such a platform. This effort was called ELKSibo.
Development of Linux-8086 started in 1995 by Linux kernel developers Alan Cox and Chad Page as a fork of the standard Linux. By early 1996 the project was renamed ELKS (Embeddable Linux Kernel Subset), and in 1997 the first website www.elks.ecs.soton.ac.uk/ (offline, archived here) was created. ELKS version 0.0.63 followed on August 8 that same year. On June 22, 1999, ELKS release 0.0.77 was available, the first version able to run a graphical user interface (the Nano-X Window System). On July 21, ELKS booted on a Psion PDA with SIBO architecture. ELKS 0.0.82 came out on January 10, 2000. By including the SIBO port, it became the first official version running on other computer hardware than the original 8086 base. On March 3 that year, the project was registered on SourceForge, the new website being elks.sourceforge.net/.
On January 6, 2001, Cox declared ELKS "basically dead". Nonetheless, release 0.0.84 came along on June 17, 2001, Charilaos (Harry) Kalogirou added TCP/IP networking support seven days later, and in the same year ELKS reached 0.0.90 on November 17. On April 20, 2002, Kalogirou added virtual memory support with disk swapping capability, followed nine days later by ELKS release 0.1.0, considered the first beta version. By end of the year, on December 18, the EDE (Elks Distribution Edition, a distribution based on the ELKS kernel), itself version 0.0.5, is released. January 6, 2003, brought ELKS 0.1.2, an update to 0.1.3 followed on May 3, 2006, the first official release after a long hiatus in development.
A development into FlightLinux, a real-time operating system for spacecrafts, once was planned, but the project it was intended for (UoSAT-12) eventually settled on the qCF operating system from Quadron Corporation instead.
Current status and usage
Since January 2012 ELKS is again under development. The CVS repository was migrated to Git in February 2012, and numerous patches from the Linux-8086 mailing list were committed to the new repository. Version 0.1.4 came out on February 19, 2012, released by Jody Bruchon in memory of Riley Williams, a former co-developer. It included updated floppy disk images, fixing compilation bugs of the previous version and removing unused codes. On May 10, 2012, BusyELKS was added to the repository by Bruchon to replace stand-alone binaries. BusyBox-like binaries attempt to save space with symbolic links, eliminating redundant chunks of code, and are combining separate programs into one bigger binary. The current release is ELKS 0.1.5 of August 11, 2012. On November 14, 2013, the project development settled down at GitHub, github.com/jbruchon/elks/ becoming the new official home.
The current EDE version is 0.0.5b. More than 30 developers have contributed to this project since the fork in 1995.
- Introduction to ELKS
- Information on SIBO (archived)
- Information on ELKSibo (archived)
- Elksemu man page
- Implementation of ELKS Eiffel library
- January 6, 2001, status update by Alan Cox (archived)
- Older release information, e.g. on ELKS 0.1.0, the first Beta
- Announce of the EDE 0.0.5 release
- Linux-8086: Flight Linux
- ELKS release 0.1.4
- BusyELKS introduction
- ELKS release 0.1.5 on SourceForge
- Info on ELKS' GitHub move
- EDE SourceForge download page