Публикация на издание Asterinas 0.18.0 — експериментална операционна система и ядро, написани на Rust и ориентирани към съвместимост с Linux ABI. Проектът се позиционира като опит за създаване на «production-grade» алтернатива на Linux с акцент на безопасността на паметта, производителността и стартирането на обикновена потребителска среда на Linux. Кодът на Asterinas е открит и разположен на GitHub, основната лицензия на проекта — MPL 2.0. Релизът Asterinas 0.18.0 беше публикуван на 4 юни 2026 година, а на 9 юни на него обърна внимание Phoronix.
Главната насока на издаването — подготовка на Asterinas за използване като гостуваща ОС за VM-базирани Kata Containers и Confidential Containers. За това в ядрото бяха добавени липсващи ниско равнище механизми: пространства от имена, cgroups, virtio-fs, virtio-rng и преработен vsock за обмен на данни между хоста и гостуващата система.
Списък на основните изменения:
Подготовка за стартиране в Kata Containers и Confidential Containers.
Asterinas 0.18 прави важна стъпка към стартиране като гостуваща ОС вътре в изолирани контейнерни виртуални машини. Това е важно за сценарии, където контейнерите не се стартират директно на ядрото на хоста, а вътре в отделна VM, включително в средите за конфиденциални изчисления.Поддръжка на namespaces.
В ядрото се появиха IPC namespace и cgroup namespace, както и nsfs с представяне на пространствата от имена чрез /proc/[pid]/ns. Това приближава Asterinas до модела на изолация на процесите, използван от Linux-контейнерите.Начална поддръжка на cgroups.
Реализиран е PID sub-controller и частична поддръжка на CPU sub-controller. В частност, появиха се статистика cpu.stat и заглушки за файлове с лимити cpu.weight и cpu.max. Това все още не е пълна реализация на целия механизъм cgroups, но вече е необходимото основание за контейнерни сценарии.virtio-fs за обмен на файловата система с хоста.
Добавена е поддръжка на virtio-fs, позволяваща на гостуващата система да използва файловата система, предоставена от хоста. За VM-контейнерите това е един от ключовите механизми за предаване на данни без тежки обходни решения.virtio-rng и /dev/hwrng.
Добавен е virtio-rng с експорт на хардуерна ентропия през /dev/hwrng. Това е необходимо за нормалната работа на криптографските операции и генераторите на случайни числа вътре в гостуващата ОС.Преработен vsock.
Напълно пренаписан vsock — механизм за комуникация между хоста и гостуващата виртуална машина. В контекста на Kata Containers и Confidential Containers, това е важно за управляващите канали, агентите и услугите, които взаимодействат между виртуалните машини и средата на стартиране.Добавен е ptrace и поддръжка за отстраняване на проблеми в потребителското пространство.
Реализирана е системна повикване ptrace и основните операции PTRACE_SETOPTIONS, PTRACE_SYSCALL, PTRACE_PEEK и PTRACE_POKE. Благодарение на това, на Asterinas вече могат да се стартират познати инструменти за отстраняване на проблеми като GDB и strace. За тях е добавена документация за проверено използване и CI-тестове.Нов NVMe драйвер.
В блочния слой е добавен NVMe драйвер. Това разширява възможностите на Asterinas за работа с модерни устройства за съхранение и приближава системата до практическото стартиране на реално и виртуализирано сървърно оборудване.Напълно пренаписан EXT2 драйвер.
Файловата система EXT2 е реализирана повторно. Разработчиците свързват това с общата модернизация на стек за съхранение: файловата подсистема трябва да стане по-надеждна и подходяща за стартиране на реална потребителска среда.Промени в VFS и кеша на страници.
В VFS е добавен механизъм за повторна валидация на Dentry, преработена е реализацията на кеша на страниците, реализирана е функцията pivot_root, добавена е поддръжка за O_TMPFILE при open/openat и е поправена грешка в кеша на страниците, която можеше да доведе до изтичане на неинициализирана памет в потребителското пространство.Разширение на procfs.
Добавени са /proc/mounts, /proc/[pid]/auxv, /proc/[tid], допълнителни записи в /proc/[pid]/maps и mountstats. Това увеличава съвместимостта с Linux приложения и инструменти за диагностика, които очакват позната структура на /proc.Мрежови подобрения.
В допълнение към пренаписания vsock, е добавена начална поддръжка за IPv6, поправки в реализацията на UDP и проверка на правата при свързване към привилегировани портове: bind към такива портове сега се отхвърля без CAP_NET_BIND_SERVICE.Механизъм за възможности и начален LSM фреймворк.
В релиза е включена реализация на възможности, поддръжка на capability bounding set, поправки на системни повиквания, свързани с удостоверяване, и начален каркас на LSM. Това е част от работата по приближаване на модела за сигурност на Asterinas до Linux.Подобрения в PCI, TTY и конзолата.
Подобрен е откритията на PCI устройства, добавена е поддръжка на PCI ECAM на x86, реализирана е поддръжка на множество TTY, конзолата NS16550A UART, /dev/ttyS0 и параметър console=ttyS0. Също така е подобрена работата с клавиатурата.Разширение на Asterinas NixOS.
В Asterinas NixOS вече се проверяват над 100 популярни пакета, включително Codex, QEMU и Firefox. За Firefox е добавена поддръжка за ARCH_GET_GS и ARCH_SET_GS.Новите тестови комплекти.
В проекта са интегрирани Linux kselftest, xfstests, стандартни тестове на Go, Python и JDK, както и QEMU тестове за виртуализационни приложения. Това е важно като признак за развитие на проекта: Asterinas се проверява все по-активно при реални Linux натоварвания.Промени в OSTD и OSDK.
В OSTD беше заменен crate log с собствено API за логиране, преработени са DMA API, добавен е фреймворк за типизирани операции по копиране на памет, и е проведен рефакторинг на Pod с използване на zerocopy. За разработване е добавена Docker среда на ARM/aarch64.Актуализация на документацията.
В Asterinas Book са добавени правила за кодиране, анализ на soundness за OSTD, както и документация по Kata Containers и Confidential Containers. Това подчертава, че контейнерно-виртуализационният сценарий е станал едно от основните направления на проекта.
Asterinas 0.18 не може да се разглежда като замяна на Linux за ежедневна употреба, но изданието значително напредва проекта към практическите сървърни и контейнерни сценарии. Особено важни са три направления: съвместимост с Linux програми, поддръжка на механизми за изолация и работа в VM-базирани контейнерни среди.
Източник: linux.org.ru
