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

Опубликован выпуск проекта ELKS 0.8 (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.

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

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


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

  • Добавлена возможность загрузки и запуска файлов в исполняемом формате OS/2.
  • Предоставлена возможность сборки программ Си-компилятором Open Watcom.
  • Портирована игра Doom.
  • При сборке по умолчанию включена поддержка сетевых адаптеров NE2K, WD и 3COM.
  • Включено сжатие исполняемых файлов, позволившие уместить больше приложений в образе флоппи-диска.
  • В ядре реализована поддержка асинхронного ввода/вывода.
  • Добавлен новый драйвер для Floppy-дисководов, использующий асинхронный ввод/вывод и позволяющий выполнять другие приложения во время ввода/вывода.
  • Во время загрузки обеспечена настройка параметров ядра, таких как размер кучи, число задач, inode и файлов, для выделения ресурсов в зависимости от размера памяти.
  • Улучшены возможности отладки, такие как дизассемблер и механизмы трассировки системных вызовов и функций.
  • Проведена оптимизация использования кэша L1/L2.
  • Добавлены функции для точного измерения времени.
  • Из других систем портированы команды ttyclock, ttypong, ttytetris и md5/md5sum.
  • Добавлен системный вызов sysctl и связанная с ним команда.

Release. Ссылка here.