Embeddable Linux Kernel Subset


The Embeddable Linux Kernel Subset , 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. It can work with early 16-bit x86 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 "" projects, as well as embedded controller systems.
ELKS also runs on Psion 3a and 3aR SIBO PDAs with NEC V30 CPUs, providing another possible field of operation, if ported to such a platform. This effort was called ELKSibo.
Native ELKS programs may run emulated with Elksemu, allowing 8086 code to be used under Linux-i386. An effort to provide ELKS with an Eiffel compliant library also exists.

History

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, and in 1997 the first website www.elks.ecs.soton.ac.uk/ 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. 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 .
On January 6, 2001, Cox declared ELKS "basically dead". Nonetheless, release 0.0.84 came along on June 17, 2001, Charilaos 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 memory management 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, 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 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 Jody Bruchon in an attempt to replace stand-alone binaries and to take advantage of shared code. BusyBox-like binaries attempt to save space with symbolic links, eliminating redundant chunks of code, and are combining separate programs into one bigger binary. On November 14, 2013, project development moved to GitHub. Rudimentary Ethernet and FAT support were added in 2017.
More than 30 developers have contributed to this project since the fork in 1995. As of March 2015, development of the ELKS project was again active, reaching a milestone 1,000 source code commits on March 8, 2015. As of June 2018, many bug fixes and improvements were performed with 583 more commits, leading to the 0.2.1 release. In March 2019, the project completed his transition from the obsolete BCC compiler to the more recent GCC-IA16.