
Опубликован выпуск 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 добавлен механизм Dentry revalidate, переработана реализация 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 контейнерных окружениях.
>>> Источник

1 час назад
1









English (US) ·
Russian (RU) ·