Az Asterinas projekt kiadta a 0.19-es verziót, egy Rust nyelven írt kernelt, amelyet általános célú operációs rendszerekben való használatra terveztek. A kernel egy ABI-t (Application Binary Interface) biztosít, amely kompatibilis a kernellel. Linux és használható helyette. Az Asterinas NixOS disztribúció, amely az Asterinas kernelt a NixOS rendszerkörnyezettel ötvözi, párhuzamosan fejlesztés alatt áll. A projekt kódja 2022 óta fejlesztés alatt áll, és MPL (Mozilla Public License) licenc alatt kerül terjesztésre.
Jelenleg több mint 240 rendszerhívás van implementálva a kernelben. LinuxAz Asterinas NixOS disztribúció igazoltan fut az Asterinas kernelen, több mint 100 NixOS csomaggal. A támogatott csomagok a következők: Xfce, Firefox, bash, systemd, Podman, QEMU, rsync, Apache httpd, nginx, SQLite, Redis, Clang, GCC, Go, Lua, Node.js, OpenJDK, Perl, PHP, Python, Ruby, Rust, Git, FFmpeg, PyTorch, TensorFlow, Ollama és Codex.
A kernel teljes mértékben támogatja az x86-64 architektúrát, részlegesen támogatja az ARM64, RISC-V 64 és az Intel TDX-en alapuló izolációval ellátott x86-64 architektúrákat, valamint kezdeti támogatást nyújt a LoongArch 64 architektúrához. A prioritást élvező alkalmazási területek közé tartoznak a következőkön alapuló rendszerek: Linux ABI-k, de magasabb szintű biztonságot igényelnek. Például az Asterinas használatát javasolják egy biztonságos rendszerkörnyezet létrehozásához. virtuális gépek, amelynek izolálására olyan technológiákat használnak, mint az ARM CCA, az AMD SEV és az Intel TDX, valamint a gazdagép oldalán, amely biztosítja a konténerek elindítását.
A memóriahibák valószínűségének csökkentése érdekében, amelyek a legveszélyesebb sebezhetőségek fő forrását jelentik, az Asterinas a Rust nyelvet és a nem biztonságos blokkok korlátozott használatát használja. A kernel a framekernel architektúrával épül fel, amely a mikrokernelek izolációs képességeit a monolitikus kernelek hatékonyságával ötvözi.
Az Asterinas kernel komponensei egy megosztott címtartományban találhatók, és a biztonságot a biztonságos kód és a potenciálisan sebezhető kód logikai elválasztásával érik el. A kernel két részre oszlik, mindkettő Rust nyelven íródott: OS Framework és OS Services. Az OS Services tiltja a nem biztonságos blokkok használatát, és minden olyan alacsony szintű művelet, amely kódfuttatást igényel a nem biztonságos blokkokban, átkerül az OS Frameworkbe, és csak egy magas szintű API-n keresztül érhető el. Minden rendszerhívás, fájlrendszer és illesztőprogram az OS Services szintjén van megvalósítva, és nem tartalmazhatnak nem biztonságos blokkokat.
Rendszerszolgáltatások és kernel modulok fejlesztéséhez az OSDK (Operációs Rendszer Fejlesztői Készlet) áll rendelkezésre, amely a cargo-osdk segédprogramot biztosítja az operációs rendszer komponenseinek létrehozásához, fordításához, teszteléséhez és futtatásához. A fejlesztők hozzáférhetnek az OSTD (Operációs Rendszer Standard Könyvtár) készlethez is, amely tartalmazza a Rust szabványkönyvtárak (crate std) egy kiadását, az operációs rendszer komponenseiben való használatra adaptálva.
Az Asterinas 0.19-ben bekövetkezett változások között szerepel:
- Megvalósították a DRM (Direct Rendering Manager) alrendszert, a /dev/dri eszközt, a KMS (kernel mód beállítás) interfészt és a "modesetting" illesztőprogramot, lehetővé téve egy szabványos, X.Org Server és Mesa alapú grafikus verem elindítását a korábban használt, framebuffert használó fbdev illesztőprogram helyett.
- Hozzáadtuk az AArch64 (ARM64) architektúra támogatását, amely mostantól az x86-64 mellett az elsődleges fejlesztési architektúraként szolgál. Az AArch64 támogatásának második szintje valósult meg, biztosítva az alapvető funkciókat, a folyamatos integrációs tesztelést és a részleges tesztlefedettséget.
- Folytatódott az Asterinas vendégrendszerként való futtatásának adaptálása Kata Containers és Confidential Containers környezetben. Javasoltak egy új Overlayfs implementációt, amely sikeresen megfelel a szabványos kernel fájlrendszer tesztcsomagokon. Linux és xfstests. Új csatolási API került implementálásra. A virtio-fs kód stabilizálásra került. Hozzáadták a protokoll-támogatást.
direct-boot, amelyet a QEMU, a Cloud Hypervisor és a Firecracker használnak. A rendszerindítási idők felgyorsultak. virtuális gépek, amelynek memóriája Intel TDX technológiával titkosított. - Az OSTD (Operációs Rendszer Szabványos Könyvtár) keretrendszer egy alapvető API-t valósít meg minimalista hipervizorok létrehozásához az Intel VMX alapján.
- Hozzáadott támogatás a Rust illesztőprogram-fejlesztési modellhez. Hozzáadott egy aster-device komponenst, amelynek funkcionalitása a kernel komponensekre emlékeztet. Linux alapvető primitívekkel és absztrakciókkal a driverfejlesztéshez, de Rustban írva, nem biztonságos kód nélkül.
- Mostantól lehetséges a saját tárhely használata – az Asterinas kernelt mostantól egy olyan környezetből építheted fel, amely tartalmazza az Asterinas kernelt és a NixOS csomagokat.
Forrás: opennet.ru
