OS family | Unix-like |
---|---|
Initial release | 0.0.76 (20 May 1999 ) |
Latest release | 0.8.0 / 24 September 2024 |
Repository | |
Available in | English |
Kernel type | Monolithic |
License | GPL v2 [1] |
Official website | github |
The Embeddable Linux Kernel Subset (ELKS), formerly known as Linux-8086, is a Linux-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. [2] [3]
ELKS is free software and available under the GNU General Public License (GPL). It can work with early 16-bit (e.g. 8086, 8088) and many 32-bit x86 computers like IBM PC compatible systems, and later x86 models in real mode. Another useful area is single board microcomputers, intended as educational tools for "homebrew" projects (hardware hacking), as well as embedded controller systems (e.g. Automation). [4]
Early versions of ELKS also ran on Psion 3a and 3aR SIBO (SIxteen Bit Organiser) PDAs with NEC V30 CPUs, [4] [5] providing another possible field of operation (gadget hardware), if ported to such a platform. This effort was called ELKSibo. [6] Due to lack of interest, SIBO support was removed from version 0.4.0.
Native ELKS programs may run emulated with Elksemu, allowing 8086 code to be used under Linux-i386. [7] An effort to provide ELKS with an Eiffel compliant library also exists. [8]
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 [9] 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. [10]
On January 6, 2001, Cox declared ELKS "basically dead". [11] 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 memory management with disk swapping capability, followed nine days later by ELKS release 0.1.0, considered the first beta version. [12] 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. [13] 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. [12]
A development into FlightLinux, a real-time operating system for spacecraft, was planned, but the project it was intended for (UoSAT-12) eventually settled on the qCF operating system from Quadron Corporation instead. [14]
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. [15] 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 (ELKS does not support shared libraries). BusyBox-like binaries attempt to save space with symbolic links, eliminating redundant chunks of code, and are combining separate programs into one bigger binary. [16] On November 14, 2013, project development moved to GitHub. [17] Rudimentary Ethernet and FAT support were added in 2017. [18]
More than 35 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 its transition from the obsolete BCC compiler to the more recent GCC-IA16 (GNU Compiler Collection-Intel Architecture 16), and development activity increased as Gregory Haerr took the helm as lead developer. During 2019 and 2020 ELKS moved from a 'bootable, unstable' status to a stable Linux-like system for small machines with Ethernet, TCP/IP, FAT16/32, multiuser serial and many more functions. [19] As ELKS 0.4.0 was released in November 2020, the number of commits had passed 3,000.
Building on the foundation created by 0.4.0, development activity continued during 2021, still with Gregory Haerr as lead developer, supported by 5 active contributors. The team delivered 220 commits from October 2021 to 0.5.0 release on February 8, 2022. [20] Four months later, on Jun 7th 2022, 0.6.0 was released, setting a new level or release frequency and indicating a very high level of activity. [21]
Version 0.4.0 represented a major milestone for ELKS, lifting the system from experimental to useful for non-developers, and included the following major enhancements:
Version 0.5.0 was another significant milestone for ELKS with a number of important improvements, additions and support for 2 new platforms - the Japanese PC-98 and 8018X. Enhancements included: [23]
As of version 0.5.0 ELKS is a complete small-Linux system and a versatile tool for testing, diagnosing and running vintage PCs with limited resources. The improved portability demonstrated by the addition of new platforms, paves the way for increased development activity towards the next version.
Released on June 7, 2022, 0.6.0 defined a new level for ELKS, as indicated by the much shorter than usual release cycle. The speed at which the system evolves and improves, combined with its recently acquired reliability and usability created a demand for 'updated packaged releases' from new users.
0.6.0 included lots of enhancements and optimizations on both system and application level. New additions included: [21]
200 commits were delivered by the team between the 0.5.0 and 0.6.0 release, more than half by Gregory Haerr.
It was released on August 3, 2023. [25]
DECnet is a suite of network protocols created by Digital Equipment Corporation. Originally released in 1975 in order to connect two PDP-11 minicomputers, it evolved into one of the first peer-to-peer network architectures, thus transforming DEC into a networking powerhouse in the 1980s. Initially built with three layers, it later (1982) evolved into a seven-layer OSI-compliant networking protocol.
BitKeeper is a discontinued software tool for distributed revision control of computer source code. Originally developed as proprietary software by BitMover Inc., a privately held company based in Los Gatos, California, it was released as open-source software under the Apache-2.0 license on 9 May 2016. BitKeeper is no longer being developed.
XNU is the computer operating system (OS) kernel developed at Apple Inc. since December 1996 for use in the Mac OS X operating system and released as free and open-source software as part of the Darwin OS, which, in addition to being the basis for macOS, is also the basis for Apple TV Software, iOS, iPadOS, watchOS, visionOS, and tvOS.
MontaVista Software is a company that develops embedded Linux system software, development tools, and related software. Its products are made for other corporations developing embedded systems such as automotive electronics, communications equipment, mobile phones, and other electronic devices and infrastructure.
Nucleus RTOS is a real-time operating system (RTOS) produced by the Embedded Software Division of Mentor Graphics, a Siemens Business, supporting 32- and 64-bit embedded system platforms. The operating system (OS) is designed for real-time embedded systems for medical, industrial, consumer, aerospace, and Internet of things (IoT) uses. Nucleus was released first in 1993. The latest version is 3.x, and includes features such as power management, process model, 64-bit support, safety certification, and support for heterogeneous computing multi-core system on a chip (SOCs) processors.
QEMU is a free and open-source emulator that uses dynamic binary translation to emulate the processor of a computer. It provides a variety of hardware and device models for the machine, enabling it to run different guest operating systems. QEMU can be used in conjunction with Kernel-based Virtual Machine (KVM) to execute virtual machines at near-native speeds. Additionally, QEMU supports the emulation of user-level processes, allowing applications compiled for one processor architecture to run on another.
Git is a distributed version control system that tracks versions of files. It is often used to control source code by programmers who are developing software collaboratively.
Mercurial is a distributed revision control tool for software developers. It is supported on Microsoft Windows, Linux, and other Unix-like systems, such as FreeBSD and macOS.
The ETRAX CRIS is a RISC ISA and series of CPUs designed and manufactured by Axis Communications for use in embedded systems since 1993. The name is an acronym of the chip's features: Ethernet, Token Ring, AXis - Code Reduced Instruction Set. Token Ring support has been taken out from the latest chips as it has become obsolete.
Das U-Boot is an open-source boot loader used in embedded devices to perform various low-level hardware initialization tasks and boot the device's operating system kernel. It is available for a number of computer architectures, including M68000, ARM, Blackfin, MicroBlaze, AArch64, MIPS, Nios II, SuperH, PPC, RISC-V and x86.
The Linux kernel is a free and open source, UNIX-like kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the kernel for the GNU operating system (OS) which was created to be a free replacement for Unix. Since the late 1990s, it has been included in many operating system distributions, many of which are called Linux. One such Linux kernel operating system is Android which is used in many mobile and embedded devices.
netsniff-ng is a free Linux network analyzer and networking toolkit originally written by Daniel Borkmann. Its gain of performance is reached by zero-copy mechanisms for network packets, so that the Linux kernel does not need to copy packets from kernel space to user space via system calls such as recvmsg
. libpcap, starting with release 1.0.0, also supports the zero-copy mechanism on Linux for capturing (RX_RING), so programs using libpcap also use that mechanism on Linux.
Checkpoint/Restore In Userspace (CRIU), is a software tool for the Linux operating system. Using this tool, it is possible to freeze a running application and checkpoint it to persistent storage as a collection of files. One can then use the files to restore and run the application from the point it was frozen at. The distinctive feature of the CRIU project is that it is mainly implemented in user space, rather than in the kernel.
RIOT is a small operating system for networked, memory-constrained systems with a focus on low-power wireless Internet of things (IoT) devices. It is open-source software, released under the GNU Lesser General Public License (LGPL).
Zephyr is a small real-time operating system (RTOS) for connected, resource-constrained and embedded devices supporting multiple architectures and released under the Apache License 2.0. Zephyr includes a kernel, and all components and libraries, device drivers, protocol stacks, file systems, and firmware updates, needed to develop full application software.
Windows Subsystem for Linux (WSL) is a feature of Microsoft Windows that allows for using a Linux environment without the need for a separate virtual machine or dual booting. WSL is installed by default in Windows 11. In Windows 10, it can be installed either by joining the Windows Insider program or manually via Microsoft Store or Winget.
Cyphal is a lightweight protocol designed for reliable intra-vehicle communications using various communications transports, originally destined for CAN bus, but targeting various network types in subsequent revisions. OpenCyphal is an open-source project that aims to provide MIT-licensed implementations of the Cyphal protocol. The project was known as UAVCAN prior to rebranding in March 2022.
WireGuard is a communication protocol and free and open-source software that implements encrypted virtual private networks (VPNs). It aims to be lighter and better performing than IPsec and OpenVPN, two common tunneling protocols. The WireGuard protocol passes traffic over UDP.
Windows Terminal is a multi-tabbed terminal emulator developed by Microsoft for Windows 10 and later as a replacement for Windows Console. It can run any command-line app in a separate tab. It is preconfigured to run Command Prompt, PowerShell, WSL and Azure Cloud Shell Connector, and can also connect to SSH by manually configuring a profile. Windows Terminal comes with its own rendering back-end; starting with version 1.11 on Windows 11, command-line apps can run using this newer back-end instead of the old Windows Console.
OpenHarmony (OHOS), also known as OH by shorter acronym, is a family of open-source distributed operating systems based on HarmonyOS derived from LiteOS, donated the L0-L2 branch source code by Huawei to the OpenAtom Foundation. Similar to HarmonyOS, the open-source distributed operating system is designed with a layered architecture, consisting of four layers from the bottom to the top: the kernel layer, system service layer, framework layer, and application layer. It is also an extensive collection of free software, which can be used as an operating system or in parts with other operating systems via Kernel Abstraction Layer subsystems.
{{cite book}}
: CS1 maint: others (link){{cite web}}
: CS1 maint: bot: original URL status unknown (link){{cite web}}
: CS1 maint: bot: original URL status unknown (link){{cite web}}
: CS1 maint: archived copy as title (link)){{cite web}}
: CS1 maint: bot: original URL status unknown (link)