Asterinas 0.18 projekti väljalaskmine, mis arendab Rusti keeles kirjutatud tuuma, mis on mõeldud kasutamiseks üldotstarbelistes operatsioonisüsteemides. Tuum pakub ABI (rakenduse binaarliidest), mis on ühilduv Linuxi tuumaga ja mida saab kasutada selle asemel. Samal ajal arendatakse Asterinas NixOS-i distributsiooni, mis ühendab Asterinas tuuma NixOS-i süsteemi ümbrusega. Projekti kood levitakse MPL (Mozilla Public License) litsentsi alusel.
Praegu on tuumas implementeeritud umbes 240 Linuxi süsteemikutsungit. Asterinas NixOS-i distributsioonis on Asterinas tuuma peal verifitseeritud üle 100 NixOS-i paketi toimimine. Toetatud paketid hõlmavad: 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.
Ytmes on täielik tugi x86-64 arhitektuurile, osaline tugi RISC-V 64-le ja x86-64 Intel TDX isolatsiooniga, samuti algtase LoongArch 64 arhitektuurile. Peamisteks kasutusvaldkondadeks on süsteemid, mis on seotud Linux ABI-ga, kuid vajavad kõrgemat turvalisuse taset. Näiteks pakutakse Asterinas't kasutada kaitstud süsteemi keskkonna loomisel. virtuaalmasinad, mille isoleerimiseks kasutatakse tehnoloogiaid nagu ARM CCA, AMD SEV ja Intel TDX ning ka host-süsteemi poolt, mis tagab konteinerite käitamise.
Mälu töötamisel tekkivate vigade tõenäosuse vähendamiseks, mis on peamine kõige ohtlikumate haavatavuste allikas, on Asterinas kirjutatud Rust-keeles ja piiratud unsafe-blokkide kasutamise taktikaga. Ytmes on üles ehitatud framekernel arhitektuuri alusel, mille puhul püüti ühendada mikrokerede isoleerimise omadusi monoliitsete ytmete efektiivsusega.
Asterinas tuumikud paiknevad ühises aadressiruumis, kus turvalisus saavutatakse turvalise koodi ja võimalikku turvaga seotud probleeme tekitava koodi loogilise eraldamise tasemel. Südamik on jagatud kaheks osaks, mis on kirjutatud Rustis: OS Framework ja OS Services. OS Services'is on unsafe-blokkide kasutamine keelatud ning kõik madala taseme protseduurid, mis nõuavad koodi käivitamist unsafe-blokkides, on viidud OS Frameworki ja on juurdepääsetavad ainult läbi kõrgetasemelise API. Kõik süsteemi kutsumised, failisüsteemid ja draiverid rakendatakse OS Services tasemel ja ei saa sisaldada unsafe-blokke.
Süsteemi teenuste ja tuumamoodulite arendamiseks on saadaval OSDK (Operating System Development Kit) tööriistakomplekt, mis pakub utiliiti cargo-osdk operatsioonisüsteemi komponentide loomiseks, koostamiseks, testimiseks ja käivitamiseks. Arendajatele on valmistatud OSTD (Operating System Standard Library) raamatukogude komplekt, mis sisaldab Rusti standardraamatukogude (crate std) väljaannet, kohandatud operatsioonisüsteemi komponentide kasutamiseks.
Muudatused versioonis 0.18:
- Asterinas'e käivitamise tagamisel virtuaalmasinate konteinerites, sealhulgas Kata Containers ja Confidential Containers, on rakendatud IPC ja cgroup nimede ruumide, nsfs (/proc/[pid]/ns), cgroups, virtio-fs (ühise juurdepääsu võimaldamiseks host-süsteemi failisüsteemile), virtio-rng (/dev/hwrng juhuks, kui on vajalik entropia pseudojuhuslike numbrite generaatorile) ja vsock (host- ja külgsüsteemide vaheliseks suhtlemiseks) tugi.
- On rakendatud süsteemikõne ptrace ja võimalused kasutajaruumi silumiseks GDB ja strace abil.
- Uus ext2 failisüsteemi teostus on välja pakutud ning NVMe draiver on lisatud. VFS-s on lisatud Dentry (Directory Entry) mehhanism ja lehe vahemälu teostust on ümber tehta.
- Asterinas NixOS distributiivis on võimalik käivitada Codexi, QEMU ja Firefoxi.
- On lisatud süsteemikõned pidfd_getfd, pidfd_send_signal, pivot_root.
- On lisatud algne IPv6 tugi.
- On rakendatud capabilities süsteem, et delegeerida eraldi privileege toimingud.
- On lisatud algne LSM (Linux Security Modules) raamistik.
Allikas: opennet.ru
