Asterinas 0.18.0 — Rust-ядро получило основу для Kata Containers и CoCo

Asterinas 0.18.0 вышла с набором изменений для запуска Rust-ядра как гостевой ОС в VM-based Kata Containers и Confidential Containers. В релизе появились namespaces, cgroups, virtio-fs, virtio-rng, переработанный vsock, поддержка ptrace, новый NVMe-драйвер и расширенная проверка приложений в Asterinas NixOS.

Asterinas 0.18.0
Asterinas 0.18.0

Asterinas 0.18.0 приближает Rust-ядро к контейнерным сценариям с виртуальными машинами

Asterinas — это экспериментальная Linux-совместимая операционная система, ядро которой пишется на Rust. Проект пытается сохранить совместимость с привычной Linux-средой на уровне ABI, то есть на уровне интерфейса, через который обычные программы общаются с ядром. Для пользователя это означает простую идею: приложения должны запускаться в знакомой среде, а внутренняя архитектура ядра может быть более безопасной за счёт Rust и меньшей зоны небезопасного кода.

Свежий повод к новости появился 9 июня 2026 года, когда Phoronix обратил внимание на релиз Asterinas 0.18.0 и его фокус на контейнерных сценариях. Сам официальный анонс версии опубликован командой Asterinas 4 июня 2026 года в материале Announcing Asterinas 0.18.0.

Главная линия релиза связана с запуском Asterinas как гостевой операционной системы для VM-based Kata Containers и Confidential Containers. Kata Containers используют лёгкие виртуальные машины, чтобы изолировать контейнеры сильнее, чем в обычном контейнерном окружении. Confidential Containers добавляют к этой идее сценарии конфиденциальных вычислений, где важна защита данных внутри изолированной среды.

Для Asterinas такой сценарий показателен: ядру нужно вести себя достаточно похоже на Linux, поддерживать привычные механизмы процессов, файловых систем, устройств и отладки, а также работать в виртуализированной инфраструктуре. Версия 0.18.0 закрывает часть этих базовых требований.

Namespaces, cgroups и VirtIO делают Asterinas ближе к инфраструктуре контейнеров

В Asterinas 0.18.0 появились IPC namespace и cgroup namespace, а также nsfs в /proc/[pid]/ns. Namespaces в Linux-среде отвечают за разделение окружений: процессы могут видеть собственный набор ресурсов, идентификаторов и системных объектов. Для контейнеров это один из ключевых строительных блоков, потому что приложение внутри контейнера должно жить в изолированной среде.

Cgroups решают другую задачу: они помогают группировать процессы и управлять ресурсами. В релизе добавлен PID sub-controller и частичная реализация CPU sub-controller. Поддержка пока развивается поэтапно, но даже частичная реализация важна для контейнерных сценариев, где системе нужно понимать, какие процессы относятся к конкретной группе и как учитывать их нагрузку.

Отдельный блок изменений связан с VirtIO. В Asterinas 0.18.0 добавлена поддержка virtio-fs для обмена файловой системой между хостом и гостевой ОС. Это полезно в виртуальных машинах, где гостевая система должна видеть данные, подготовленные на стороне хоста. Также появился virtio-rng с устройством /dev/hwrng, через которое гостевая ОС получает аппаратную энтропию. Для криптографии и генерации ключей качественный источник случайности имеет практическое значение.

Разработчики также полностью переработали vsock — механизм связи между хостом и гостевой виртуальной машиной. В контейнерных окружениях и confidential-сценариях такой канал нужен для служебного взаимодействия без классической сетевой настройки внутри гостевой системы.

Поддержка ptrace открывает путь к GDB и strace внутри Asterinas

Одна из заметных практических доработок в Asterinas 0.18.0 — реализация системного вызова ptrace. Через ptrace инструменты отладки могут наблюдать за процессом, останавливать его, читать память, отслеживать системные вызовы и разбирать поведение программы на низком уровне.

В релизе добавлены операции PTRACE_SETOPTIONS, PTRACE_SYSCALL, а также варианты PTRACE_PEEK и PTRACE_POKE. Благодаря этому на Asterinas становятся доступны привычные инструменты GDB и strace. Для разработчиков ядра и системного ПО это сильно упрощает диагностику: ошибку можно разбирать привычными средствами, а не только через собственные логи или специальные тестовые сборки.

Команда проекта отдельно подчёркивает, что для GDB и strace добавлены verified-usage documentation и CI-покрытие. Это важная деталь: поддержка инструмента в экспериментальной ОС ценнее, когда она закреплена тестами и документацией, а не держится на разовой демонстрации.

Хранилище получило новый NVMe-драйвер и переработанную ext2

В Asterinas 0.18.0 заметно изменился стек хранения данных. В блоковый слой добавлен новый NVMe-драйвер. NVMe — основной стандарт для современных быстрых SSD, поэтому его поддержка важна даже для экспериментальной ОС: без нормальной работы с быстрыми накопителями сложно проверять реальные сценарии, связанные с файловыми системами, базами данных и виртуальными машинами.

