Projekt Asterinas je izdal različico 0.19, jedro, napisano v Rustu in zasnovano za uporabo v splošnih operacijskih sistemih. Jedro ponuja ABI (Application Binary Interface), ki je združljiv z jedrom. Linux in se lahko namesto tega uporablja. Vzporedno se razvija tudi distribucija Asterinas NixOS, ki združuje jedro Asterinas s sistemskim okoljem NixOS. Koda projekta je v razvoju od leta 2022 in je distribuirana pod licenco MPL (Mozilla Public License).
Trenutno je v jedru implementiranih več kot 240 sistemskih klicev. LinuxDistribucija Asterinas NixOS preverjeno deluje na jedru Asterinas z več kot 100 paketi NixOS. Podprti paketi vključujejo: 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 in Codex.
Jedro zagotavlja polno podporo za arhitekturo x86-64, delno podporo za ARM64, RISC-V 64 in x86-64 z izolacijo na osnovi Intel TDX, kot tudi začetno podporo za arhitekturo LoongArch 64. Prednostna področja uporabe vključujejo sisteme, ki temeljijo na Linux ABI-ji, vendar zahtevajo višjo raven varnosti. Na primer, Asterinas je predlagan za uporabo pri ustvarjanju varnega sistemskega okolja. virtualni stroji, za izolacijo katerih se uporabljajo tehnologije, kot so ARM CCA, AMD SEV in Intel TDX, ter na strani gostiteljskega sistema, ki zagotavlja zagon kontejnerjev.
Da bi zmanjšali verjetnost napak v pomnilniku, ki so glavni vir najnevarnejših ranljivosti, Asterinas uporablja jezik Rust in omejeno uporabo nevarnih blokov. Jedro je zgrajeno z arhitekturo framekernel, ki poskuša združiti izolacijske zmogljivosti mikrojeder z učinkovitostjo monolitnih jeder.
Jedrne komponente v Asterinasu se nahajajo v skupnem naslovnem prostoru, varnost pa je dosežena z logično ločitvijo varne kode od kode, ki bi lahko bila potencialno ranljiva. Jedro je razdeljeno na dva dela, oba napisana v Rustu: OS Framework in OS Services. OS Services prepoveduje uporabo nevarnih blokov, vse nizkonivojske operacije, ki zahtevajo izvajanje kode v nevarnih blokih, pa so premaknjene v OS Framework in dostopne le prek visokonivojskega API-ja. Vsi sistemski klici, datotečni sistemi in gonilniki so implementirani na ravni OS Services in ne morejo vključevati nevarnih blokov.
Za razvoj sistemskih storitev in modulov jedra je na voljo komplet OSDK (Operating System Development Kit), ki ponuja pripomoček cargo-osdk za ustvarjanje, gradnjo, testiranje in zagon komponent operacijskega sistema. Razvijalci lahko dostopajo tudi do nabora OSTD (Operating System Standard Library), ki vključuje izdajo standardnih knjižnic Rust (crate std), prilagojenih za uporabo v komponentah operacijskega sistema.
Med spremembami v Asterinasu 0.19:
- Implementirani so podsistem DRM (Direct Rendering Manager), naprava /dev/dri, vmesnik KMS (kernel mode setting) in gonilnik »modesetting«, ki omogočajo zagon standardnega grafičnega sklada, ki temelji na strežniku X.Org in Mesa, namesto prej uporabljenega gonilnika fbdev, ki uporablja framebuffer.
- Dodana je bila podpora za arhitekturo AArch64 (ARM64), ki zdaj služi kot primarna razvojna arhitektura poleg x86-64. Za AArch64 je bila uvedena druga raven podpore, ki zagotavlja osnovno funkcionalnost, neprekinjeno integracijsko testiranje in delno pokritost s testiranjem.
- Nadaljevalo se je delo na prilagajanju sistema Asterinas za delovanje kot gostujoči sistem v vsebnikih Kata in Confidential. Predlagana je bila nova implementacija Overlayfs, ki uspešno prestane standardne testne pakete datotečnega sistema jedra. Linux in xfstests. Implementiran je bil nov API za priklop. Koda virtio-fs je bila stabilizirana. Dodana je bila podpora za protokol.
neposredni zagon, ki se uporablja v QEMU, Cloud Hypervisor in Firecracker. Časi zagona so bili skrajšani. virtualni stroji, katerega pomnilnik je šifriran s tehnologijo Intel TDX. - Okvir OSTD (standardna knjižnica operacijskih sistemov) izvaja osnovni API za ustvarjanje minimalističnih hipervizorjev, ki temeljijo na Intel VMX.
- Dodana je podpora za model razvoja gonilnikov Rust. Dodana je bila komponenta aster-device s funkcionalnostjo, ki spominja na komponente jedra. Linux z osnovnimi primitivi in abstrakcijami za razvoj gonilnikov, vendar napisano v Rustu brez nevarne kode.
- Samostojno gostovanje je zdaj mogoče - jedro Asterinas lahko zdaj zgradite iz okolja z jedrom Asterinas in paketi NixOS.
Vir: opennet.ru
