Projekt Asterinas rozwija jądro w języku Rust, kompatybilne z Linux.

Grupa deweloperów z Chin rozwija jądro Asterinas, napisane w języku Rust, przeznaczone do użycia w systemach operacyjnych ogólnego przeznaczenia. Aby uprościć integrację z już stworzonymi komponentami systemowymi, jądro oferuje ABI (Application Binary Interface) zgodne z jądrem Linux, które może być używane zamiast niego. Kod projektu jest rozpowszechniany na mocy licencji MPL (Mozilla Public License).

Projekt rozwija się od jesieni 2022 roku i ma na celu osiągnięcie poziomu, który będzie odpowiedni do szerokiego użytku jeszcze w tym roku w maszynach wirtualnych architekturze x86-64. Od przyszłego roku planuje się skoncentrować na implementacji wsparcia dla sprzętu i innych architektur CPU. Wśród priorytetowych obszarów zastosowań wymieniane są systemy, które korzystają z Linux ABI, ale wymagają wyższego poziomu bezpieczeństwa. Na przykład, Asterinas ma być wykorzystywane do tworzenia środowiska systemowego dla zabezpieczonych maszyn wirtualnych, do izolacji których wykorzystuje się takie technologie, jak ARM CCA, AMD SEV i Intel TDX, oraz po stronie systemu gospodarza, zapewniającego uruchamianie kontenerów.

Aby zmniejszyć prawdopodobieństwo wystąpienia błędów podczas pracy z pamięcią, które są głównym źródłem najniebezpieczniejszych podatności, w programowaniu Asterinas zastosowano język Rust oraz taktykę ograniczonego używania bloków unsafe. Jądro zbudowane jest z wykorzystaniem architektury framekernel, w której deweloperzy starali się połączyć możliwości izolacji mikrojąder z wydajnością jąder monolitycznych.

Komponenty jądra w Asterinas są umieszczane w wspólnej przestrzeni adresowej, a bezpieczeństwo osiągane jest na poziomie logicznego podziału bezpiecznego kodu i kodu, w którym nie można wykluczyć pojawienia się problemów z bezpieczeństwem. Jądro jest podzielone na dwie części, napisane w Rust: OS Framework i OS Services. W OS Services zabronione jest stosowanie bloków unsafe, a wszystkie niskopoziomowe operacje wymagające wykonania kodu w blokach unsafe zostały przeniesione do OS Framework i są dostępne tylko przez wysokopoziomowe API. Wszystkie wywołania systemowe, systemy plików i sterowniki są realizowane na poziomie OS Services i nie mogą zawierać bloków unsafe.

Podczas tworzenia systemowych serwisów i modułów jądra zaleca się korzystanie z narzędzi OSDK (Operating System Development Kit), które oferuje narzędzie cargo-osdk do tworzenia, kompilowania, testowania i uruchamiania komponentów systemu operacyjnego. Dla programistów przygotowano zestaw bibliotek OSTD (Operating System Standard Library), stanowiący redakcję standardowych bibliotek Rust (crate std), dostosowaną do użycia w komponentach systemu operacyjnego.

Ź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