Opublikowano wydanie systemu operacyjnego ToaruOS 2.0, opartego na Unixie, stworzonego od podstaw i dostarczanego z własnym jądrem, bootloaderem, standardową biblioteką C, menedżerem pakietów, składnikami przestrzeni użytkownika i graficznym interfejsem z kompozytowym menedżerem okien. Kod projektu jest napisany w języku C i jest dystrybuowany na licencji BSD. Przygotowano obraz live o rozmiarze 14,4 MB, który można przetestować w QEMU, VMware lub VirtualBox.

Projekt rozpoczął się w 2010 roku na Uniwersytecie Illinois i początkowo rozwijany był jako badania nad tworzeniem nowych kompozytowych interfejsów graficznych. Od 2012 roku rozwój przekształcił się w system operacyjny ToaruOS, rozwijany przez społeczność zaintersowaną tworzeniem. W obecnej formie system wyposażony jest w kompozytowy menedżer okien, wspiera dynamicznie powiązane pliki wykonywalne w formacie ELF, multitasking, stos graficzny i może uruchamiać Python 3 oraz GCC.
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.
Jako system plików zastosowano ext2. Bootloader wspiera BIOS i EFI. Stos sieciowy pozwala na korzystanie z interfejsu API socketów w stylu systemów BSD i obsługuje interfejsy sieciowe, w tym loopback. Dla ToaruOS przeportowano takie programy jak Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulator Super Nintendo, Bochs i inne. Z własnych aplikacji wyróżnia się edytor kodu Bim, przypominający Vi, który od kilku lat wykorzystywany jest do rozwijania aplikacji specyficznych dla ToaruOS, takich jak menedżer plików, emulator terminala, graficzny panel z obsługą widgetów, menedżer pakietów, a także biblioteki do obsługi obrazów (PNG, JPEG) i czcionek TrueType.
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 ToaruOS:
- W jądrze Misaka dodano funkcjonalność, która pozwoliła zaimplementować użytkowe narzędzia top, strace, dbg, ping i cpuwidget.
- Rozszerzone możliwości biblioteki graficznej, w tym dodano transformacje afinne.
- Udoskonalono działanie frameworku okienkowego.
- Dodano rastrowacz tekstu z obsługą formatu TrueType.
- Dodano bibliotekę do formatowania tekstu z oznaczeniami.
- Udoskonalono bootloader BIOS, w którym rozszerzono wsparcie dla konfiguracji sprzętowych. Przepisano bootloader EFI. Do obu bootloaderów dodano wsparcie edytowania wiersza poleceń jądra.
- Zmodernizowano wygląd panelu. Dodano wsparcie dla ładowanych bibliotek, dynamicznego układu elementów i nowych okienek.
- Przepisano przeglądarkę, do której dodano nowe palety.
- Dodano nową implementację kalkulatora.
- Do standardowej biblioteki dodano wsparcie dla stref czasowych.
- Dodano sterownik dla chipsetu Ensoniq ES1371, emulowanego w VMware.
- W następnej znaczącej wersji 2.1 oczekuje się wsparcia dla urządzeń AHCI, xHCI, USB HID. W gałęzi 2.2 planowane jest wprowadzenie wsparcia dla architektury AArch64.



Źródło: opennet.ru
