Den Asterinas-Projet huet d'Versioun 0.18 erausbruecht, e Kernel, deen a Rust geschriwwe gouf a fir d'Benotzung an allgemenge Betribssystemer entwéckelt gouf. De Kernel stellt eng ABI (Application Binary Interface) zur Verfügung, déi mam Kernel kompatibel ass. Linux a kann amplaz benotzt ginn. D'Asterinas NixOS Distributioun, déi den Asterinas Kernel mat der NixOS Systemëmfeld kombinéiert, gëtt parallel entwéckelt. De Code vum Projet gëtt ënner der MPL (Mozilla Public License) verdeelt.
Aktuell ginn et ongeféier 240 Systemuriff, déi am Kernel implementéiert sinn. LinuxD'Asterinas NixOS Distributioun ass verifizéiert fir op dem Asterinas Kernel mat iwwer 100 NixOS Paketen ze lafen. Ënnerstëtzte Paketen enthalen: 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.
De Kernel bitt voll Ënnerstëtzung fir d'x86-64 Architektur, deelweis Ënnerstëtzung fir RISC-V 64 an x86-64 mat Isolatioun baséiert op Intel TDX, souwéi initial Ënnerstëtzung fir d'LoongArch 64 Architektur. Prioritéitsgebidder vun der Uwendung sinn ënner anerem Systemer baséiert op ... Linux ABIs, awer e méi héije Sécherheetsniveau erfuerderen. Zum Beispill gëtt Asterinas fir d'Schafung vun enger sécherer Systemëmfeld virgeschloen. virtuell Maschinnen, fir d'Isolatioun vun deenen Technologien wéi ARM CCA, AMD SEV an Intel TDX benotzt ginn, souwéi op der Hostsystemsäit, déi de Start vu Container garantéiert.
Fir d'Wahrscheinlechkeet vu Speicherfehler, der Haaptursaach vun de geféierlechste Schwachstelle, ze reduzéieren, benotzt Asterinas d'Rust-Sprooch an eng limitéiert Notzung vun onséchere Blöcken. De Kernel ass mat der Framekernelarchitektur gebaut, déi probéiert d'Isolatiounsfäegkeete vu Mikrokären mat der Effizienz vu monolithesche Kären ze kombinéieren.
Kernelkomponenten an Asterinas sinn an engem gemeinsamen Adressraum lokaliséiert, an d'Sécherheet gëtt duerch eng logesch Trennung vu sécherem Code vu Code erreecht, deen eventuell vulnérabel kéint sinn. De Kernel ass an zwee Deeler opgedeelt, béid a Rust geschriwwen: OS Framework an OS Services. OS Services verbitt d'Benotzung vun onséchere Blöcken, an all Operatiounen op nidderegem Niveau, déi Codeausféierung an onséchere Blöcken erfuerderen, ginn an den OS Framework geréckelt an nëmmen iwwer eng High-Level API zougänglech. All Systemuriff, Dateisystemer an Treiber ginn op OS Services Niveau implementéiert a kënnen net onsécher Blöcken enthalen.
Fir d'Entwécklung vu Systemservicer a Kernelmoduler gëtt den OSDK (Operating System Development Kit) zur Verfügung gestallt, deen den Utility cargo-osdk fir d'Erstelle, Bauen, Testen a Betriebssystemkomponenten ubitt. Entwéckler kënnen och den OSTD (Operating System Standard Library) Set benotzen, deen eng Editioun vun de Rust Standardbibliothéiken (crate std) enthält, déi fir d'Benotzung an Operatiounssystemkomponenten ugepasst ass.
Ënnert den Ännerungen an der Versioun 0.18:
- Als Deel vun der Aarbecht fir sécherzestellen, datt Asterinas als Gaaschtsystem a Kata Container a Vertrauleche Container VM Container leeft, gouf Ënnerstëtzung fir IPC- an cgroup-Namespaces, nsfs (/proc/[pid]/ns), cgroups, virtio-fs (fir Zougang zu engem Dateisystem, dat mam Hostsystem gedeelt gëtt), virtio-rng (/dev/hwrng fir Entropie fir de Pseudo-Zoufallszuelengenerator) a vsock (fir d'Kommunikatioun tëscht dem Host- an dem Gaaschtsystem) implementéiert.
- De Systemopruff vu ptrace an d'Debugging-Funktiounen am User-Space goufen mat GDB a strace implementéiert.
- Eng nei Implementatioun vum ext2 Dateisystem gouf proposéiert, an en NVMe Treiber gouf bäigefüügt. E Dentry (Directory Entry) Mechanismus gouf dem VFS bäigefüügt, an d'Page Cache Implementatioun gouf nei gestaltet.
- D'Asterinas NixOS Distributioun kann Codex, QEMU a Firefox ausféieren.
- Systemuriff pidfd_getfd, pidfd_send_signal, pivot_root goufen derbäigesat.
- Initial bäigefüügt IPv6 Ënnerstëtzung.
- E Fäegkeetesystem fir d'Delegatioun vun individuellen privilegéierten Operatiounen gouf implementéiert.
- Déi initial Ëmsetzung vum LSM-Framework bäigefüügt (Linux Sécherheetsmoduler).
Source: opennet.ru
