Çinli bir proqramçı qrup Asterinas nüvəsini inkişaf etdirir, bu nüvə Rust dilində yazılmışdır və ümumi məqsədli əməliyyat sistemlərində istifadə olunması üçün nəzərdə tutulmuşdur. Daha əvvəl hazırlanmış sistem komponentləri ilə inteqrasiyanı asanlaşdırmaq məqsədilə nüvə, Linux nüvəsi ilə uyğun olan ABI (Application Binary Interface) təqdim edir və bunun yerinə istifadə oluna bilər. Layihənin kodu MPL (Mozilla Public License) lisenziyası ilə yayılır.
Layihə 2022-ci ilin payızından bəri inkişaf edir və bu il geniş istifadə üçün uyğun bir səviyyəyə çatmağı planlaşdırır virtual maşınlarda x86-64 arxitekturası ilə. Gələn ildən etibarən əsas diqqət avadanlıq və digər CPU arxitekturalarının dəstəklənməsinə yönəldiləcək. Prioritet tətbiq sahələri arasında Linux ABI-yə bağlı sistemlər ancaq daha yüksək təhlükəsizlik səviyyəsi tələb edənlər göstərilir. Məsələn, Asterinas daha mühafizəkar sistem mühitlərinin formalaşdırılması üçün təklif edilir virtual maşınlar, bu mühitlərin izolyasiyası üçün ARM CCA, AMD SEV və Intel TDX kimi texnologiyalar istifadə olunur, həmçinin konteynerlərin icrasını təmin edən ev sahibi sistem tərəfində.
Yaddaşla işləyərkən səhv yaranma ehtimalını azaltmaq üçün, ən təhlükəli zəifliklərin əsas mənbəyi olan Asterinas yazılarkən Rust dili və məhdud istifadə strategiyası olan unsafe bloklardan istifadəyə müraciət olunub. Nüvə, izolyasiya mikro nüvələrinin imkanlarını monolit nüvələrinin effektivliyi ilə birləşdirməyə çalışdıqları framekernel arxitekturasında qurulmuşdur.
Asterinasda nüvə komponentləri ümumi ünvan sahəsində yerləşir və təhlükəsizlik, təhlükəli kod və təhlükəsizlik problemləri yarada biləcək kod arasında məntiqi ayrılıq səviyyəsində əldə edilir. Nüvə, Rustda yazılmış iki hissəyə bölünür: OS Framework və OS Services. OS Services-də unsafe blokların istifadə edilməsi qadağandır, bütün aşağı səviyyəli əməliyyatlar isə OS Framework-da həyata keçirilir və yalnız yüksək səviyyəli API vasitəsilə əldə edilə bilər. Bütün sistem çağırışları, fayl sistemləri və sürücülər OS Services səviyyəsində həyata keçirilir və unsafe blokları daxil edə bilməz.
Sistem xidmətləri və nüvə modulları inkişaf etdirərkən OSDK (Operating System Development Kit) alətini istifadə etmək tövsiyə olunur, bu, əməliyyat sisteminin komponentlərini yaratmaq, yığmaq, test etmək və işə salmaq üçün cargo-osdk vasitəsini təqdim edir. Proqramçılar üçün OSTD (Operating System Standard Library) adlanan standart kitabxanaların Rust (crate std) redaksiyası ilə, əməliyyat sisteminin komponentlərində istifadə üçün adaptasiyası təqdim olunur.
Mənbə: opennet.ru
