Asterinas 0.18

Opublikowano wersję Asterinas 0.18.0 — eksperymentalny system operacyjny i jądro, napisane w języku Rust, skoncentrowane na zgodności z Linux ABI. Projekt jest przedstawiany jako próba stworzenia „gotowego do produkcji” odpowiednika Linuksa, z naciskiem na bezpieczeństwo pamięci, wydajność i uruchamianie standardowego środowiska użytkownika Linuksa. Kod Asterinas jest otwarty i umieszczony na GitHub, główna licencja projektu — MPL 2.0. Wydanie Asterinas 0.18.0 zostało opublikowane 4 czerwca 2026 roku, a 9 czerwca zwrócił na niego uwagę Phoronix.


Główne kierunki wydania — przygotowanie Asterinas do działania jako gościnny system operacyjny dla VM-based Kata Containers i Confidential Containers. W tym celu do jądra dodano brakujące mechanizmy niskiego poziomu: przestrzenie nazw, cgroups, virtio-fs, virtio-rng oraz przeprojektowany vsock do wymiany danych między hostem a systemem gościnnym.

Lista głównych zmian:

  • Przygotowanie do uruchamiania w Kata Containers i Confidential Containers.
    Asterinas 0.18 stanowi ważny krok w kierunku uruchamiania jako gościnny system operacyjny wewnątrz izolowanych wirtualnych maszyn kontenerowych. Jest to istotne dla scenariuszy, w których kontenery nie są uruchamiane bezpośrednio na jądrze hosta, ale w osobnej VM, w tym w środowiskach confidential computing.

  • Wsparcie dla namespaces.
    W jądrze pojawiły się IPC namespace i cgroup namespace, a także nsfs z przedstawieniem przestrzeni nazw przez /proc/[pid]/ns. To przybliża Asterinas do modelu izolacji procesów stosowanego w kontenerach Linuksa.

  • Początkowe wsparcie dla cgroups.
    Zrealizowano PID sub-controller i częściowe wsparcie dla CPU sub-controller. W szczególności pojawiły się statystyki cpu.stat oraz placeholdery dla plików limitów cpu.weight i cpu.max. To nie jest jeszcze pełna realizacja całego mechanizmu cgroups, ale już niezbędna podstawa dla scenariuszy kontenerowych.

  • virtio-fs do wymiany systemu plików z hostem.
    Dodano wsparcie dla virtio-fs, umożliwiające systemowi gościnnych korzystanie z systemu plików dostarczonego przez hosta. Dla kontenerów VM to jeden z kluczowych mechanizmów przesyłania danych bez skomplikowanych obejść.

  • virtio-rng i /dev/hwrng.
    Dodano virtio-rng z eksportem entropii sprzętowej przez /dev/hwrng. Jest to potrzebne do prawidłowego działania operacji kryptograficznych i generatorów liczb losowych wewnątrz systemu gościnnego.

  • Przeprojektowany vsock.
    Całkowicie przepisano vsock — mechanizm komunikacji między hostem a wirtualną maszyną gościną. W kontekście Kata Containers i Confidential Containers ma to znaczenie dla kanałów sterujących, agentów i interakcji serwisowych między VM a środowiskiem uruchomieniowym.

  • Wprowadzono ptrace oraz wsparcie dla debugowania userspace.
    Zrealizowano wywołanie systemowe ptrace oraz podstawowe operacje PTRACE_SETOPTIONS, PTRACE_SYSCALL, PTRACE_PEEK i PTRACE_POKE. Dzięki temu na Asterinas można teraz uruchamiać znane narzędzia do debugowania, takie jak GDB i strace. Opracowano dokumentację dla sprawdzonych zastosowań oraz CI-checki.

  • Nowy sterownik NVMe.
    Do warstwy blokowej dodano sterownik NVMe. To rozszerza możliwości Asterinas w zakresie współpracy z nowoczesnymi nośnikami i przybliża system do praktycznego uruchomienia na rzeczywistym i wirtualnym sprzęcie serwerowym.

  • Całkowicie przepisany sterownik EXT2.
    System plików EXT2 został zrealizowany od nowa. Programiści wiążą to z ogólną modernizacją stosu storage: subsystem plików ma stać się bardziej niezawodny i odpowiedni do uruchamiania rzeczywistych środowisk użytkowników.

  • Zmiany w VFS i pamięci podręcznej stron.
    W VFS dodano mechanizm Dentry revalidate, przekształcono realizację pamięci podręcznej stron, zrealizowano pivot_root, wprowadzono wsparcie dla O_TMPFILE przy open/openat, a także naprawiono błąd pamięci podręcznej, który mógł prowadzić do wycieku niezainicjowanej pamięci do userspace.

  • Rozszerzenie procfs.
    Dodano /proc/mounts, /proc/[pid]/auxv, /proc/[tid], dodatkowe wpisy w /proc/[pid]/maps oraz mountstats. To zwiększa kompatybilność z aplikacjami i narzędziami diagnostycznymi w Linuxie, które oczekują znanej struktury /proc.

  • Ulepszenia sieciowe.
    Oprócz przepisanej wersji vsock, pojawiło się początkowe wsparcie dla IPv6, poprawki realizacji UDP oraz sprawdzanie uprawnień przy wiązaniu do portów uprzywilejowanych: bind do tych portów jest teraz odrzucany bez CAP_NET_BIND_SERVICE.

  • Mechanizm capabilities oraz początkowy framework LSM.
    W tej wersji wprowadzono realizację capabilities, wsparcie dla capability bounding set, poprawki wywołań systemowych związanych z credentials oraz początkową konstrukcję LSM. To część pracy nad zbliżeniem modelu bezpieczeństwa Asterinas do Linuxa.

  • Ulepszenia PCI, TTY i konsoli.
    Ulepszono wykrywanie urządzeń PCI, dodano wsparcie dla PCI ECAM na x86, zrealizowano wsparcie dla kilku TTY, konsoli NS16550A UART, /dev/ttyS0 oraz parametru console=ttyS0. Ponadto poprawiono działanie z klawiaturą.

  • Rozszerzenie Asterinas NixOS.
    W Asterinas NixOS teraz weryfikuje się ponad 100 popularnych pakietów, w tym Codex, QEMU i Firefox. Dla Firefoksa oddzielnie dodano wsparcie dla ARCH_GET_GS i ARCH_SET_GS.

  • Nowe zestawy testowe.
    Projekt zintegrował Linux kselftest, xfstests, standardowe testy Go, Pythona i JDK oraz testy QEMU dla aplikacji wirtualizacyjnych. To ważny znak dojrzewania projektu: Asterinas coraz intensywniej testuje na rzeczywistych obciążeniach Linuxa.

  • Zmiany w OSTD i OSDK.
    W OSTD zamieniono crate log na własne API logowania, przetworzono API DMA, dodano framework dla typowanych operacji kopiowania pamięci oraz przeprowadzono refaktoryzację Pod z użyciem zerocopy. Dla deweloperów dodano środowisko Docker na ARM/aarch64.

  • Aktualizacja dokumentacji.
    W Asterinas Book dodano zasady kodowania, analizę soundness dla OSTD oraz dokumentację dla Kata Containers i Confidential Containers. To podkreśla, że scenariusz wirtualizacji kontenerów stał się jednym z głównych kierunków projektu.

Asterinas 0.18 nie można traktować jako zamiennika Linuxa do codziennego użytku, ale wydanie znacznie przekształca projekt w stronę praktycznych scenariuszy serwerowych i kontenerowych. Szczególnie ważne są trzy kierunki: kompatybilność z programami Linux, wsparcie mechanizmów izolacji oraz praca w środowiskach kontenerowych opartych na VM.

Źródło: linux.org.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster