LINUX.ORG.RU

Asterinas 0.18

 , ,


0

4

Опубликован выпуск 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 контейнерных окружениях.

>>> Источник

★★★★★

Проверено: cetjs2 ()
Последнее исправление: cetjs2 (всего исправлений: 1)

Полный бред уже на уровне заявленных фич, противоречащих друг другу.

den73 ★★★★★
()

Опять( или снова) «не Линукс», призванный решить проблемы разработчика , его личное наболевшее…

REDDERa
()
Ответ на: комментарий от REDDERa

Почему бы и нет. Этим и прекрасен opensource. Конечно, может быть эти бы усилия, да в разработку linux, но что если получится?

Pierre_Dolle
()
Ответ на: комментарий от REDDERa

Даже без решения каких то там проблем - альтарнатива и конкуренция это отлично. Особенно для таких проектов, как линукс. Вот не померло бы еще в ближайший год, а желательно в ближайшие 10 лет. А то возникают как грибы по осени и так же пропадают внезапно вникуда.

LightDiver ★★★★★
()

Правильно, давно надо всё ядро перевайбкодить на раст.
Место Линуса в учебниках истории.

Saakx
()
Ответ на: комментарий от REDDERa

Это какой-то спорт у растеров - переписать что-либо на Раст. А тут гляди-ка, взялись за операционку. Это ж как надо ненавидеть и не понимать указатели, чтобы выдумать целый язык!

vvb333007
()
Ответ на: комментарий от vvb333007

Судя по сотням уязвимостей, котоые ежедневно находят в сишном коде, не понимали указатели буквально все сишники за последние полвека)

slepoy_pew ★★
()
Ответ на: комментарий от LightDiver

Вот не померло бы еще в ближайший год, а желательно в ближайшие 10 лет.

Вот ReactOS сколько лет живет и не помирает. А что, она составила сколько-нибудь осмыслпенную альтернативу windows? Даже в угаре импортозамещения никто про нее не зарекается.

vitus ★★
()

О! Rust + Nix, всё как я люблю. Только есть замечание. Записывайте: нужна первоклассная поддержка WASM в качестве основного ABI. Поддержка Linux, *BSD и проч. раритетов может быть опциональной.

yvv1
()
Ответ на: комментарий от REDDERa

Опять( или снова) «не Линукс», призванный решить проблемы разработчика , его личное наболевшее…

Да-да… Только вот в разработчиках - китайское отделение Интел и пекинский университет. А в остальном всё норм, ничего необычного. :)

anonmyous ★★★
()
Ответ на: комментарий от LightDiver

линукс. Вот не померло бы еще в ближайший год, а желательно в ближайшие 10 лет.

Не помрёт. Во-первых, это китайцы. Во-вторых, неплохое применение показали - контейнеры. В третьих, штука уже крайне функциональная, судя по списку фич и видосам на гитхабе.

anonmyous ★★★
()

Новые тестовые наборы.

В проект интегрированы Linux kselftest, xfstests, стандартные тесты Go, Python и JDK, а также QEMU-тесты для виртуализационных приложений.

Ох…ть если он это всё уже проходит.

Это важно как признак взросления проекта: Asterinas всё активнее проверяют на реальных Linux-нагрузках.

Чума. Линукс славится масштабируемостью, и если они под реальной нагрузкой понимают суперкомпьютеры или облачные хранилища, то это офигеть какой прогресс.

anonmyous ★★★
()

Вот бы им теперь коллаборацию с ReactOS и какого-нибудь подобного проект для макинтошей

MEZON ★★★★★
()
Ответ на: комментарий от vvb333007

Ну так дайте растерам полвека, они вас удивят, не сомневайтесь :)

Не сомневаюсь. Через полвека программирование будет выглядеть совершенно по другому и Раст безнадёжно устареет. Но это не отменяет того факта, что НА ДАННЫЙ МОМЕНТ Си безнадёжно устарел, смысла писать на нем что-то новое нет никакого, а Раст - лучшее, чем можно его заменить.

slepoy_pew ★★
()
Ответ на: комментарий от unname

Я далек от темы микроконтроллеров, но что там за прошивка требуется, что на Си написать можно, а на Раст нельзя?)

slepoy_pew ★★
()
Ответ на: комментарий от slepoy_pew

ДАННЫЙ МОМЕНТ Си безнадёжно устарел, смысла писать на нем что-то новое нет никакого, а Раст - лучшее, чем можно его заменить.

Заменить и переписать - лозунг растеров. Если язык продержался 50 лет - это говорит о том, что язык крутой :). Я в сфере embedded живу, тут удобнее на Си.

vvb333007
()
Ответ на: комментарий от vvb333007

Если язык продержался 50 лет - это говорит о том, что язык крутой

Человек миллион лет в пещере жил, там же так круто было, не стоило наверное вылезать.

yvv1
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.