La projekto Asterinas publikigis version 0.18, kernon skribitan en Rust kaj desegnitan por uzo en ĝeneraluzeblaj operaciumoj. La kerno provizas ABI-on (Application Binary Interface) kongruan kun la kerno. Linux kaj povas esti uzata anstataŭe. La distribuaĵo Asterinas NixOS, kiu kombinas la kernon Asterinas kun la sistema medio NixOS, estas disvolvata paralele. La kodo de la projekto estas distribuita sub la MPL (Mozilla Public License).
Nuntempe, estas ĉirkaŭ 240 sistemvokoj efektivigitaj en la kerno. LinuxLa distribuaĵo Asterinas NixOS estas kontrolita por funkcii sur la kerno de Asterinas kun pli ol 100 NixOS-pakaĵoj. Subtenataj pakaĵoj inkluzivas: 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, kaj Codex.
La kerno provizas plenan subtenon por la arkitekturo x86-64, partan subtenon por RISC-V 64 kaj x86-64 kun izolado bazita sur Intel TDX, kaj ankaŭ komencan subtenon por la arkitekturo LoongArch 64. Prioritataj aplikaj areoj inkluzivas sistemojn bazitajn sur Linux ABI-oj, sed postulante pli altan nivelon de sekureco. Ekzemple, Asterinas estas proponita por uzo en kreado de sekura sistemmedio. virtualaj maŝinoj, por kies izolado oni uzas teknologiojn kiel ARM CCA, AMD SEV kaj Intel TDX, kaj ankaŭ flanke de la gastiganta sistemo, kio certigas la lanĉon de konteneroj.
Por redukti la probablecon de memoreraroj, la ĉefa fonto de la plej danĝeraj vundeblecoj, Asterinas uzas la lingvon Rust kaj limigitan uzon de nesekuraj blokoj. La kerno estas konstruita uzante la arkitekturon framekernel, kiu provas kombini la izoligajn kapablojn de mikrokernoj kun la efikeco de monolitaj kernoj.
Kernaj komponantoj en Asterinas troviĝas en komuna adresspaco, kaj sekureco estas atingita per logika apartigo de sekura kodo de kodo kiu povus esti vundebla. La kerno estas dividita en du partojn, ambaŭ skribitajn en Rust: OS Framework kaj OS Services. OS Services malpermesas la uzon de nesekuraj blokoj, kaj ĉiuj malaltnivelaj operacioj kiuj postulas kodplenumon en nesekuraj blokoj estas movitaj al la OS Framework kaj alireblaj nur per altnivela API. Ĉiuj sistemvokoj, dosiersistemoj kaj peliloj estas efektivigitaj je la nivelo de OS Services kaj ne povas inkluzivi nesekurajn blokojn.
Por evoluigi sistemajn servojn kaj kernmodulojn, la OSDK (Operating System Development Kit - Ilaro por Operaciuma Disvolviĝo) estas provizita, provizante la ilon cargo-osdk por krei, konstrui, testi kaj funkciigi operaciumajn komponantojn. Programistoj ankaŭ povas uzi la aron OSTD (Operating System Standard Library - Biblioteko por Normoj de Operaciumo), kiu inkluzivas eldonon de la normaj bibliotekoj de Rust (crate std) adaptita por uzo en operaciumaj komponantoj.
Inter la ŝanĝoj en versio 0.18:
- Kiel parto de la laboro por certigi, ke Asterinas funkcias kiel gasta sistemo en Kata Containers kaj Confidential Containers VM-ujoj, subteno estis efektivigita por IPC kaj cgroup-nomspacoj, nsfs (/proc/[pid]/ns), cgroups, virtio-fs (por aliri dosiersistemon kundividitan kun la gastiganta sistemo), virtio-rng (/dev/hwrng por entropio por la pseŭdohazarda nombrogenerilo), kaj vsock (por komunikado inter la gastiga kaj gasta sistemoj).
- Implementis la sistemvokon ptrace kaj kapablojn por sencimigi erarojn en la uzanto-spaco uzante GDB kaj strace.
- Nova efektivigo de la ext2-dosiersistemo estis proponita, kaj NVMe-pelilo estis aldonita. Dentry (Dosieruja Eniro) mekanismo estis aldonita al la VFS, kaj la efektivigo de paĝa kaŝmemoro estis restrukturita.
- La distribuaĵo Asterinas NixOS havas la kapablon ruli Codex, QEMU kaj Firefox.
- Aldonitaj sistemvokoj pidfd_getfd, pidfd_send_signal, pivot_root.
- Aldonita inicialo IPv6-subteno.
- Sistemo de kapabloj estis efektivigita por delegi individuajn privilegiajn operaciojn.
- Aldonita komenca efektivigo de la LSM-kadro (Linux Sekurecaj Moduloj).
fonto: opennet.ru
