Vydanie jadra Asterinas 0.19, napísaného v jazyku Rust a kompatibilného s Linuxom

Bol publikovaný projekt Asterinas 0.19, ktorý vyvíja jadro napísané v jazyku Rust a určené na použitie v operačných systémoch všeobecného účelu. Jadrom sa poskytuje ABI (Application Binary Interface), kompatibilné s jadrom Linux a použiteľné ako jeho náhrada. Paralelne sa vyvíja distribúcia Asterinas NixOS, kombinujúca jadro Asterinas so systémovým prostredím NixOS. Kód projektu sa vyvíja od roku 2022 a šíri sa pod licenciou MPL (Mozilla Public License).

V súčasnosti obsahuje jadro viac ako 240 systémových volaní Linuxu. V distribúcii Asterinas NixOS je overená funkčnosť vyše 100 balíkov na jadre Asterinas z NixOS. Medzi podporované balíky patrí: 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 a Codex.

Jadro zabezpečuje plnú podporu architektúry x86-64, čiastočnú podporu ARM64, RISC-V 64 a x86-64 s izoláciou na báze Intel TDX, ako aj počiatočnú podporu architektúry LoongArch 64. Medzi prioritné oblasti aplikácie patrí systémy postavené na Linux ABI, ale vyžadujúce vyššiu úroveň ochrany. Napríklad sa odporúča používať Asterinas na vytvorenie systémového prostredia zabezpečených virtuálních strojů, ktorých izoláciu zabezpečujú technológie ako ARM CCA, AMD SEV a Intel TDX, ako aj na strane hostiteľského systému, ktorý zabezpečuje spúšťanie kontajnerov.

Na zníženie pravdepodobnosti vzniku chýb pri práci s pamäťou, čo je hlavný zdroj najnebezpečnejších zraniteľností, bol pri písaní Asterinas použitý jazyk Rust a taktika obmedzeného používania unsafe blokov. Jadrom je postavené na architektúre framekernel, v ktorej sa snažili skombinovať možnosti izolácie mikrojadier s efektívnosťou monolitických jadier.

Jadro komponentov v Asterinas je umiestnené v spoločnom adresnom priestore, pričom bezpečnosť sa dosahuje na úrovni logického delenia bezpečného kódu a kódu, v ktorom nie je možné vylúčiť vznik bezpečnostných problémov. Jadro je rozdelené na dve časti napísané v Ruste: OS Framework a OS Services. V OS Services je zakázaná aplikácia unsafe blokov a všetky nízkoúrovňové operácie, ktoré vyžadujú vykonanie kódu v unsafe blokoch, sú presunuté do OS Framework a sú dostupné iba prostredníctvom vysokoúrovňového API. Všetky systémové volania, súborové systémy a ovládače sú implementované na úrovni OS Services a nemôžu obsahovať unsafe bloky.

Na vývoj systémových služieb a modulov jadra sa dodáva nástroj OSDK (Operating System Development Kit), ktorý poskytuje utilitu cargo-osdk na vytváranie, kompiláciu, testovanie a spúšťanie komponentov operačného systému. Pre vývojárov je pripravený súbor knižníc OSTD (Operating System Standard Library), ktorý zahŕňa edíciu štandardných knižníc Rustu (crate std) prispôsobenú pre použitie v komponentoch operačného systému.

Medzi zmenami v Asterinas 0.19:

  • Bola implementovaná subsystém DRM (Direct Rendering Manager), zariadenie /dev/dri, rozhranie KMS (kernel mode setting) a ovládač „modesetting“, ktoré umožnili spustiť štandardný grafický stack na báze X.Org Server a Mesa, namiesto predtým používaného ovládača fbdev, ktorý používa framebuffer.


  • Bola pridaná podpora architektúry AArch64 (ARM64), ktorá sa teraz používa ako hlavná architektúra pri vývoji, spolu s x86-64. Pre AArch64 bola implementovaná druhá úroveň podpory, ktorá predpokladá funkčnosť základných vlastností, kontrolu v systéme kontinuálnej integrácie a čiastočné pokrytie testami.
  • Pokračuje práca na prispôsobení Asterinas na spustenie ako hosťujúci systém vo VM-kontejneroch Kata Containers a Confidential Containers. Bola navrhnutá nová implementácia Overlayfs, ktorá úspešne prechádza štandardnými testovacími sadami FS jadra Linux a xfstests. Bol implementovaný nový montážny API. Stabilizovaný kód virtio-fs. Bola pridaná podpora protokolu
    direct-boot, ktorý sa používa v QEMU, Cloud Hypervisor a Firecracker. Bola zrýchlená bootovanie v virtuálnych strojoch, pamäte, ktoré sú šifrované pomocou technológie Intel TDX.
  • V rámci OSTD (Operating System Standard Library) bol implementovaný základný API na vytváranie minimalistických hypervízorov na báze Intel VMX.
  • Pridaná podpora pre model vývoja ovládačov v jazyku Rust. Pridaná komponenta aster-device s funkčnosťou podobnou komponentom jadra Linux s základnými primitívmi a abstrakciami pre vývoj ovládačov, avšak napísaná v Ruste bez unsafe kódu.
  • Zabezpečená možnosť vlastnej recompilácie (self-hosting) — z prostredia s jadrom Asterinas a balíkmi NixOS je teraz možné zostaviť jadro Asterinas.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster