ĂshtĂ« publikuar versione i projektit Asterinas 0.19, i cili zhvillon bĂ«rthamĂ«n, e shkruar nĂ« gjuhĂ«n Rust dhe e destinuar pĂ«r pĂ«rdorim nĂ« sisteme operative me qĂ«llim tĂ« pĂ«rgjithshĂ«m. BĂ«rthama ofron njĂ« ABI (Application Binary Interface) tĂ« pajtueshĂ«m me bĂ«rthamĂ«n Linux, i cili mund tĂ« pĂ«rdoret si zĂ«vendĂ«sim pĂ«r tĂ«. NĂ« tĂ« njĂ«jtĂ«n kohĂ«, po zhvillohet distribucioni Asterinas NixOS, i cili kombinon bĂ«rthamĂ«n Asterinas me mjedisin sistemor NixOS. Kodi i projektit Ă«shtĂ« duke u zhvilluar qĂ« nga viti 2022 dhe shpĂ«rndahet nĂ«n licencĂ«n MPL (Mozilla Public License).
Aktualisht, bërthama ka zbatuar më shumë se 240 thirrje sistemike të Linux-it. Në distribucionin Asterinas NixOS janë verifikuar mbi 100 paketa që funksionojnë sipër bërthamës Asterinas nga NixOS. Disa nga paketat e mbështetura përfshijnë: 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 ofron mbështetje të plotë për arkitekturën x86-64, mbështetje të pjesshme për ARM64, RISC-V 64 dhe x86-64 me izolim në bazë të Intel TDX, si dhe mbështetje fillestare për arkitekturën LoongArch 64. Nga fushat prioritare të aplikimit përmenden sistemet që janë të lidhura me Linux ABI, por që kërkojnë një nivel më të lartë të sigurisë. Për shembull, Asterinas propozohet për t'u përdorur për formimin e mjedisit sistemor 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 sistemike dhe moduleve të bërthamës, ofrohet një mjet OSDK (Operating System Development Kit), që 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 librarish OSTD (Operating System Standard Library), që përfshin një edicion të librarive standarde Rust (crate std), të përshtatura për t'u përdorur në komponentët e sistemit operativ.
Disa nga ndryshimet në Asterinas 0.19:
- ĂshtĂ« implementuar nĂ«n-sistemi DRM (Direct Rendering Manager), pajisja /dev/dri, ndĂ«rfaqja KMS (kernel mode setting) dhe drejtori 'modesetting', qĂ« kanĂ« lejuar lançimin e grupeve grafike standarde mbi bazĂ«n e X.Org Server dhe Mesa, nĂ« vend tĂ« drejtuesit tĂ« mĂ«parshĂ«m fbdev, qĂ« pĂ«rdorte framebuffer.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r arkitekturĂ«n AArch64 (ARM64), e cila tani pĂ«rdoret si arkitektura kryesore gjatĂ« zhvillimit, sĂ« bashku me x86-64. PĂ«r AArch64 Ă«shtĂ« implementuar njĂ« nivel i dytĂ« mbĂ«shtetje, qĂ« pĂ«rfshin funksionalitetin bazĂ«, verifikimin nĂ« sistemin e integrimit tĂ« vazhdueshĂ«m dhe mbulim tĂ« pjesshĂ«m me teste.
- Puna vazhdimi i punës për adaptimin e Asterinas për të funksionuar si një sistem gazdar në VM-konteinerët Kata Containers dhe Confidential Containers. Propozohet një implementim i ri i Overlayfs, i cili kalon me sukses testet standarde të sistemit të skedarëve të kernelit Linux dhe xfstests. Implementohet një API i ri për montimin. Stabilizohet kodi virtio-fs. Shtohet mbështetje për protokollin
direct-boot, që përdoret në QEMU, Cloud Hypervisor dhe Firecracker. Shpejtohet ngarkimi në makina virtuale, memorjet e të cilave janë të enkriptuara me teknologjinë Intel TDX. - Në kuadër të OSTD (Operating System Standard Library) implementohet një API bazë për krijimin e hipervizorëve minimalistë mbi bazën e Intel VMX.
- Shtohet mbështetje për modelin e zhvillimit të drejtuesve në gjuhën Rust. Shtohet komponenti aster-device me funksionalitet të ngjashëm me komponentët e kernelit Linux me primitivët dhe abstraksionet bazë për zhvillimin e drejtuesve, por e shkruar në Rust pa kod të rrezikshëm.
- Sigurohet mundësia e ricompilimit të vetë (self-hosting) - nga një mjedis me kernelin Asterinas dhe paketat NixOS tani mund të ndërtohet kerneli Asterinas.
Burimi: opennet.ru
