Asterinas 0.18

A apărut o nouă versiune Asterinas 0.18.0 — un sistem de operare experimental și un nucleu scris în Rust, axat pe compatibilitatea cu Linux ABI. Proiectul se prezintă ca o încercare de a crea o alternativă "de tip production-grade" pentru Linux, punând accent pe securitatea memoriei, performanță și rularea unui mediu de utilizator Linux obișnuit. Codul Asterinas este deschis și găzduit pe GitHub, licența principală a proiectului fiind MPL 2.0. Versiunea Asterinas 0.18.0 a fost publicată pe 4 iunie 2026, iar pe 9 iunie a fost remarcată de Phoronix.


Principala direcție a lansării este pregătirea Asterinas pentru utilizarea ca sistem de operare gazdă pentru VM-based Kata Containers și Confidential Containers. În acest scop, în nucleu au fost adăugate mecanismele de bază lipsă: namespace-uri, cgroups, virtio-fs, virtio-rng și un vsock reproiectat pentru schimbul de date între gazdă și sistemul de operare invitat.

Lista principalelor modificări:

  • Pregătirea pentru rularea în Kata Containers și Confidential Containers.
    Asterinas 0.18 face un pas important către rularea ca sistem de operare invitat în interiorul mașinilor virtuale containerizate izolate. Acest lucru este esențial pentru scenarii în care containerele nu rulează direct pe nucleul gazdelor, ci în interiorul unei VM separate, inclusiv în medii de calcul confidențiale.

  • Suport pentru namespace-uri.
    În nucleu au fost introduse IPC namespace și cgroup namespace, precum și nsfs cu o reprezentare a namespace-urilor prin /proc/[pid]/ns. Acest lucru apropie Asterinas de modelul de izolare a proceselor utilizat de containerele Linux.

  • Suport inițial pentru cgroups.
    A fost implementat sub-controlling PID și suport parțial pentru sub-controlling CPU. În special, au fost incluse statistici cpu.stat și placeholder-uri pentru fișierele limită cpu.weight și cpu.max. Deocamdată, aceasta nu este o implementare completă a întregului mecanism cgroups, dar reprezintă deja o fundație necesară pentru scenariile containerizate.

  • virtio-fs pentru partajarea sistemului de fișiere cu gazda.
    A fost adăugat suport pentru virtio-fs, permițând sistemului invitat să utilizeze sistemul de fișiere furnizat de gazdă. Pentru containerele VM, acesta este unul dintre mecanismele-cheie pentru transferul de date fără soluții greoaie.

  • virtio-rng și /dev/hwrng.
    A fost adăugat virtio-rng cu exportul entropiei hardware prin /dev/hwrng. Acest lucru este necesar pentru buna funcționare a operațiunilor criptografice și a generatorilor de numere aleatorii în interiorul sistemului de operare invitat.

  • vsock reproiectat.
    vsock a fost complet rescris — mecanismul de comunicare între gazdă și mașina virtuală invitată. În contextul Kata Containers și Confidential Containers, acest lucru este important pentru canalele de gestionare, agenți și interacțiunea serviciilor între VM și mediu de rulare.

  • A apărut ptrace și suport pentru debuggarea userspace.
    A fost implementat syscall-ul ptrace și operațiile principale PTRACE_SETOPTIONS, PTRACE_SYSCALL, PTRACE_PEEK și PTRACE_POKE. Datorită acestui lucru, pe Asterinas acum pot fi utilizate instrumente de debuggare familiare precum GDB și strace. Documentația pentru utilizarea corectă și verificările CI au fost adăugate pentru acestea.

  • Un nou driver NVMe.
    Un driver NVMe a fost adăugat la stratul de blocuri. Acest lucru extinde capacitățile Asterinas în ceea ce privește lucrul cu unitățile moderne și face sistemul mai apropiat de rularea practică pe hardware server virtualizat și real.

  • Driver EXT2 complet rescris.
    Sistemul de fișiere EXT2 a fost implementat de la zero. Dezvoltatorii leagă aceasta de o modernizare generală a storage stack: subsystema de fișiere ar trebui să devină mai fiabilă și mai pregătită pentru a rula un mediu de utilizator real.

  • Modificări în VFS și page cache.
    Un mecanism Dentry revalidate a fost adăugat în VFS, implementarea page cache a fost rescrisă, pivot_root a fost implementat, s-a adăugat suport pentru O_TMPFILE la open/openat, iar o eroare a page cache care putea duce la scurgerea de memorie neinițializată în userspace a fost corectată.

  • Extinderea procfs.
    Au fost adăugate /proc/mounts, /proc/[pid]/auxv, /proc/[tid], înregistrări suplimentare în /proc/[pid]/maps și mountstats. Acest lucru îmbunătățește compatibilitatea cu aplicațiile Linux și instrumentele de diagnosticare care se așteaptă la o structură obișnuită în /proc.

  • Îmbunătățiri rețelistică.
    Pe lângă vsock rescris, a apărut suport inițial pentru IPv6, corecturi pentru implementarea UDP și verificarea drepturilor la legarea la porturi privilegiate: bind la aceste porturi este acum refuzat fără CAP_NET_BIND_SERVICE.

  • Mecanism de capabilities și cadru LSM inițial.
    În lansare a fost inclusă implementarea capabilities, suport pentru setul de bounding de capabilities, corecturi pentru apelurile de sistem legate de credentials și un cadru inițial LSM. Aceasta este parte din eforturile de a alinia modelul de securitate Asterinas cu Linux.

  • Îmbunătățiri PCI, TTY și consolă.
    Detectarea dispozitivelor PCI a fost îmbunătățită, s-a adăugat suport pentru PCI ECAM pe x86, s-a realizat suport pentru mai multe TTY, consola NS16550A UART, /dev/ttyS0 și parametrul console=ttyS0. De asemenea, s-a lucrat la îmbunătățirea interacțiunii cu tastatura.

  • Extinderea Asterinas NixOS.
    Pe Asterinas NixOS acum sunt verificate peste 100 de pachete populare, inclusiv Codex, QEMU și Firefox. Suportul pentru ARCH_GET_GS și ARCH_SET_GS a fost adăugat separat pentru Firefox.

  • Seturi de teste noi.
    Proiectul integrează Linux kselftest, xfstests, teste standard Go, Python și JDK, precum și teste QEMU pentru aplicații de virtualizare. Acest lucru este important ca un semn al maturizării proiectului: Asterinas este tot mai activ verificat în condiții reale de sarcină Linux.

  • Modificări în OSTD și OSDK.
    În OSTD, crate log a fost înlocuit cu o API de jurnalizare proprie, API-urile DMA au fost revizuite, a fost adăugat un cadru pentru operațiuni de copiere a memoriei tipizate, iar Pod a fost refactorizat folosind zerocopy. A fost adăugată o mediu de dezvoltare Docker pe ARM/aarch64.

  • Actualizarea documentației.
    În Asterinas Book au fost adăugate reguli de codare, analiza soundness pentru OSTD, precum și documentația pentru Kata Containers și Confidential Containers. Aceasta subliniază că scenariul de virtualizare a containerelor a devenit una dintre direcțiile principale ale proiectului.

Asterinas 0.18 nu poate fi considerat un înlocuitor pentru Linux în utilizarea zilnică, dar lansarea avansează semnificativ proiectul către scenarii practice de server și containere. Trei direcții sunt deosebit de importante: compatibilitatea cu programele Linux, suportul pentru mecanisme de izolare și funcționarea în medii de containere bazate pe VM.

Sursa: linux.org.ru

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