Vydání jádra Asterinas 0.19, napsaného v jazyce Rust a kompatibilního s Linuxem

Byl vydán projekt Asterinas 0.19, který rozvíjí jádro napsané v jazyce Rust a je určeno pro použití v operačních systémech všeobecného určení. Jádro poskytuje ABI (Application Binary Interface) kompatibilní s jádrem Linux a může být použito jako jeho náhrada. Paralelně se vyvíjí distribuce Asterinas NixOS, která kombinuje jádro Asterinas se systémovým prostředím NixOS. Kód projektu se vyvíjí od roku 2022 a je šířen pod licencí MPL (Mozilla Public License).

V současnosti je v jádře implementováno více než 240 systémových volání Linuxu. V distribuci Asterinas NixOS bylo ověřeno fungování více než 100 balíčků z NixOS nad jádrem Asterinas. Mezi podporované balíčky patří: 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.

Jádro zajišťuje plnou podporu architektury x86-64, částečnou podporu ARM64, RISC-V 64 a x86-64 s izolací na základě Intel TDX, stejně jako počáteční podporu architektury LoongArch 64. Mezi prioritní oblasti použití patří systémy závislé na Linux ABI, ale vyžadující vyšší úroveň zabezpečení. Například se doporučuje využití Asterinas pro vytváření systémového prostředí zabezpečených virtuálních strojů, pro jejichž izolaci se využívají technologie jako ARM CCA, AMD SEV a Intel TDX, a také na straně hostitelského systému, který zajišťuje spuštění kontejnerů.

Pro snížení pravděpodobnosti vzniku chyb při práci s pamětí, které jsou hlavním zdrojem nejnebezpečnějších zranitelností, byl při psaní Asterinas využit jazyk Rust a taktika omezeného používání unsafe bloků. Jádro je postaveno s využitím architektury framekernel, která se snaží skloubit možnosti izolace mikrojader s efektivitou monolitických jader.

Komponenty jádra v Asterinas jsou umístěny ve sdíleném adresovém prostoru, přičemž bezpečnost je zajištěna na úrovni logického oddělení bezpečného kódu a kódu, ve kterém nelze vyloučit výskyt bezpečnostních problémů. Jádro je rozděleno na dvě části napsané v Rustu: OS Framework a OS Services. V OS Services je zakázáno používání unsafe-bloků, a všechny nízkoúrovňové operace vyžadující provádění kódu v unsafe blocích byly přesunuty do OS Framework a jsou dostupné pouze prostřednictvím vysoceúrovňového API. Všechny systémové volání, souborové systémy a ovladače jsou implementovány na úrovni OS Services a nemohou obsahovat unsafe-bloky.

Pro vývoj systémových služeb a modulů jádra je k dispozici nástroj OSDK (Operating System Development Kit), který poskytuje utilitu cargo-osdk pro vytváření, kompilaci, testování a spuštění komponent operačního systému. Pro vývojáře je připraven soubor knihoven OSTD (Operating System Standard Library), který obsahuje edici standardních knihoven Rust (crate std), přizpůsobenou pro použití v komponentách operačního systému.

Mezi změnami v Asterinas 0.19:

  • Byl implementován subsystém DRM (Direct Rendering Manager), zařízení /dev/dri, rozhraní KMS (kernel mode setting) a ovladač "modesetting", které umožnily spuštění standardního grafického stacku na bázi X.Org Server a Mesa, místo dříve používaného ovladače fbdev, který používal frame buffer.


  • Byla přidána podpora architektury AArch64 (ARM64), která je nyní používána jako hlavní architektura při vývoji, vedle x86-64. Pro AArch64 byla implementována druhá úroveň podpory, která zahrnuje funkčnost základní funkce, ověřování v systému kontinuální integrace a částečné pokrytí testy.
  • Byla pokračována práce na adaptaci Asterinas pro spuštění jako hostitelský systém ve VM kontejnerech Kata Containers a Confidential Containers. Byla navržena nová implementace Overlayfs, která úspěšně prošla standardními testovacími sadami FS jádra Linux a xfstests. Bylo implementováno nové API pro montování. Kód virtio-fs byl stabilizován. Byla přidána podpora protokolu
    direct-boot, používaného v QEMU, Cloud Hypervisor a Firecracker. Bylo zrychleno spouštění v virtual machines, jejichž paměť je šifrována pomocí technologie Intel TDX.
  • Ve frameworku OSTD (Operating System Standard Library) byl implementován základní API pro vytváření minimalistických hypervisorů na bázi Intel VMX.
  • Byla přidána podpora modelu vývoje ovladačů v jazyce Rust. Byl přidán komponent aster-device s funkcionalitou připomínající komponenty jádra Linux s základními primitivy a abstrakcemi pro vývoj ovladačů, ale napsaný v Rustu bez unsafe kódu.
  • Byla zajištěna možnost vlastní překládkové (self-hosting) — z prostředí s jádrem Asterinas a balíčky NixOS nyní lze sestavit jádro Asterinas.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster