ELKS, a Linux variant for older 16-bit Intel processors

Recently the release of the ELKS 0.6 project was announced (Embeddable Linux Kernel Subset), develops a Linux-like operating system for Intel 8086, 8088, 80188, 80186, 80286 and NEC V20/V30 16-bit processors.

The operating system can be used on both older IBM-PC XT/AT class computers and SBC/SoC/FPGA that recreate the IA16 architecture. The project has been in development since 1995 and started as a fork of the Linux kernel for devices without a memory management unit (MMU).

There are two options for the network stack: the normal Linux kernel TCP/IP stack and the ktcp stack that runs in user space.

of the network cards, NE2K and SMC compliant Ethernet adapters are supported. It is also possible to create communication channels through the serial port using SLIP and CSLIP. Supported file systems include Minix v1, FAT12, FAT16, and FAT32. The boot process is configured using the /etc/rc.d/rc.sys script.

In addition to the Linux kernel adapted for 16-bit systems, the project develops a set of standard utilities (ps, bc, tar, du, diff, netstat, mount, sed, xargs, grep, find, telnet, meminfo, etc.) , including the bash-compatible shell, the display console window manager, the Kilo and vi text editors, the Nano-X X server-based graphical environment. Many user space components are borrowed from Minix, including executable file format.

Main new features of ELKS 0.6

In this new version a BASIC language interpreter has been added, suitable for workstations and ROM flashed systems. This includes commands for working with files (LOAD/SAVE/DIR) and graphics (MODE, PLOT, CIRCLE, and DRAW).

Another change that stands out is that a math library has been added to the standard C library and the ability to work with floating point numbers has been provided in the printf/sprintf, strtod, fcvt, ecvt functions. The strcmp function code has been rewritten and significantly sped up. A more compact implementation of the printf function has been proposed. Added in_connect and in_resolv functions.

It is also highlighted that the kernel has improved support for the FAT file system, increased the maximum number of mount points to 6, added support for setting the time zone, added uname, usatfs and alarm system calls, rewrote the code to work with the timer.

Besides it a program for working with tar archives has been added, added man and eman commands to display manuals and provided support for displaying compressed man pages and added "network reset" command. Rewritten nslookup command, added the ability to display information about mounted partitions to the mount command.

On the other hand, it also stands out improved performance of the ls command on FAT partitions, as well as significantly improved performance and support for 8-bit systems in the NE2K network driver.

Of the other changes that stand out:

  • The ftpd FTP server has been rewritten to support the SITE command and the ability to set timeouts.
    Support for resolving DNS names via the in_gethostbyname call is implemented for all network applications.
  • The test command ("[") is built into the bash implementation.
  • Added support for copying an entire disk to the sys command.
  • A new configuration command has been added to quickly configure the hostname and IP address.
  • Added LOCALIP=, HOSTNAME=, QEMU=, TZ=, sync=, and bufs= options to /bootopts.
  • Support for SCSI and IDE hard drives was added to the port for the PC-98 computer, a new BOOTCS loader was added, support for loading from an external file was implemented, support for disk partitions was expanded.
    The port for 8018X processors added support for running from ROM and improved interrupt handling.

Finally If you are interested in knowing more about it, you should know that the source code is distributed under the GPLv2 license. The system is supplied in the form of images to burn on floppy disks or run on the QEMU emulator, you can consult the details In the following link.

The content of the article adheres to our principles of editorial ethics. To report an error click here!.

Be the first to comment

Leave a Comment

Your email address will not be published.



  1. Responsible for the data: AB Internet Networks 2008 SL
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.