Wydanie systemu operacyjnego Redox OS 0.8 napisanego w języku Rust

Opublikowano wydanie systemu operacyjnego Redox 0.8, opracowanego z wykorzystaniem języka Rust i koncepcji mikrojądra. Rozwój projektu jest rozpowszechniany na wolnej licencji MIT. Do testowania systemu Redox oferowane są wersje demonstracyjne o pojemności 768 MB, a także obrazy z podstawowym środowiskiem graficznym (256 MB) i narzędzia konsoli do systemów serwerowych (256 MB). Zestawy są generowane dla architektury x86_64 i są dostępne dla systemów z UEFI i BIOS. Obraz demonstracyjny, oprócz środowiska graficznego Orbital, zawiera emulator DOSBox, wybrane gry (DOOM, Neverball, Neverputt, sopwith, syobonaction), samouczki, 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 pracy na prawdziwym sprzęcie. Oprócz architektury x86_64 dodano możliwość pracy na 32-bitowych systemach x86 (i686, Pentium II i nowszych). Trwa portowanie na procesor ARM64 (aarch64). Praca na prawdziwym sprzęcie ARM nie jest jeszcze obsługiwana, ale możliwe jest uruchomienie podczas emulacji ARM64 w QEMU. Domyślnie podsystem audio jest włączony i zapewniona jest wstępna obsługa konfiguracji z wieloma monitorami (w systemach z buforem ramki UEFI). Sprzęt obsługiwany przez Redox OS obejmuje układy dźwiękowe AC'97 i Intel HD Audio, wyjście graficzne przez VESA BIOS lub UEFI GOP API, 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 została jeszcze doprowadzona do gotowości (USB działa tylko w QEMU).

Inne innowacje:

  • Połączone obrazy rozruchowe dla systemów BIOS i EFI.
  • Implementacja wywołań systemowych clone i exec przeniesiona do przestrzeni użytkownika.
  • Uproszczony proces pobierania. Wprowadzono program ładowania początkowego, który jest uruchamiany przez jądro i zapewnia dalsze ładowanie plików ELF, takie jak proces init.
  • Dodano eskalowany program, aby umożliwić działanie programów setuid, takich jak sudo.
  • Aby uprościć tworzenie i instalację procesów działających w tle, zaproponowano pakiet redox-daemon crate.
  • System kompilacji został przeprojektowany, w którym stało się możliwe budowanie dla różnych architektur w tym samym drzewie źródłowym. Aby uprościć montaż różnych konfiguracji, zaproponowano skrypt build.sh. Dodano obsługę budowania przy użyciu zestawu narzędzi podmana. Zestaw jądra, programu ładującego i initfs jest ujednolicony z innymi pakietami.
  • Dodano konfigurację demonstracyjną do tworzenia przykładowych programów, które nie są zawarte w podstawowym obrazie rozruchowym ze środowiskiem graficznym.
  • Do podsystemu audiod audio dodano obsługę programowej regulacji 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.
  • Organizacja procesu instalacji została przeprojektowana: bootloader, bootstrap, jądro i initfs znajdują się teraz w katalogu /boot.
  • Jądro uprościło pracę z pamięcią, dodało możliwość manipulowania przestrzeniami adresowymi z poziomu użytkownika.
  • Do powłoki graficznej Orbital dodano obsługę systemów wielomonitorowych, ulepszono przetwarzanie kursora myszy oraz dodano wskaźnik zmiany głośności. Menu posiada możliwość podziału aplikacji na kategorie.

Źródło: opennet.ru

Dodaj komentarz