Po prawie dwóch latach rozwoju opublikowano wersję systemu operacyjnego Redox 0.9, stworzonego z użyciem języka Rust oraz koncepcji mikrojądra. Rozwój projektu jest udostępniany na podstawie wolnej licencji MIT. Do testowania Redox OS zaproponowano uruchamiane środowiska live dla rzeczywistego sprzętu oraz obrazy systemowe dla maszyn wirtualnych (512 MB i 1,5 GB), przygotowane dla architektur x86_64 i i686.
Obraz demonstracyjny zawiera emulator DOSBox, zestaw gier (DOOM, Neverball, Neverputt, sopwith, syobonaction), programy edukacyjne, odtwarzacz muzyki rodioplay obsługujący formaty FLAC i WAV, przeglądarkę internetową Netsurf, przeglądarkę obrazów, konsolowy edytor tekstu Sodium, menedżer plików, emulator terminala oraz edytor tekstu z projektu COSMIC. Środowisko użytkownika zbudowane jest na bazie własnego interfejsu graficznego Orbital oraz narzędzia OrbTk, które oferuje API podobne do Flutter, React i Redux. Dostępne są biblioteki GUI Slint, Iced i winit.

System operacyjny rozwija się zgodnie z filozofią Unix i czerpie niektóre pomysły z SeL4, Minix i Plan 9. Redox wykorzystuje koncepcję mikrojądra, w którym na poziomie jądra zapewnione jest jedynie zarządzanie interakcjami między procesami oraz zasobami, podczas gdy cała pozostała funkcjonalność została przeniesiona do bibliotek, które mogą być używane zarówno przez jądro, jak i aplikacje użytkownika. Wszystkie sterowniki działają w przestrzeni użytkownika w izolowanych środowiskach sandbox. W celu zapewnienia zgodności z istniejącymi aplikacjami dostępna jest specjalna warstwa POSIX, umożliwiająca uruchamianie wielu programów bez konieczności ich portowania.
Projekt rozwija własny menedżer pakietów, zestaw standardowych narzędzi (binutils, coreutils, netutils, extrautils), powłokę komend ion, standardową bibliotekę C relibc, edytor tekstu podobny do vim sodium, stos sieciowy oraz system plików. Konfiguracja jest ustalana w języku Toml.
Wśród wspieranego sprzętu znajdują się urządzenia wejściowe z interfejsem USB (klawiatury, myszy, touchpady), wyjście grafiki przez API VESA BIOS lub UEFI GOP (sterowniki dla GPU nie są wspierane), chipy muzyczne AC’97 i Intel HD Audio, SATA (AHCI, IDE) oraz NVMe. Wsparcie dla Wi-Fi i urządzeń pamięci z interfejsem USB nie jest jeszcze gotowe. Prace z graficznym środowiskiem przetestowano na laptopach Lenovo IdeaPad Y510P, System76 Galago Pro oraz System76 Lemur Pro. Z pewnymi ograniczeniami zapewniono wsparcie dla laptopów Dell XPS 13, HP Dev One, ASUS X554L, ASUS ROG g55vw, Toshiba Satellite L500 oraz ASUS Eee PC 900. Z systemów ARM wspierany jest Raspberry Pi 3 Model B+.
Główne zmiany:
- Znacząco rozszerzono możliwości zarządzania procesami, wątkami, pamięcią i sygnałami, co doprowadziło do poprawy działania wielu aplikacji. Na przykład, system osiągnął poziom, który pozwala na kompilację prostych programów za pomocą kompilatorów GCC i Rust, chociaż wsparcie dla samodzielnej kompilacji na razie nie zostało osiągnięte.
- Z użytkowego środowiska COSMIC przeniesiono do Redox menedżer plików, edytor tekstu oraz emulator terminala, które działają w trybie graficznym.
- Poprawiono kompatybilność z programami z systemów Linux i BSD. Całkowita liczba portów aplikacji została zwiększona do około 1700. Wśród znaczących osiągnięć znajduje się portowanie serwera HTTP Apache, Simple HTTP Server, RustPython, GNU Make, Lua, Perl 5 oraz edytorów tekstowych GNU Nano i Helix.
- Wprowadzono różnorodne optymalizacje wydajności oraz naprawiono wiele problemów wpływających na stabilność działania. Zwiększono wydajność systemu plików RedoxFS, zarządzania pamięcią, wywołań systemowych i przełączania kontekstu. Zdecydowanie przyspieszono działanie w maszynach wirtualnych.
- W wyświetlaczu serwer W Orbital dodano wsparcie dla bibliotek GUI Slint, Iced i winit. Przez winit w Orbital zaimplementowano możliwość dekoracji okien po stronie klienta, tworzenia ukrytych okien, maksymalizacji okien na cały ekran. Dodano możliwość odtwarzania muzyki i wideo z programów GUI za pomocą podwójnego kliknięcia myszy. Udoskonalono interfejs środowiska pulpitu Orbital.

- Zamiast adresowania przez URL (na przykład do zapisu w logach mogła być używana URL „log://”, a do interakcji sieciowych „tcp://”) wprowadzono tradycyjny format ścieżek plików typowy dla systemów Unix, co pozytywnie wpłynęło na kompatybilność z programami i bibliotekami POSIX/Linux.
- Zmodernizowano implementację standardowej biblioteki C Relibc, która oprócz libm jest teraz całkowicie napisana w Rust. Rozszerzono wsparcie dla funkcji POSIX. Zaproponowano inicjatywy mające na celu zapewnienie stabilnego ABI dla przestrzeni użytkownika. Wszystkie komponenty systemowe zostały przetłumaczone z redox_syscall na libredox.
- Udoskonalono działanie bootloadera dla UEFI.
- Znacząco poprawiono wsparcie dla architektury ARM64 (Aarch64) oraz zapewniono częściową zgodność z płytą Raspberry Pi 3B+.
- Rozszerzono możliwości sterownika Contain do izolowanego uruchamiania aplikacji. Dodano demonstrację użycia sterownika Contain (desktop-contain.toml).
- Poprawiono sterowniki dla PCI i PCIe. Dodano sterowniki VirtIO.
- Rozszerzono możliwości systemu budowy.

Źródło: opennet.ru

