Avalikustatud on projekti Asterinas 0.19 versioon, mis arendab tuuma, mis on kirjutatud Rusti keeles ja mõeldud kasutamiseks üldotstarbelistes operatsioonisüsteemides. Tuum pakub ABI-d (Application Binary Interface), mis on ühilduv Linuxi tuumaga ja mida saab kasutada selle asemel. Samal ajal areneb distributsioon Asterinas NixOS, mis ühendab Asterinas tuuma NixOS süsteemikeskkonnaga. Projekti kood on arenenud alates 2022. aastast ning seda jaotatakse MPL-i (Mozilla Public License) alusel.
Praegu on tuumas rakendatud üle 240 Linuxi süsteemikutsungit. Asterinas NixOS distributsioonis on Asterinas tuuma peal verifitseeritud rohkem kui 100 NixOS paketti. Toetatud pakettide hulka kuuluvad: 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 ja Codex.
Tuum tagab täieliku toetuse x86-64 arhitehtuurile, osalise toetuse ARM64, RISC-V 64 ja x86-64 Intel TDX-isolatsiooniga, samuti algse toe LoongArch 64 arhitektuurile. Prioriteetseid rakendusi nimetatakse Linux ABI-süsteemideks, kuid mis nõuavad kõrgemat turvataset. Näiteks soovitatakse Asterinast kasutada kaitstud süsteemikeskkondade loomisel. virtuaalmasinate, mille isolatsiooniks kasutatakse selliseid tehnoloogiaid nagu ARM CCA, AMD SEV ja Intel TDX, samuti host-süsteemi poolel, mis tagab konteinerite käivitamise.
Mälu haldamise vigade tõenäosuse vähendamiseks, mis on peamine kõige ohtlikumate haavatavuste allikas, kasutati Asterinas'e arendamisel Rust keelt ja piiratud unsafe-plokkide kasutamise taktikat. Tuum on üles ehitatud framekernel arhitektuurile, mis püüab ühendada mikrotuuma isolatsioonivõimalused monoliitsete tuumade efektiivsusega.
Asterinas's saadud tuuma koostisosad asuvad ühises aadressiruumi, samas kui turvalisus saavutatakse turvakaode ja mitte-turvalise koodi loogilise eraldamise tasandil. Tuum on jagatud kaheks osaks, mis on kirjutatud Rust'is: OS Framework ja OS Services. OS Services'is on unsafe-plokkide kasutamine keelatud ning kõik madalama taseme toimingud, mis nõuavad koodi teostamist unsafe-plokkides, on viidud OS Framework'i ja saadaval ainult kõrgema taseme API kaudu. Kõik süsteemikutsungid, failisüsteemid ja draiverid teostatakse OS Services tasemel ning ei tohi sisaldada unsafe-plokke.
Süsteemiteenuste ja tuumamoodulite arendamiseks on saadaval OSDK (Operating System Development Kit) tööriistakomplekt, mis pakub utiliiti cargo-osdk operatsioonisüsteemi komponentide loomiseks, kogumiseks, testimiseks ja käivitamiseks. Arendajatele on ette valmistatud OSTD (Operating System Standard Library) raamatukogude komplekt, mis sisaldab Rusti standardraamatukogude (crate std) redaktsiooni, mis on kohandatud operatsioonisüsteemi komponentide kasutamiseks.
Asterinas 0.19 versiooni muudatuste hulka kuuluvad:
- Rakendatud on DRM (Direct Rendering Manager) alamsüsteem, seade /dev/dri, KMS (kernel mode setting) liides ja 'modesetting' draiver, mis on võimaldanud käivitada X.Org Serveri ja Mesa põhjalikku graafikarakendust, asendades eelnevalt kasutatud fbdev draiveri, mis kasutas raamivaatet.
- Lisatud on AArch64 (ARM64) arhitektuuri tugi, mis on nüüd peamine arhitektuur arenduse käigus, koos x86-64-ga. AArch64 jaoks on ellu viidud teise taseme tugi, mis hõlmab põhifunktsionaalsuse toimimist, pideva integreerimise süsteemis kontrollimist ja osalist katvust testide kaudu.
- Asterinas'i kohandamise töö jätkub, et seda saaks käitada virtuaalmasinate konteinerites, nagu Kata Containers ja Confidential Containers. Paketitud on uus Overlayfs'i rakendus, mis läbib edukalt kernel Linuxi FS standardset testikomplekti ja xfstests. Uus mounter API on rakendatud. virtio-fs'i kood on stabiliseeritud. Toetatakse protokolli
direct-boot, mida kasutatakse QEMU, Cloud Hypervisor ja Firecracker'is. Käivitamine on kiirenenud virtuaalmasinaid, mille mälu on krüpteeritud Intel TDX tehnoloogia abil. - OSTD (Operating System Standard Library) raamis on rakendatud baas-API minimalistlike hüperviisorite loomiseks, mis põhinevad Intel VMX-il.
- Toetatakse Rusti keeles kirjutatud draiverite arenduse mudelit. Lisatud on komponent aster-device, mille funktsionaalsus sarnaneb Linuxi tuumkomponentidega, pakkudes baasiprimitiive ja -abstraktsioone draiverite arendamiseks, kuid kirjutatud Rustis ilma unsafe-koodita.
- On võimalik teostada isekogumist (self-hosting) - nüüd on Asterinas'i tuuma ja NixOS'i paketiga keskkonnast võimalik Asterinas'i tuuma kokku panna.
Allikas: opennet.ru
