Projekti Asterinas 0.18 është lançuar, i cili zhvillon bërthamën e shkruar në gjuhën Rust dhe është e destinuar për t'u përdorur në sisteme operative të qëllimeve të përgjithshme. Bërthama ofron një ABI (Application Binary Interface), e cila është e përputhshme me bërthamën Linux dhe mund të përdoret si një zëvendësim për të. Paralelisht, distribuimi Asterinas NixOS po zhvillohet, që kombinon bërthamën Asterinas me ambientin sistemik NixOS. Kodi i projektit shpërndahet nën licencën MPL (Mozilla Public License).
Aktualisht, bërthama implementon rreth 240 thirrje sistemike të Linux. Në distribuimin Asterinas NixOS, është verifikuar funksionimi mbi bërthamën Asterinas të më shumë se 100 pakove nga NixOS. Ndër paketat e mbështetura janë: 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 dhe Codex.
Bërthama siguron mbështetje të plotë për arkitekturën x86-64, mbështetje të pjesshme për RISC-V 64 dhe x86-64 me izolim të bazuar në Intel TDX, si dhe mbështetje fillestare për arkitekturën LoongArch 64. Njëra nga fushat prioritare të përdorimit përmend sistemet që janë të lidhura me Linux ABI, por kërkojnë një nivel më të lartë mbrojtjeje. Për shembull, Asterinas rekomandohet për të formuar një ambient sistemik të mbrojtur. makinat virtuale, për izolimin e të cilave përdoren teknologji si ARM CCA, AMD SEV dhe Intel TDX, si dhe në anën e sistemit pritës, i cili siguron ekzekutimin e konteinerëve.
Për të reduktuar probabilitetin e shfaqjes së gabimeve gjatë punës me memorie, që janë burimi kryesor i vulnerabiliteteve më të rrezikshme, në shkruarjen e Asterinas është përdorur gjuha Rust dhe taktika e përdorimit të kufizuar të bllokimeve unsafe. Bërthama është ndërtuar duke përdorur arkitekturën framekernel, në të cilën është përpjekur të kombinohen mundësitë e izolimit të mikro-bërthamave me efikasitetin e bërthamave monolite.
Komponentët e bërthamës në Asterinas vendosen në një hapësirë adresash të përbashkët, ndërsa siguria arrihet në nivelin e ndarjes logjike të kodit të sigurt dhe kodit, në të cilin nuk përjashtohet ndodhia e problemeve me sigurinë. Bërthama është e ndarë në dy pjesë, të shkruara në Rust: OS Framework dhe OS Services. Në OS Services është e ndaluar përdorimi i bllokimeve unsafe, dhe të gjitha operacionet e nivelit të ulët që kërkojnë ekzekutimin e kodit në bllokime unsafe janë transferuar në OS Framework dhe janë të disponueshme vetëm përmes një API të nivelit të lartë. Të gjitha thirrjet sistemike, sistemet e skedarëve dhe drejtuarësit implementohen në nivelin OS Services dhe nuk mund të përfshijnë bllokime unsafe.
Për zhvillimin e shërbimeve sistemore dhe moduleve të bërthamës, ofrohet mjeti OSDK (Operating System Development Kit), i cili siguron utilitarin cargo-osdk për krijimin, ndërtimin, testimin dhe ekzekutimin e komponentëve të sistemit operativ. Për zhvilluesit është përgatitur një grup bibliotekash OSTD (Operating System Standard Library), duke përfshirë një version të bibliotekave standarde të Rust (crate std), të adaptuar për përdorim në komponentët e sistemit operativ.
Mes ndryshimeve në versionin 0.18:
- Në kuadër të punës për të siguruar funksionimin e Asterinas si një sistem i ftuar në VM-konteinerat e Kata Containers dhe Confidential Containers, është realizuar mbështetje për hapësirat e emrave IPC dhe cgroup, nsfs (/proc/[pid]/ns), cgroups, virtio-fs (për qasje në sistemin e skedarëve të përbashkët me sistemin mikpritës), virtio-rng (/dev/hwrng për entropi në gjeneratorin e numrave të rastësishëm) dhe vsock (për ndërveprimin midis sistemeve mikpritëse dhe ftuese).
- ĂshtĂ« realizuar thirrja e sistemit ptrace dhe mundĂ«sitĂ« pĂ«r debugging nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit duke pĂ«rdorur GDB dhe strace.
- ĂshtĂ« propozuar njĂ« implementim i ri i sistemit tĂ« skedarĂ«ve ext2 dhe Ă«shtĂ« shtuar njĂ« drejtues NVMe. NĂ« VFS Ă«shtĂ« shtuar mekanizmi Dentry (Directory Entry) dhe Ă«shtĂ« rishikuar realizimi i caches sĂ« faqeve.
- Në distribucionin Asterinas NixOS është realizuar mundësia për të ekzekutuar Codex, QEMU dhe Firefox.
- Janë shtuar thirrjet e sistemit pidfd_getfd, pidfd_send_signal, pivot_root.
- ĂshtĂ« shtuar implementimi fillestar mbĂ«shtetje IPv6.
- ĂshtĂ« realizuar sistemi i capabilities pĂ«r delegimin e operacioneve tĂ« veçanta me privilegje.
- ĂshtĂ« shtuar implementimi fillestar i framework-ut LSM (Linux Security Modules).
Burimi: opennet.ru
