Opublikowano wydanie systemu operacyjnego Redox 0.8, opracowanego przy użyciu języka Rust i koncepcji mikrojądra. Rozwój projektu jest dystrybuowany na podstawie bezpłatnej licencji MIT. Do testowania Redox OS oferowane są wersje demonstracyjne o rozmiarze 768 MB, a także obrazy z podstawowym środowiskiem graficznym (256 MB) i narzędziami konsoli dla systemów serwerowych (256 MB). Wersje są generowane dla architektury x86_64 i są dostępne dla systemów z UEFI i BIOS-em. Oprócz środowiska graficznego Orbital, obraz demonstracyjny zawiera emulator DOSBox, wybór gier (DOOM, Neverball, Neverputt, sopwith, syobonaction), programy edukacyjne, odtwarzacz muzyki rodioplay i edytor tekstu Sodium.
System operacyjny rozwija się zgodnie z filozofią Unix i zapożycza niektóre pomysły z SeL4, Minix i Plan 9. Redox wykorzystuje koncepcję mikrojądra, w której na poziomie jądra zapewniona jest tylko komunikacja między procesami i zarządzanie zasobami, a wszystkie inne funkcje są umieszczone w bibliotekach, z których można korzystać zarówno w jądrze, jak i aplikacjach użytkownika. Wszystkie sterowniki działają w przestrzeni użytkownika w izolowanych środowiskach piaskownicy. Aby zapewnić kompatybilność z istniejącymi aplikacjami, dostarczono specjalną warstwę POSIX, która umożliwia uruchamianie wielu programów bez przenoszenia.
System stosuje zasadę „wszystko jest adresem URL”. Na przykład adres URL „log://” może być używany do rejestrowania, „bus://” do komunikacji między procesami, „tcp://” do komunikacji sieciowej i tak dalej. Moduły, które można zaimplementować jako sterowniki, rozszerzenia jądra i niestandardowe aplikacje, mogą rejestrować własne procedury obsługi adresów URL, na przykład można napisać moduł dostępu we/wy i powiązać go z adresem URL „port_io://”, po czym możesz go użyć, aby uzyskać dostęp do portu 60, otwierając adres URL „port_io://60”.
Środowisko użytkownika w Redox jest zbudowane wokół własnej powłoki graficznej Orbital (nie mylić z inną powłoką Orbital, która używa Qt i Wayland) oraz zestawu narzędzi OrbTk, który zapewnia API podobne do Flutter, React i Redux. Netsurf jest używany jako przeglądarka internetowa. Projekt rozwija również własnego menedżera pakietów, zestaw standardowych narzędzi (binutils, coreutils, netutils, extrautils), powłokę poleceń ion, standardową bibliotekę C relibc, edytor tekstu podobny do vima sodu, stos sieciowy i plik system. Konfiguracja jest ustawiona w języku Toml.
Nowa wersja kontynuuje prace nad zapewnieniem działania na prawdziwym sprzęcie. Oprócz architektury x86_64 dodano możliwość pracy na 32-bitowych systemach x86 (i686, Pentium II i nowsze). Przenoszenie na procesory ARM64 (aarch64) jest w toku. Działanie na prawdziwym sprzęcie ARM nie jest jeszcze obsługiwane, ale ładowanie jest możliwe podczas emulacji ARM64 w QEMU. Podsystem dźwiękowy jest domyślnie aktywowany i zapewniono początkowe wsparcie dla konfiguracji wielomonitorowych (w systemach z buforem ramki UEFI). Sprzęt obsługiwany w Redox OS obejmuje układy dźwiękowe AC'97 i Intel HD Audio, wyjście graficzne za pośrednictwem VESA BIOS API lub UEFI GOP, Ethernet (Intel 1/10 Gigabit Ethernet, Realtek RTL8168), urządzenia wejściowe (klawiatury, myszy, touchpady), SATA (AHCI, IDE) i NVMe. Obsługa Wi-Fi i USB nie jest jeszcze gotowa (USB działa tylko w QEMU).
Inne innowacje:
- Obrazy rozruchowe dla systemów BIOS i EFI zostały połączone.
- Implementację wywołań systemowych clone i exec przeniesiono do przestrzeni użytkownika.
- Proces rozruchu został uproszczony. Zaimplementowano program bootstrap, który jest uruchamiany przez jądro i zapewnia dalsze ładowanie plików ELF, takich jak proces init.
- Dodano rozszerzenie umożliwiające działanie programów setuid, takich jak sudo.
- Aby uprościć tworzenie i instalację procesów działających w tle, zaproponowano pakiet crate redox-daemon.
- Przeprojektowano system kompilacji, który teraz umożliwia kompilację dla różnych architektur w jednym drzewie źródłowym. Aby uprościć kompilację różnych konfiguracji, zaproponowano skrypt build.sh. Dodano obsługę kompilacji przy użyciu zestawu narzędzi podman. Kompilacja jądra, bootloadera i initfs została ujednolicona z innymi pakietami.
- Dodano konfigurację demonstracyjną do budowania przykładowych programów, które nie są zawarte w podstawowym obrazie rozruchowym, ze środowiskiem graficznym.
- Podsystem dźwiękowy Audiod został zaktualizowany o obsługę programowej kontroli głośności.
- Dodano sterownik dla układów dźwiękowych opartych na AC'97. Ulepszony sterownik dla układów Intel HD Audio.
- Dodano sterownik dla kontrolerów IDE.
- Ulepszona obsługa dysków NVMe.
- Ulepszone sterowniki PCI, PS/2, RTL8168, USB HID, VESA.
- Przeprojektowano organizację procesu instalacji: program rozruchowy, bootstrap, jądro i initfs znajdują się teraz w katalogu /boot.
- Jądro uprościło obsługę pamięci i dodało możliwość manipulowania przestrzeniami adresowymi z poziomu użytkownika.
- Orbital graphical shell obsługuje teraz systemy multi-monitorowe, poprawia obsługę kursora myszy i dodaje wskaźnik zmiany głośności. Menu pozwala teraz dzielić aplikacje na kategorie.
Źródło: opennet.ru