Файловая система ext2 была реализована заново. Для современного пользователя ext2 звучит как старая технология, но для разработки ядра она удобна как относительно простая и понятная файловая система. На ней можно проверять базовые механизмы чтения, записи, метаданных и взаимодействия с VFS.

VFS, общий слой виртуальной файловой системы, тоже получил изменения. В релизе появился механизм Dentry revalidate, переработан page cache и исправлена ошибка, при которой page cache мог отдавать в userspace неинициализированную память. Такие исправления не выглядят эффектно в списке функций, но именно они превращают экспериментальный проект в более пригодную платформу для длительных тестов.

Среди других файловых изменений есть поддержка virtio-fs, pivot_root, O_TMPFILE для open и openat, а также новые записи в procfs, включая /proc/mounts, /proc/[pid]/auxv, /proc/[tid] и дополнительные данные в /proc/[pid]/maps.

Asterinas NixOS расширила проверку реальных приложений

Asterinas NixOS — экспериментальная сборка, которая помогает запускать и проверять пользовательские программы поверх ядра Asterinas. В версии 0.18.0 команда проекта заявила более 100 проверенных популярных пакетов. Среди новых заметных примеров названы Codex, QEMU и Firefox.

Это важный маркер зрелости для Linux-совместимой ОС. Совместимость с Linux нельзя оценить только по количеству реализованных системных вызовов. Настоящая проверка начинается там, где запускаются сложные программы: браузеры, виртуализаторы, языковые рантаймы, инструменты разработки и тестовые наборы.

Для контроля совместимости проект добавил новые тестовые наборы: Linux kselftest, xfstests, стандартные unit-тесты Go, Python и JDK. Такой подход помогает ловить ошибки в разных слоях системы — от файловых операций до поведения системных вызовов и совместимости с языковыми рантаймами.

На странице GitHub проект описывает Asterinas как систему, которая стремится стать production-grade Linux alternative, а в README указывает поддержку более чем 230 Linux system calls и наличие экспериментального дистрибутива Asterinas NixOS. Эти формулировки всё ещё задают направление развития, а версия 0.18.0 показывает, какие части инфраструктуры команда считает ближайшими к практическому применению.

Сетевой стек и безопасность получили точечные системные изменения

Помимо контейнерных и файловых функций, Asterinas 0.18.0 включает изменения в сетевом стеке и безопасности. В релизе появилась начальная поддержка IPv6, исправления UDP и запрет привязки к привилегированным портам без CAP_NET_BIND_SERVICE. Для Linux-совместимой среды это ожидаемое поведение: процесс с обычными правами не должен свободно занимать системные порты.

В блоке безопасности добавлены capabilities, поддержка capability bounding set, исправления системных вызовов, связанных с credentials, и начальный LSM framework. Capabilities в Linux-среде позволяют дробить полномочия root на отдельные права. Например, процессу можно дать конкретную возможность работать с сетевыми настройками или привилегированными портами, не превращая его в полностью всесильный root-процесс.

LSM framework — основа для механизмов контроля доступа в стиле Linux Security Modules. Пока это начальный этап, но наличие такой базы важно для ОС, которая хочет быть совместимой с Linux-подходом к безопасности и запускаться в изолированных средах.

Выход Asterinas 0.18.0 демонстрирует переход от лабораторного ядра к тестовой платформе.

Asterinas 0.18.0 интересна тем, что релиз сосредоточен на вещах, без которых сложно проверять операционную систему в приближённых к реальности условиях: контейнерная изоляция, cgroups, namespaces, VirtIO, отладка через GDB и strace, NVMe, файловые тесты и запуск сложных приложений.

Проект остаётся экспериментальным и развивается как альтернатива Linux с собственным Rust-ядром, поэтому его рано воспринимать как готовую замену привычным серверным дистрибутивам. Более точный практический смысл релиза в другом: Asterinas постепенно собирает совместимость, инструменты диагностики и тестовую инфраструктуру, которые нужны для серьёзной проверки ядра в виртуальных машинах и контейнерных окружениях.

Для разработчиков системного ПО и тех, кто следит за Rust в ядрах ОС, версия 0.18.0 даёт понятный сигнал: проект уже проверяет не отдельные демонстрационные программы, а более широкий набор реальных пакетов и сценариев. Следующие релизы покажут, насколько быстро Asterinas сможет расширять совместимость, закрывать пробелы в подсистемах и стабилизировать работу в VM-based контейнерах.

При использовании материалов сайта необходимо указывать ссылку на TGLand.ru. Если вы копируете фрагменты текста в интернете, прямая гиперссылка, доступная для индексации поисковыми системами, должна быть размещена в начале материала.

Вам также может понравиться