03.02.2023

Выпуск ELKS 0.6, варианта ядра Linux для старых 16-разрядных процессоров Intel

Опубликован выпуск проекта ELKS 0.6 (Embeddable Linux Kernel Subset), развивающего Linux-подобную операционную систему для 16-разрядных процессоров Intel 8086, 8088, 80188, 80186, 80286 и NEC V20/V30. ОС может использоваться как на старых компьютерах класса IBM-PC XT / AT, так и на SBC / SoC / FPGA, воссоздающих архитектуру IA16.
Проект развивается с 1995 года и начинался как ответвление ядра Linux для устройств без блока управления памятью (MMU). Исходные тексты распространяются под лицензией GPLv2. Система поставляется в форме образов для записи на floppy-диски или запуска в эмуляторе QEMU.

Предлагается два варианта сетевого стека — штатный TCP/IP стек ядра Linux и стек ktcp, работающий в пространстве пользователя. Из сетевых карт поддерживаются Ethernet-адаптеры, совместимые с NE2K и SMC. Также возможно создания каналов связи через последовательный порт при помощи SLIP и CSLIP. Из файловых систем поддерживаются Minix v1, FAT12, FAT16 и FAT32. Настройка процесса загрузки осуществляется через сценарий /etc/rc.d/rc.sys.

Помимо ядра Linux, адаптированного для 16-разрядных систем, проектом развивается набор стандартных утилит (ps, bc, tar, du, diff, netstat, mount, sed, xargs, grep, find, telnet, meminfo и т.п.), включая совместимый с bash командный интерпретатор, консольный оконный менеджер screen, текстовые редакторы Kilo и vi, графическое окружение на базе X-сервера Nano-X. Многие компоненты пространства пользователя заимствованы из Minix, включая формат исполняемых файлов.

В новом выпуске:

  • Добавлен интерпретатор языка BASIC, пригодный для рабочих станций и систем, прошиваемых в ПЗУ. В том числе реализованы команды для работы с файлами (LOAD/SAVE/DIR) и графикой (MODE, PLOT, CIRCLE и DRAW).
  • Добавлена программа для работы с архивами tar.
  • Добавлены команды man и eman для показа man-руководств, а также обеспечена поддержка показа сжатых man-страниц.
  • В реализацию bash встроена команда test («[«).
  • Добавлена команда «net restart». Переписана команда nslookup.
  • В команду mount добавлена возможность показа информации о примонтированных разделах.
  • Повышена скорость работы команды ls на разделах с ФС FAT.
  • Значительно улучшена работа и поддержка 8-разрядных систем в сетевом драйвере NE2K.
  • Переписан FTP-сервер ftpd, в котором появилась поддержка команды SITE и возможность выставления таймаутов.
  • Для всех сетевых приложений реализована поддержка резолвинга имён DNS через вызов in_gethostbyname.
  • В команду sys добавлена поддержка копирования всего диска.
  • Добавлена новая команда setup для быстрой настройки имени хоста и IP-адреса.
  • В /bootopts добавлены параметры LOCALIP=, HOSTNAME=, QEMU=, TZ=, sync= и bufs=.
  • В порт для компьютера PC-98 добавлена поддержка жёстких дисков SCSI и IDE, добавлен новый загрузчик BOOTCS, реализована поддержка загрузки из внешнего файла, расширена поддержка дисковых разделов.
  • В порт для процессоров 8018X добавлена поддержка запуска из ПЗУ и улучшена обработка прерываний.
  • В стандартной Си библиотеке добавлена математическая библиотека и обеспечена возможность работы с числами с плавающей запятой в функциях printf/sprintf, strtod, fcvt, ecvt. Переписан и значительно ускорен код функции strcmp. Предложена более компактная реализация функции printf. Добавлены функции in_connect и in_resolv.
  • В ядре улучшена поддержка файловой системы FAT, увеличено до 6 максимальное число точек монтирования, добавлена поддержка установки часового пояса, добавлены системные вызовы uname, ustatfs и alarm, переписан код для работы с таймером.

[embedded content]

Источник.