Release of the Redox OS 0.7 operating system, written in Rust

Po półtorarocznych pracach nad rozwojem opublikowano wersję systemu operacyjnego Redox 0.7, stworzonego z wykorzystaniem języka Rust oraz koncepcji mikrojądra. Materiały projektu są rozpowszechniane na licencji MIT. Dla testowania Redox OS dostępne są obrazy instalacyjne i Live, o rozmiarze 75 MB. Kompilacje są przygotowane dla architektury x86_64 i dostępne dla systemów z UEFI oraz BIOS.

Przy przygotowywaniu nowej wersji główną uwagę poświęcono zapewnieniu działania na rzeczywistym sprzęcie. Główne innowacje:

  • Całkowicie przepisano bootloader, w którym zharmonizowano i przeważnie napisano w Rust kod do ładowania na systemach z BIOS i UEFI. Zmiana bootloadera pozwoliła znacznie poszerzyć zakres obsługiwanego sprzętu.
  • W jądrze, oprócz poprawy błędów, przeprowadzono prace nad zwiększeniem wydajności i rozszerzeniem wsparcia dla sprzętu. Specyficzne dla procesora zmienne dostosowano do wykorzystania rejestru GS. Zapewniono odzwierciedlenie (mapowanie) całej fizycznej pamięci, zaniechano używania rekurencyjnych stron pamięci. Kod asemblera w inline-instalacjach przepisano w celu poprawy kompatybilności z przyszłymi wydaniami kompilatora.
  • Dodano wstępne wsparcie dla architektury AArch64.
  • Przejście na przetwarzanie wszystkich ścieżek plików w kodowaniu UTF-8.
  • Kod do pracy z ACPI AML (ACPI Machine Language) Specification – uefi.org przeniesiono z jądra do procesu w tle acpid, wykonywanego w przestrzeni użytkownika.
  • Zawartość Initfs przeniesiono do nowego pliku, co uprościło tworzenie pakietów.
  • System plików RedoxFS został przepisywany i przeszły na użycie mechanizmu CoW (Copy-on-Write), co oznacza, że zmiany nie nadpisują danych, lecz są zapisywane w nowym miejscu, co znacząco zwiększyło niezawodność. Wśród nowych funkcji RedoxFS wyróżnia się wsparcie dla transakcyjnych aktualizacji, szyfrowania danych przy użyciu algorytmu AES, a także zapewnienie danych i metadanych cyfrowymi podpisami. Zapewniono współdzielenie kodu FS w systemie i bootloaderze.
  • Kontynuowane są ulepszenia standardowej biblioteki C Relibc, która może działać nie tylko w Redox, ale także w dystrybucjach opartych na jądrze Linux. Wprowadzone zmiany uprościły przenoszenie różnych programów do Redox i rozwiązały problemy z wieloma programami i bibliotekami napisanymi w języku C.
  • Przygotowano wersję kompilatora rustc, która może uruchamiać się w Redox. Wśród pozostałych zadań wyróżnia się optymalizacja wydajności oraz dostosowanie menedżera pakietów cargo do pracy w środowisku Redox.

Release of the Redox OS 0.7 operating system, written in Rust

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.

W systemie stosuje się zasadę «wszystko jest URL». Na przykład, do zapisywania w logu można używać URL «log://», do interakcji między procesami «bus://», do komunikacji sieciowej «tcp://» itp. Moduły, które mogą być realizowane w formie sterowników, rozszerzeń jądra i aplikacji użytkowych, mogą rejestrować swoje obsługiwacze URL, na przykład można napisać moduł do obsługi portów wejścia/wyjścia i powiązać go z URL «port_io://», po czym można go użyć do dostępu do portu 60 poprzez otwarcie URL «port_io://60».

Środowisko użytkownika w Redox zbudowane jest na bazie własnej powłoki graficznej Orbital (nie mylić z inną powłoką Orbital, która używa Qt i Wayland) oraz toolkit’a OrbTk, który oferuje API podobne do Flutter, React i Redux. Jako przeglądarka internetowa stosowany jest Netsurf. Projekt rozwija również 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 określana w języku Toml.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster