Opublikowano wydanie projektu ELKS 0.6 (Embeddable Linux Kernel Subset), rozwijającego system operacyjny podobny do Linuksa dla 16-bitowych procesorów Intel 8086, 8088, 80188, 80186, 80286 i NEC V20/V30. System operacyjny może być używany zarówno na starszych komputerach klasy IBM-PC XT/AT, jak i na układach SBC/SoC/FPGA odtwarzających architekturę IA16. Projekt rozwija się od 1995 roku i zaczynał jako fork jądra Linuksa dla urządzeń bez jednostki zarządzającej pamięcią (MMU). Kod źródłowy rozpowszechniany jest na licencji GPLv2. System dostarczany jest w postaci obrazów do zapisu na dyskietkach lub uruchomienia w emulatorze QEMU.
Istnieją dwie opcje stosu sieciowego – standardowy stos TCP/IP jądra Linuksa i stos ktcp działający w przestrzeni użytkownika. Adaptery Ethernet kompatybilne z NE2K i SMC są obsługiwane z kart sieciowych. Możliwe jest także tworzenie kanałów komunikacyjnych poprzez port szeregowy z wykorzystaniem protokołu SLIP i CSLIP. Obsługiwane systemy plików obejmują Minix v1, FAT12, FAT16 i FAT32. Proces rozruchu konfiguruje się za pomocą skryptu /etc/rc.d/rc.sys.
Oprócz jądra Linuksa, przystosowanego do systemów 16-bitowych, w ramach projektu opracowywany jest zestaw standardowych narzędzi (ps, bc, tar, du, diff, netstat, mount, sed, xargs, grep, find, telnet, meminfo, itp.), w tym interpreter poleceń kompatybilny z bash, menedżer okien konsoli ekranowej, edytory tekstu Kilo i vi, środowisko graficzne oparte na serwerze Nano-X X. Wiele komponentów przestrzeni użytkownika jest zapożyczonych z Minixa, łącznie z formatem pliku wykonywalnego.
W nowym wydaniu:
- Dodano interpreter języka BASIC, odpowiedni dla stacji roboczych i systemów flashowanych w pamięci ROM. Zawiera polecenia do pracy z plikami (LOAD/SAVE/DIR) i grafiką (MODE, PLOT, CIRCLE i DRAW).
- Dodano program do pracy z archiwami tar.
- Dodano polecenia man i eman do wyświetlania podręczników man oraz zapewniono obsługę wyświetlania skompresowanych stron podręcznika man.
- Implementacja basha ma wbudowane polecenie testowe („[”).
- Dodano polecenie „restart sieci”. Polecenie nslookup zostało przepisane.
- Dodano możliwość wyświetlenia informacji o zamontowanych partycjach do polecenia mount.
- Zwiększono szybkość działania polecenia ls na partycjach z systemem plików FAT.
- Znacząco poprawiona wydajność i obsługa systemów 8-bitowych w sterowniku sieciowym NE2K.
- Serwer FTP ftpd został przepisany, dodając obsługę polecenia SITE i możliwość ustawiania limitów czasu.
- Wszystkie aplikacje sieciowe obsługują teraz rozpoznawanie nazw DNS poprzez wywołanie in_gethostbyname.
- Dodano obsługę kopiowania całego dysku do polecenia sys.
- Dodano nowe polecenie setup umożliwiające szybką konfigurację nazwy hosta i adresu IP.
- Dodano parametry LOCALIP=, HOSTNAME=, QEMU=, TZ=, sync= i bufs= do /bootopts.
- Do portu komputera PC-98 dodano obsługę dysków twardych SCSI i IDE, dodano nowy bootloader BOOTCS, zaimplementowano obsługę ładowania z pliku zewnętrznego oraz rozszerzono obsługę partycji dyskowych.
- Port dla procesorów 8018X dodał obsługę uruchamiania z pamięci ROM i ulepszoną obsługę przerwań.
- Do standardowej biblioteki C dodano bibliotekę matematyczną oraz udostępniono możliwość pracy z liczbami zmiennoprzecinkowymi w funkcjach printf/sprintf, strtod, fcvt, ecvt. Kod funkcji strcmp został przepisany i znacznie przyspieszony. Zaproponowano bardziej zwartą implementację funkcji printf. Dodano funkcje in_connect i in_resolv.
- Jądro poprawiło obsługę systemu plików FAT, zwiększyło maksymalną liczbę punktów montowania do 6, dodało obsługę ustawiania strefy czasowej, dodało wywołania uname, usatfs i systemu alarmowego oraz przepisał kod do pracy z timerem.
Źródło: opennet.ru