„Asterinas“ projektas išleido 0.19 versiją – branduolį, parašytą „Rust“ kalba ir skirtą naudoti bendrosios paskirties operacinėse sistemose. Branduolys teikia su branduoliu suderinamą ABI (taikymo dvejetainių failų sąsają). Linux ir gali būti naudojamas vietoj jo. Lygiagrečiai kuriama „Asterinas NixOS“ distribucija, kuri sujungia „Asterinas“ branduolį su „NixOS“ sistemos aplinka. Projekto kodas kuriamas nuo 2022 m. ir platinamas pagal MPL („Mozilla Public License“).
Šiuo metu branduolyje įdiegta daugiau nei 240 sisteminių iškvietimų. Linux„Asterinas NixOS“ distribucija patvirtinta, kad veikia „Asterinas“ branduolyje su daugiau nei 100 „NixOS“ paketų. Palaikomi paketai: „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“ ir „Codex“.
Branduolys teikia visišką x86-64 architektūros palaikymą, dalinį ARM64, RISC-V 64 ir x86-64 palaikymą su izoliacija, pagrįsta „Intel TDX“, taip pat pradinį „LoongArch 64“ architektūros palaikymą. Prioritetinės taikymo sritys apima sistemas, pagrįstas Linux ABI, tačiau reikalaujantys aukštesnio saugumo lygio. Pavyzdžiui, „Asterinas“ siūloma naudoti kuriant saugią sistemos aplinką. virtualios mašinos, kurio izoliacijai naudojamos tokios technologijos kaip ARM CCA, AMD SEV ir Intel TDX, taip pat pagrindinės sistemos pusėje, kuri užtikrina konteinerių paleidimą.
Siekdamas sumažinti atminties klaidų, kurios yra pagrindinis pavojingiausių pažeidžiamumų šaltinis, tikimybę, „Asterinas“ naudoja „Rust“ kalbą ir ribotą nesaugių blokų naudojimą. Branduolys sukurtas naudojant „framekernel“ architektūrą, kuria bandoma suderinti mikrobranduolių izoliacijos galimybes su monolitinių branduolių efektyvumu.
„Asterinas“ branduolio komponentai yra bendroje adresų erdvėje, o saugumas pasiekiamas logiškai atskiriant saugų kodą nuo potencialiai pažeidžiamo kodo. Branduolys yra padalintas į dvi dalis, abi parašytas „Rust“ kalba: OS Framework ir OS Services. OS Services draudžia naudoti nesaugius blokus, o visos žemo lygio operacijos, kurioms reikalingas kodo vykdymas nesaugiuose blokuose, perkeliamos į OS Framework ir pasiekiamos tik per aukšto lygio API. Visi sistemos iškvietimai, failų sistemos ir tvarkyklės yra įdiegti OS Services lygmeniu ir negali apimti nesaugių blokų.
Sistemos paslaugoms ir branduolio moduliams kurti pateikiamas OSDK (operacinės sistemos kūrimo rinkinys) su „cargo-osdk“ įrankiu, skirtu operacinės sistemos komponentams kurti, kompiliuoti, testuoti ir vykdyti. Kūrėjai taip pat gali pasiekti OSTD (operacinės sistemos standartinės bibliotekos) rinkinį, kuriame yra „Rust“ standartinių bibliotekų („crate std“) leidimas, pritaikytas naudoti operacinės sistemos komponentuose.
Tarp „Asterinas 0.19“ pakeitimų:
- Įdiegta DRM (tiesioginio renderavimo tvarkyklės) posistemė, /dev/dri įrenginys, KMS (branduolio režimo nustatymo) sąsaja ir „režimo nustatymo“ tvarkyklė, leidžiančios paleisti standartinį grafikos steko, pagrįstą „X.Org Server“ ir „Mesa“, vietoj anksčiau naudotos fbdev tvarkyklės, kuri naudoja kadrų buferį.
- Pridėtas AArch64 (ARM64) architektūros palaikymas, kuris dabar yra pagrindinė kūrimo architektūra kartu su x86-64. Įdiegtas antras AArch64 palaikymo lygis, užtikrinantis pagrindines funkcijas, nuolatinį integracijos testavimą ir dalinį testavimo padengimą.
- Toliau buvo dirbama pritaikant „Asterinas“ veikti kaip svečio sistema „Kata“ ir „Confidential“ konteineriuose. Buvo pasiūlyta nauja „Overlayfs“ implementacija, kuri sėkmingai praeina standartinius branduolio failų sistemos testus. Linux ir „xfstests“. Įdiegta nauja prijungimo API sąsaja. Stabilizuotas „virtio-fs“ kodas. Pridėtas protokolų palaikymas.
tiesioginis paleidimas, naudojamas „QEMU“, „Cloud Hypervisor“ ir „Firecracker“. Pagreitintas paleidimo laikas. virtualios mašinos, kurios atmintis yra užšifruota naudojant „Intel TDX“ technologiją. - OSTD (operacinės sistemos standartinės bibliotekos) sistema įgyvendina pagrindinę API, skirtą minimalistiniams hipervizoriams kurti, pagrįstiems „Intel VMX“.
- Pridėta „Rust“ tvarkyklių kūrimo modelio parama. Pridėtas „aster-device“ komponentas, kurio funkcionalumas primena branduolio komponentus. Linux su pagrindiniais primityvais ir abstrakcijomis tvarkyklių kūrimui, bet parašyta Rust kalba be nesaugaus kodo.
- Dabar galima savarankiškai talpinti – dabar galite kurti „Asterinas“ branduolį iš aplinkos su „Asterinas“ branduoliu ir „NixOS“ paketais.
Šaltinis: opennet.ru
