Opublikowano wydanie systemu operacyjnego podobnego do Uniksa ToaruOS 2.3, napisanego od podstaw, dostarczanego z własnym jądrem, programem rozruchowym, standardową biblioteką C, menedżerem pakietów, komponentami przestrzeni użytkownika oraz graficznym interfejsem z kompozytowym menedżerem okien. Projekt pierwotnie rozwijany był na Uniwersytecie w Illinois jako badanie nad nowymi kompozytowymi interfejsami graficznymi, ale następnie przekształcił się w osobny system operacyjny. Kod projektu napisany jest w języku C i rozpowszechniany na licencji BSD. Przygotowano obraz live o rozmiarze 7,4 MB, który można przetestować w QEMU, VMware lub VirtualBox. 
Podstawą ToaruOS jest jądro wykorzystujące hybrydową architekturę modułową, łączącą monolityczną bazę i środki do wykorzystania modułów ładowanych dynamicznie, w formie których uformowane są większość dostępnych sterowników urządzeń, takich jak sterowniki dysków (PATA i ATAPI), system plików EXT2 i ISO9660, framebuffer, klawiatury, myszy, kart sieciowych (AMD PCnet FAST, Realtek RTL8139 i Intel PRO/1000), chipy dźwiękowe (Intel AC’97), a także dodatki VirtualBox dla systemów gościnnych. Jądro obsługuje wątki Unix, TTY, wirtualny system plików, pseudo-system plików /proc, współbieżność, IPC, ramdisk, ptrace, pamięć dzieloną, wielozadaniowość i inne standardowe funkcje.
System wyposażony jest w kompozytowy menedżer okien, obsługuje dynamicznie łączone pliki wykonywalne w formacie ELF, wielozadaniowość, stos graficzny, może uruchamiać Pythona 3 oraz GCC. Jako system plików stosuje ext2. Program rozruchowy obsługuje BIOS i EFI. Stos sieciowy pozwala na korzystanie z interfejsu API gniazd w stylu systemów BSD i obsługuje interfejsy sieciowe, w tym loopback.
Wśród własnych aplikacji wyróżnia się edytor kodu podobny do Vi, Bim, który od kilku lat jest używany do tworzenia aplikacji specyficznych dla ToaruOS, takich jak menedżer plików, emulator terminala, graficzny panel z obsługą widgetów, menedżer pakietów oraz biblioteki wsparcia dla obrazów (PNG, JPEG) i czcionek TrueType. Dla ToaruOS zrealizowano portowanie takich programów jak Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulator Super Nintendo, Bochs itd.
Projekt rozwija własny dynamiczny język programowania Kuroko, zaprojektowany jako zamiennik Pythona dla tworzenia narzędzi i aplikacji użytkownika w systemie. Język ma składnię przypominającą Pythona (pozycjonowany jako skrócona wersja Pythona z wyraźnym określeniem zmiennych) i wyróżnia się bardzo kompaktową realizacją. Obsługiwane są kompilacja i interpretacja bajtkodu. Interpreter bajtkodu zapewnia zbieracz śmieci, wspiera wielowątkowość bez stosowania globalnej blokady. Kompilator i interpreter mogą być zbudowane w formie małej biblioteki współdzielonej (~500KB), którą można integrować z innymi programami i rozwijać przez C API. Oprócz ToaruOS język może być używany w systemach Linux, macOS, Windows i uruchamiany w przeglądarkach z obsługą WebAssembly.
W nowym wydaniu:
- W emulatorze terminala dodano wsparcie dla kart, między którymi można przełączać się sekwencją Alt-cyfra. Zrealizowano emulację pogrubionego kroju czcionek poprzez podwójne nałożenie glifów. Dodano podmenu „Stan terminala” do włączenia pokazu stanu różnych trybów oraz „Wyślij sygnał” do wysyłania sygnałów do procesów w tle.
- Zrealizowano przeglądarkę podręczników systemowych, wspierającą strony man w formacie roff.
- Do menu kontekstowego dodano podmenu do zarządzania mozaikowym układem okien.
- W jądrze wprowadzono nowe wywołania systemowe, w tym pread/pwrite, sigsuspend, sigqueue, lchown, pipe2, dup3, getrusage i fcntl. Dodano wsparcie dla flag FD_CLOEXEC i FD_CLOFORK. Wprowadzono wsparcie dla randomizacji adresu ładowania jądra. ABI wywołań systemowych przetłumaczone na użycie instrukcji syscall/sysret.
- Znacząco rozszerzono możliwości wirtualnej konsoli (TTY), zapewniając emulację trybu tekstowego VGA w oparciu o bufor ramki.
- W wersji dla architektury Aarch64 wprowadzono możliwość uruchomienia w maszynach wirtualnych oparciu o QEMU.
- Do stosu sieciowego dodano wsparcie dla jednoczesnej pracy z wieloma gniazdami ICMP.
- Do standardowej biblioteki libc dodano funkcje getdelim, getline, scandir, telldir, rewinddir, seekdir, ftruncate, fchmod, fchown, popen, pclose, sig2str, str2sig.
- Dodano nowe standardowe narzędzia rmdir, uniq, cmp, zcat, realpath, id, nohup, cksum. Dodano nowe opcje do ls, grep i fgrep. Przepisano narzędzia ps, top, pstree, killall i pidof, które zostały przeniesione na nową bibliotekę libtoaru_procfs, ujednolicającą działanie z pseudo-FS /proc. Rozszerzono interpreter poleceń esh.
- Dodano narzędzie check-image do sprawdzania możliwości załadowania obrazu przez bibliotekę graficzną oraz wyświetlania rozmiaru obrazu.
- Język programowania Kuroko zaktualizowano do wersji 1.5rc2.
- Edytor tekstu Bim zaktualizowano do wersji 3.2, stworzony z myślą o Vim. Nowa wersja poprawia podświetlanie składni, rozszerza wsparcie dla skryptów w języku Kuroko oraz dodaje nowy system autouzupełniania.
Źródło: opennet.ru
