Lansarea kernel-ului Asterinas 0.19, scris în limbajul Rust și compatibil cu Linux

A fost publicat release-ul proiectului Asterinas 0.19, care dezvoltă un kernel scris în limbajul Rust și destinat utilizării în sisteme de operare de uz general. Kernelul oferă un ABI (Application Binary Interface) compatibil cu kernelul Linux și poate fi folosit ca alternativă. În paralel, este dezvoltată distribuția Asterinas NixOS, care combină kernelul Asterinas cu mediul de sistem NixOS. Codul proiectului este în dezvoltare din 2022 și este distribuit sub licența MPL (Mozilla Public License).

În prezent, kernelul implementează peste 240 de apeluri de sistem Linux. În distribuția Asterinas NixOS, funcționarea pe kernelul Asterinas a fost verificată pentru mai mult de 100 de pachete din NixOS. Printre pachetele suportate se numără: 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.

Kernelul asigură suport complet pentru arhitectura x86-64, suport parțial pentru ARM64, RISC-V 64 și x86-64 cu izolare bazată pe Intel TDX, precum și suport inițial pentru arhitectura LoongArch 64. Printre domeniile prioritare de aplicare se numără sistemele ancorate în Linux ABI, dar care necesită un nivel mai înalt de securitate. De exemplu, Asterinas este sugerat pentru formarea mediilor sistemului în condiții de securitate. mașini virtuale, pentru care se folosesc tehnologii precum ARM CCA, AMD SEV și Intel TDX, precum și de partea sistemului gazdă, care asigură rularea containerelor.

Pentru a reduce probabilitatea apariției erorilor în gestionarea memoriei, care reprezintă sursa principală a celor mai periculoase vulnerabilități, la scrierea Asterinas a fost folosit limbajul Rust și tactica utilizării limitate a blocurilor unsafe. Nucleul este construit folosind arhitectura framekernel, unde s-au încercat combinarea capacităților de izolare a microkernelurilor cu eficiența nucleelor monolitice.

Componentele nucleului în Asterinas sunt plasate într-un spațiu adresabil comun, iar securitatea este realizată la nivelul separării logice între codul sigur și codul în care nu se exclude posibilitatea apariției problemelor de securitate. Nucleul este împărțit în două părți, scrise în Rust: OS Framework și OS Services. În OS Services, utilizarea blocurilor unsafe este interzisă, iar toate operațiile de nivel inferior care necesită execuția codului în blocuri unsafe sunt transferate în OS Framework și sunt accesibile doar printr-un 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 unsafe.

Pentru dezvoltarea serviciilor de sistem și modulelor kernelului este livrat un set de instrumente OSDK (Operating System Development Kit), care oferă utilitarul cargo-osdk pentru crearea, compilarea, testarea și rularea componentelor sistemului de operare. Pentru dezvoltatori a fost pregătit un set de biblioteci OSTD (Operating System Standard Library), care include o variantă a bibliotecilor standard Rust (crate std), adaptată pentru utilizarea în componentele sistemului de operare.

Printre modificările din Asterinas 0.19:

  • A fost implementată subsistemul DRM (Direct Rendering Manager), dispozitivul /dev/dri, interfața KMS (kernel mode setting) și driverul „modesetting”, care au permis lansarea stivei grafice standard pe baza X.Org Server și Mesa, în locul driverului fbdev folosit anterior, care utiliza framebuffer-ul.


  • A fost adăugat suport pentru arhitectura AArch64 (ARM64), care este acum utilizată ca arhitectura principală în dezvoltare, alături de x86-64. Pentru AArch64 a fost realizat un al doilea nivel de suport, care implică funcționalitatea de bază, verificarea în cadrul sistemului de integrare continuă și o acoperire parțială în teste.
  • Continuarea lucrărilor de adaptare a Asterinas pentru a fi utilizat ca sistem gazdă în containerele VM Kata Containers și Confidential Containers. A fost propusă o nouă implementare a Overlayfs, care trece cu succes teste standard ale FS-ului din nucleul Linux și xfstests. A fost implementat un nou API de montare. Codul virtio-fs a fost stabilizat. A fost adăugată suportul pentru protocoale
    direct-boot, utilizat în QEMU, Cloud Hypervisor și Firecracker. Încărcarea a fost accelerată în virtuálne mašini, memoriile care sunt criptate prin tehnologia Intel TDX.
  • În cadrul framework-ului OSTD (Operating System Standard Library) a fost implementat un API de bază pentru crearea de hypervizori minimalistici bazat pe Intel VMX.
  • A fost adăugat suport pentru modelul de dezvoltare a driverelor în limbajul Rust. Componenta aster-device cu funcționalități asemănătoare componentelor nucleului Linux, având primitive și abstrații de bază pentru dezvoltarea driverelor, dar scrisă în Rust fără cod unsafe.
  • A fost asigurată posibilitatea de auto-recompilare (self-hosting) — dintr-un mediu cu nucleul Asterinas și pachetele NixOS, acum se poate compile nucleul Asterinas.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster