Release of ELKS 0.6, Linux kernel variant for older 16-bit Intel processors

The release of the ELKS 0.6 (Embeddable Linux Kernel Subset) project has been published, which develops a Linux-like operating system for 16-bit Intel 8086, 8088, 80188, 80186, 80286 and NEC V20/V30 processors. The OS can be used both on older IBM-PC XT / AT class computers and on SBC / SoC / FPGA that recreate the IA16 architecture. The project has been developing since 1995 and started as a fork of the Linux kernel for devices without a memory management unit (MMU). The source texts are distributed under the GPLv2 license. The system is supplied in the form of images for burning to floppy disks or running in the QEMU emulator.

There are two options for the network stack - the regular TCP / IP stack of the Linux kernel and the ktcp stack that runs in user space. Of the network cards, Ethernet adapters compatible with NE2K and SMC 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 through 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 bash-compatible command interpreter, screen console window manager, Kilo and vi text editors, graphical environment based on the Nano-X X server. Many user-space components are borrowed from Minix, including the executable file format.

In the new release:

  • A BASIC language interpreter has been added, suitable for workstations and systems flashed in ROM. Including implemented commands for working with files (LOAD/SAVE/DIR) and graphics (MODE, PLOT, CIRCLE and DRAW).
  • Added program for working with tar archives.
  • The man and eman commands have been added to display man manuals, and support has been provided for displaying compressed man pages.
  • The bash implementation has a test("[") command built into it.
  • Added "net restart" command. Rewritten nslookup command.
  • Added the ability to show information about mounted partitions to the mount command.
  • Improved performance of the ls command on FAT partitions.
  • Significantly improved performance and support for 8-bit systems in the NE2K network driver.
  • 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.
  • Support for copying an entire disk has been added to the sys command.
  • A new setup command has been added to quickly configure the hostname and IP address.
  • Added options LOCALIP=, HOSTNAME=, QEMU=, TZ=, sync= and bufs= to /bootopts.
  • Support for SCSI and IDE hard drives has been added to the port for the PC-98 computer, a new BOOTCS loader has been added, support for loading from an external file has been implemented, support for disk partitions has been expanded.
  • The port for 8018X processors added support for running from ROM and improved interrupt handling.
  • A mathematical library has been added to the standard C library and the ability to work with floating point numbers in the printf/sprintf, strtod, fcvt, ecvt functions has been provided. The code of the strcmp function 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.
  • 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, rewritten the code to work with the timer.



Source: opennet.ru

Add a comment