ELKS, вариант Linux для старых 16-битных процессоров Intel.

Недавно анонсирован выход проекта ЭЛКС 0.6 (подмножество встраиваемого ядра Linux), разрабатывает Linux-подобную операционную систему для 8086-разрядных процессоров Intel 8088, 80188, 80186, 80286, 20 и NEC V30/V16.

Операционная система может использоваться как на старых компьютерах класса IBM-PC XT/AT, так и на SBC/SoC/FPGA которые воссоздают архитектуру IA16. Проект находится в разработке с 1995 года и начинался как форк ядра Linux для устройств без блока управления памятью (MMU).

Существует два варианта сетевого стека: обычный стек 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-совместимую оболочку, диспетчер окон консоли дисплея, текстовые редакторы Kilo и vi, графическую среду на базе сервера Nano-X X. Многие компоненты пользовательского пространства заимствованы из Minix, включая формат исполняемого файла.

Основные новые возможности ELKS 0.6

В этой новой версии добавлен интерпретатор языка BASIC, подходит для рабочих станций и систем с прошивкой ПЗУ. Сюда входят команды для работы с файлами (LOAD/SAVE/DIR) и графикой (MODE, PLOT, CIRCLE и DRAW).

Еще одно важное изменение: в стандартную библиотеку C добавлена ​​математическая библиотека а возможность работы с числами с плавающей запятой реализована в функциях printf/sprintf, strtod, fcvt, ecvt. Код функции strcmp был переписан и значительно ускорен. Предложена более компактная реализация функции printf. Добавлены функции in_connect и in_resolv.

Также подчеркивается, что в ядре улучшена поддержка файловой системы FAT, увеличено максимальное количество точек монтирования до 6, добавлена ​​поддержка установки часового пояса, добавлены вызовы uname, usatfs и alarm system, переписан код для работы с таймером.

Помимо этого добавлена ​​программа для работы с tar архивами, добавлены команды man и eman для отображения руководств и предоставлена ​​поддержка отображения сжатых справочных страниц, а также добавлена ​​команда «сброс сети». Переписана команда nslookup, добавлена ​​возможность отображать информацию о смонтированных разделах в команду mount.

С другой стороны, это также выделяется улучшена производительность команды ls на разделах FAT, а также значительно улучшена производительность и поддержка 8-битных систем в сетевом драйвере NE2K.

Из других изменений которые выделяются:

  • FTP-сервер ftpd был переписан для поддержки команды SITE и возможности установки времени ожидания.
    Поддержка разрешения DNS-имен через вызов in_gethostbyname реализована для всех сетевых приложений.
  • Команда test ("[") встроена в реализацию bash.
  • Добавлена ​​поддержка копирования всего диска в команду sys.
  • Добавлена ​​новая команда конфигурации для быстрой настройки имени хоста и IP-адреса.
  • В /bootopts добавлены параметры LOCALIP=, HOSTNAME=, QEMU=, TZ=, sync= и bufs=.
  • В порт для компьютера PC-98 добавлена ​​поддержка жестких дисков SCSI и IDE, добавлен новый загрузчик BOOTCS, реализована поддержка загрузки из внешнего файла, расширена поддержка разделов диска.
    В порт для процессоров 8018X добавлена ​​поддержка запуска из ПЗУ и улучшена обработка прерываний.

В конце концов Если вам интересно узнать об этом больше, вы должны знать, что исходный код распространяется под лицензией GPLv2. Система поставляется в виде образов для записи на дискеты или запуска на эмуляторе QEMU, подробности можно узнать По следующей ссылке.