Opublikowano wydanie projektu ELKS 0.8 (Embeddable Linux Kernel Subset), rozwijającego system operacyjny podobny do Linuxa dla procesorów 16-bitowych Intel 8086, 8088, 80188, 80186, 80286 oraz NEC V20/V30. System operacyjny może być używany na starych komputerach klasy IBM-PC XT/AT, krajowym komputerze MK-88, vintage’owej płycie Monotech NuXT 2.0 oraz na SBC/SoC/FPGA, odtwarzających architekturę IA16. Projekt rozwija się od 1995 roku jako gałąź jądra Linux dla urządzeń bez jednostki zarządzania pamięcią (MMU). Kod źródłowy jest rozpowszechniany na licencji GPLv2. System jest dostarczany w postaci obrazów do zapisu na dyskietkach lub uruchamiania w emulatorze QEMU.
Oprócz jądra Linux, dostosowanego do systemów 16-bitowych, projekt rozwija zestaw standardowych narzędzi (ps, bc, tar, du, diff, netstat, mount, sed, xargs, grep, find, telnet, meminfo itd.), w tym zgodny z bash interpreter poleceń, menedżer okien konsolowych screen, edytory tekstu Kilo i vi oraz graficzne środowisko oparte na serwerze X Nano-X.
Oferowane są dwie wersje stosu sieciowego - standardowy stos TCP/IP jądra Linux oraz stos ktcp, działający w przestrzeni użytkownika. Obsługiwane są karty sieciowe Ethernet, zgodne z NE2K i SMC. Możliwe jest również tworzenie połączeń przez port szeregowy za pomocą SLIP i CSLIP. Obsługiwane systemy plików to Minix v1, FAT12, FAT16 i FAT32. Konfiguracja procesu rozruchu odbywa się za pomocą skryptu /etc/rc.d/rc.sys. Format plików wykonywalnych pochodzi z systemu Minix.

W nowym wydaniu:
- Dodano możliwość ładowania i uruchamiania plików w formacie wykonywalnym OS/2.
- Dostępna jest możliwość kompilacji programów z wykorzystaniem kompilatora C Open Watcom.
- Zportowano grę Doom.
- Domyślnie podczas kompilacji włączono obsługę kart sieciowych NE2K, WD i 3COM.
- Włączono kompresję plików wykonywalnych, co pozwoliło na pomieszczenie większej liczby aplikacji w obrazie dyskietki.
- W jądrze wprowadzono wsparcie dla asynchronicznego wejścia/wyjścia.
- Dodano nowy sterownik dla napędów, wykorzystujący asynchroniczne wejście/wyjście, co pozwala na uruchamianie innych aplikacji podczas operacji wejścia/wyjścia.
- Podczas rozruchu zapewniona jest konfiguracja parametrów jądra, takich jak rozmiar sterty, liczba zadań, inode i plików, w celu przydzielenia zasobów w zależności od rozmiaru pamięci.
- Ulepszono możliwości debugowania, takie jak dezasemblator oraz mechanizmy śledzenia wywołań systemowych i funkcji.
- Zoptymalizowano wykorzystanie pamięci podręcznej L1/L2.
- Dodano funkcje do precyzyjnego pomiaru czasu.
- Z innych systemów zaimportowano polecenia ttyclock, ttypong, ttytetris oraz md5/md5sum.
- Dodano wywołanie systemowe sysctl oraz powiązaną z nim komendę.
Źródło: opennet.ru
