Asterinas 0.18

Опубликован выпуск 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-based Kata Containers и Confidential Containers. Для этого в ядро добавили недостающие низкоуровневые механизмы: пространства имён, cgroups, virtio-fs, virtio-rng и переработанный vsock для обмена данными между хостом и гостевой системой.
Список основных изменений:
-
Подготовка к запуску в Kata Containers и Confidential Containers. Asterinas 0.18 делает важный шаг к запуску в качестве гостевой ОС внутри изолированных контейнерных виртуальных машин. Это важно для сценариев, где контейнеры запускаются не напрямую на ядре хоста, а внутри отдельной VM, в том числе в confidential computing-средах.
-
Поддержка 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 это важно для управляющих каналов, агентов и сервисного взаимодействия между VM и окружением запуска.
-
Появился ptrace и поддержка отладки userspace. Реализован системный вызов
ptraceи основные операцииPTRACE_SETOPTIONS,PTRACE_SYSCALL,PTRACE_PEEKиPTRACE_POKE. Благодаря этому на Asterinas теперь можно запускать привычные инструменты отладки вроде GDB и strace. Для них добавлены документация проверенного использования и CI-проверки. -
Новый NVMe-драйвер. В блочный слой добавлен драйвер NVMe. Это расширяет возможности Asterinas по работе с современными накопителями и делает систему ближе к практическому запуску на реальном и виртуализованном серверном железе.
-
Полностью переписанный драйвер EXT2. Файловая система EXT2 была реализована заново. Разработчики связывают это с общей модернизацией storage stack: файловая подсистема должна стать надёжнее и пригоднее для запуска реального пользовательского окружения.
-
Изменения в VFS и page cache. В VFS добавлен механизм
Dentryrevalidate, переработана реализация page cache, реализованpivot_root, появилась поддержкаO_TMPFILEдляopen/openat, а также исправлена ошибка page cache, которая могла приводить к утечке неинициализированной памяти в userspace. -
Расширение procfs. Добавлены
/proc/mounts,/proc/[pid]/auxv,/proc/[tid], дополнительные записи в/proc/[pid]/mapsиmountstats. Это повышает совместимость с Linux-приложениями и инструментами диагностики, которые ожидают привычную структуру/proc. -
Сетевые улучшения. Помимо переписанного vsock, появилась начальная поддержка IPv6, исправления реализации UDP и проверка прав при привязке к привилегированным портам: bind к таким портам теперь отклоняется без
CAP_NET_BIND_SERVICE. -
Механизм capabilities и начальный LSM framework. В релиз вошла реализация capabilities, поддержка capability bounding set, исправления системных вызовов, связанных с credentials, и начальный каркас 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-based контейнерных окружениях.
>>> Источник
