Lansarea kernelului Asterinas 0.18, scris în Rust și compatibil cu Linux

Proiectul Asterinas a lansat versiunea 0.18, un kernel scris în Rust și conceput pentru utilizare în sisteme de operare de uz general. Nucleul oferă o interfață ABI (Application Binary Interface - Interfață binară pentru aplicații) compatibilă cu kernelul. Linux și poate fi utilizat în schimb. Distribuția Asterinas NixOS, care combină kernelul Asterinas cu mediul de sistem NixOS, este dezvoltată în paralel. Codul proiectului este distribuit sub MPL (Mozilla Public License).

În prezent, există aproximativ 240 de apeluri de sistem implementate în kernel. LinuxDistribuția Asterinas NixOS este verificată să ruleze pe kernelul Asterinas cu peste 100 de pachete NixOS. Pachetele acceptate includ: 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 și Codex.

Nucleul oferă suport complet pentru arhitectura x86-64, suport parțial pentru RISC-V 64 și x86-64 cu izolare bazată pe Intel TDX, precum și suport inițial pentru arhitectura LoongArch 64. Domeniile prioritare de aplicare includ sisteme bazate pe Linux ABI-uri, dar care necesită un nivel mai ridicat de securitate. De exemplu, Asterinas este propus pentru utilizare în crearea unui mediu de sistem securizat. mașini virtuale, pentru izolarea căruia se utilizează tehnologii precum ARM CCA, AMD SEV și Intel TDX, precum și pe partea sistemului gazdă, ceea ce asigură lansarea containerelor.

Pentru a reduce probabilitatea erorilor de memorie, principala sursă a celor mai periculoase vulnerabilități, Asterinas folosește limbajul Rust și o utilizare limitată a blocurilor nesigure. Nucleul este construit folosind arhitectura framekernel, care încearcă să combine capacitățile de izolare ale micronucleelor ​​cu eficiența nucleelor ​​monolitice.

Componentele kernelului din Asterinas sunt localizate într-un spațiu de adrese partajat, iar securitatea este realizată prin separarea logică a codului securizat de codul care ar putea fi potențial vulnerabil. Nucleul este împărțit în două părți, ambele scrise în Rust: OS Framework și OS Services. OS Services interzice utilizarea blocurilor nesigure, iar toate operațiunile de nivel scăzut care necesită execuția de cod în blocuri nesigure sunt mutate în OS Framework și accesibile doar printr-o API de nivel înalt. Toate apelurile de sistem, sistemele de fișiere și driverele sunt implementate la nivelul OS Services și nu pot include blocuri nesigure.

Pentru dezvoltarea serviciilor de sistem și a modulelor kernel, este furnizat OSDK (Operating System Development Kit), care oferă utilitarul cargo-osdk pentru crearea, construirea, testarea și rularea componentelor sistemului de operare. Dezvoltatorii pot utiliza, de asemenea, setul OSTD (Operating System Standard Library), care include o ediție a bibliotecilor standard Rust (crate std) adaptată pentru utilizarea în componentele sistemului de operare.

Printre modificările din versiunea 0.18:

  • Ca parte a eforturilor de a asigura rularea Asterinas ca sistem guest în containerele Kata Containers și Confidential Containers VM, a fost implementat suport pentru spațiile de nume IPC și cgroup, nsfs (/proc/[pid]/ns), cgroups, virtio-fs (pentru accesarea unui sistem de fișiere partajat cu sistemul gazdă), virtio-rng (/dev/hwrng pentru entropia generatorului de numere pseudo-aleatoare) și vsock (pentru comunicarea dintre sistemele gazdă și guest).
  • A implementat apelul de sistem ptrace și capabilitățile de depanare în spațiul utilizatorului folosind GDB și strace.
  • A fost propusă o nouă implementare a sistemului de fișiere ext2 și a fost adăugat un driver NVMe. Un mecanism Dentry (Director Entry - intrare în director) a fost adăugat la VFS, iar implementarea memoriei cache a paginilor a fost reproiectată.
  • Distribuția Asterinas NixOS are capacitatea de a rula Codex, QEMU și Firefox.
  • Au fost adăugate apelurile de sistem pidfd_getfd, pidfd_send_signal, pivot_root.
  • Inițială adăugată Suport IPv6.
  • A fost implementat un sistem de capabilități pentru delegarea operațiunilor individuale privilegiate.
  • Adăugată implementarea inițială a cadrului LSM (Linux Module de securitate).

Sursa: opennet.ru

Cumpărați găzduire de încredere pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără găzduire web fiabilă cu protecție DDoS, servere VPS VDS | ProHoster