Content deleted Content added
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 |
m Bot: http → https |
||
(9 intermediate revisions by 9 users not shown) | |||
Line 6:
| family = [[Unix-like]]
| released = 0.0.76 ({{Start date and age|1999|05|20|df=yes}})
| latest release version =
| latest release date = {{Start date and age|
| language = [[English language|English]]
| kernel type = [[Monolithic kernel|Monolithic]]
| license = [[GPL v2]]<ref>{{cite web |url=https://github.com/ghaerr/elks/blob/master/LICENSE |title=LICENSE file on github|website=[[GitHub]] }}</ref>
}}
The '''Embeddable Linux Kernel Subset''' ('''ELKS
<!-- DONE: add infos about elksemu, more details about current status?, check all links. Still TODO: running ELKS in dosemu (and maybe qemu and/or bochs), add infos from the FAQ and the "ELKS development tools" below, links to other usages? -->
==Features and compatibility==
ELKS is [[free software]] and available under the [[GNU General Public License]] (GPL). It can work with early [[16-bit]] (e.g. 8086, [[Intel 8088|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 computer|single board microcomputers]], intended as educational tools for "[[wikt:homebrew|homebrew]]" projects (hardware [[Hacker (hobbyist)|hacking]]), as well as embedded controller systems (e.g. [[Automation]]).<ref name="Intro">[
Early versions of ELKS also ran on [[Psion Series 3#Psion Series 3a|Psion 3a]] and 3aR [[EPOC (operating system)#EPOC16|SIBO]] (SIxteen Bit Organiser) [[Personal Digital Assistant|PDA]]s with NEC [[NEC V20#Variants and successors|V30]] CPUs,<ref name="Intro"/><ref>{{cite web |url=http://www.elks.ecs.soton.ac.uk/sibo.php3 |title=Information on SIBO |accessdate=2014-03-02 |url-status=bot: unknown |archiveurl=https://web.archive.org/web/20011021222654/http://www.elks.ecs.soton.ac.uk/sibo.php3 |archivedate=October 21, 2001 }}</ref> providing another possible field of operation ([[gadget]] hardware), if ported to such a platform. This effort was called ELKSibo.<ref>{{cite web |url=http://www.mungewell.ndirect.co.uk/linux/ |title=Information on ELKSibo |accessdate=2014-03-02 |url-status=bot: unknown |archiveurl=https://web.archive.org/web/20050327202617/http://www.mungewell.ndirect.co.uk/linux/ |archivedate=March 27, 2005 }}</ref> Due to lack of interest, SIBO support was removed from version 0.4.0.
Native ELKS programs may run [[Emulator|emulated]] with Elksemu, allowing 8086 code to be used under Linux-i386.<ref>[http://linux.die.net/man/1/elksemu Elksemu man page]</ref> An effort to provide ELKS with an [[Eiffel (programming language)|Eiffel]] compliant [[Library (computing)|library]] also exists.<ref>[
==History==
Development of Linux-8086 started in 1995 by Linux kernel developers [[Alan Cox (computer programmer)|Alan Cox]] and Chad Page as a [[fork (software development)|fork]] of the standard Linux. By early 1996 the project was renamed ELKS (Embeddable Linux Kernel Subset), and in 1997 the first website<ref>{{Cite web |url=http://www.elks.ecs.soton.ac.uk/ |title=
On January 6, 2001, Cox declared ELKS "basically dead".<ref>January 6, 2001, {{cite web |url=
A development into FlightLinux, a [[Real-time computing|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.<ref>[http://www.spinics.net/lists/linux-8086/msg00264.html Linux-8086: Flight Linux]</ref>
==Current status and usage==
Since January 2012 ELKS is again under development. The CVS [[software repository|repository]] was migrated to [[Git (software)|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
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 [[Borland C++|BCC]] compiler to the more recent GCC-IA16 ([[GNU Compiler Collection]]-[[List_of_Intel_CPU_microarchitectures#16-bit|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.<ref>{{Cite web|title=ELKS v0.4.0 Pre-release version history and credits · Issue #873 · ghaerr/elks|url=https://github.com/ghaerr/elks/issues/873|access-date=2021-04-09|website=GitHub|language=en}}</ref> 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.<ref>{{Cite web|title=Release ELKS v0.5.0 · ghaerr/elks|url=https://github.com/ghaerr/elks/releases/tag/v0.5.0|access-date=2022-02-09|website=GitHub|language=en}}</ref> 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.<ref name=":0">{{Cite web |title=Release ELKS v0.6.0 · ghaerr/elks |url=https://github.com/ghaerr/elks/releases/tag/v0.6.0 |access-date=2022-06-17 |website=GitHub |language=en}}</ref>
Line 41:
* Documentation Wiki<ref>{{Cite web|title=ELKS wiki|url=https://github.com/ghaerr/elks/wiki|access-date=2021-04-09|website=GitHub|language=en}}</ref>
* Major kernel enhancements – size, stability, robustness, speed, system calls and debugging features.
* Reliable [[Internet protocol suite|TCP/IP]] stack implemented as a user mode process, supporting TCP, [[Internet Control Message Protocol|ICMP]], [[Address Resolution Protocol|ARP]].
* User level networking support for [[telnet]]/telnetd and file transfer.
* [[Serial Line Internet Protocol|Serial IP]] and [[Ethernet]] (NE1K/[[Ne2k|NE2K]]/WD8003) support.
* Many new and updated user level commands, including [[Almquist shell|ash]] and [[Stand-alone shell|sash]] [[Unix shell|shells]].
* Many cross development tool-chain enhancements supporting more memory models, easing porting of more applications.
* Robust [[FAT16]]/32 and [[MINIX file system|Minix1]] file system support, including booting from /root on FAT file systems.
Line 52:
== Version 0.5.0 ==
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-9800 series|PC-98]] and
* Kernel and network debugging tools, [[toolchain]] improvements, cleanups to ease porting to new platforms
* Network stack stability and performance improvements
* Native ftp/ftpd programs, expanding network application level protocol support to [[telnet]], [[File Transfer Protocol|ftp]], [[Hypertext Transfer Protocol|http]] and raw tcp ([[netcat]])
Line 62:
* Support for compressed executables<ref>{{Cite web|title=[kernel] Implement compressed executables in ELKS by ghaerr · Pull Request #912 · ghaerr/elks|url=https://github.com/ghaerr/elks/pull/912|access-date=2021-04-10|website=GitHub|language=en}}</ref>
* Support for very low memory environments (256k)
* Library and [[system call]] enhancements
* Kernel support for variable [[disk sector|sector]] sizes (for [[PC-98]] platform)
* New startup configuration files for networking and mass storage
* Improved networking support when running in [[QEMU]]
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.
== Version 0.6.0 ==
Line 76:
* [[BASIC]] interpreter with demo programs
* Manual pages
* Expanded support for the new platforms - [[PC-9800 series|PC98]] and
* Kernel, library and networking fixes/enhancements
* New commands, such as [[tar (computing)|tar]], [[man page|man]] and [[compress (software)|compress]]
200 commits were delivered by the team between the 0.5.0 and 0.6.0 release, more than half by Gregory Haerr.
Line 88:
{{Portal|Free and open-source software}}
* [[TinyLinux]]
* [[
* [https://www.fuzix.org Fuzix OS], a Linux-like for ''[[8-bit]]'' architectures
|