Опубликован выпуск проекта 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 и связанная с ним команда.