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)
Ответ на: комментарий от WatchCat

Нахера мне на микроконтроллере для обычных задач еще и операционка? Вы туда еще иксы запихайте. Горе- разработчики.

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

Представь себе экономию даже одной детали в 10 рублей ценой на партии зотябы пять тысяч штук. Это уже ощущается. Это грубо полторы недели работы рядового. программиста.

В этой области всем насрать на преимущества языка, главное функционал за минимальные деньги,

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

О кровавые боги, ты даже свою ссылку прочитать не можешь.
Там тебе табличку выложили, в которой написано, что U585 2М флэша и 786К RAM.

Держи ссылку на официальный даташит

Как прочитаешь, возвращайся.

WatchCat ★★★★★
()
Последнее исправление: WatchCat (всего исправлений: 2)
Ответ на: комментарий от unname

Тебе вообще нихрена ничего не надо.
Ты даже просто прочитать не можешь источники, которые тебе дают.
А уж тем более проанализировать их.

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

10 рублей ценой на партии зотябы пять тысяч штук.

50 кРублей ~ €600.

полторы недели работы рядового. программиста.

€1.5k в месяц? Не цените вы себя. Ой, не цените. С другой стороны, смотрю я что вы пишите … может больше вам и не стоит платить.

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

Мы в РФ живем и сравниваем реальные цены. В розницу 103й от 160 р аналог от 60 рублей. А серя u5 от 900 в том же условном чипидипе

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

А я вовсе не программист. Я разработчик железа и совладелец компании, программистов я нанимаю, обычно на конкретную работу.

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

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

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

А я вовсе не программист.

Так с этого и начинать нужно было.

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

Есть такой анекдот, рассказывают про Николая І и Александра ІІІ. Там некий человек по глупости плюнул на портрет Государя Императора и был осужден за оскорбление величества. Государь же велел того человека отпустить со словами «мне на него тоже плевать». Так вот, мировому рынку и индустрии програмного обеспечения на вас тоже пофиг.

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

Ну как сказать. До 22 года примерно процентов двадцать рынка в одной востребованной нише медтехники было закрыто изделиями в том числе и моей разработки.

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

А я тебе указал на статью, где соревнуются две команды Си и Rust на конкретном микроконтроллере. Но ты даже не соизволил её прочитать и попытаться обдумать, а мнение имеешь.

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

Я не применяю u5 в своих проектах на данный момент. Либо исользуются больше мощные варианты где уже поднимается Linux, либо гораздо более простые микроконтроллеры, речь о которых и шла изначально и на этих вариантах все у раста пока плохо. Я не его противник и не оголтелый сторонник си. Но пока раст не готов для конкретного применения какой смысл с пеной у рта утверждать обратное? Если весь день орать «сахар» во рту слаще не станет

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

Ещё раз, кто сказал, что не готов?
Где сравнения, исследования, хоть что-то?
Ты заявлял, что он медленный, но где хоть какие-то подтверждения твоим словам?

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

Давай начнем вообще с такой простой и понятной вещи как документация.

Какая документация тебе нужна и искал ли ты её вообще?

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

Ну Ну а ты в 21 веке собираешься всю периферию через регистры ручками настраивать? раз про stm32f103 начали, хочу документацию на используемые либы.

unname
()
Последнее исправление: unname (всего исправлений: 1)
Ответ на: комментарий от unname

Я же у тебя спросил, искал ли ты документацию? Но ты в ответ какой-то сок мозга выдал.

Ты вообще хотя бы гуглил словосочетание «rust embeded»? Да на том же Хабре минимум две статьи для начинающих поиск выдаёт. Они конечно староваты, но тем не менее.

Такое ощущение, тебе же не нужна документация, т.к. она находится с полпинка. Тебе просто хочется доказать, что ты прав, но при этом ты даже не потрудился хоть как-то вопрос изучить.

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

Хреново же ты искал.
Потому что первая же ссылка в Гугле ведёт на rust-embedded на жытхабе.
А там тебе и «embeded Rust book», и «discovery book», и вообще книжная полка.

По поводу же твоего «давай документацию», а не пососать бы тебе бибу? Если ты даже поиск в Гугле не осилил, то смысл мне напрягаться?
Чтобы что? Я доки ещё лет пять назад находил, когда их откровенно было мало, но мне было интересно. Но сейчас их найти не сможет только тот, кто их не хочет искать.

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

Выпей таблеточки и узбакойся.
Первая же строка в Гугле выводит на HAL-библиотеку для работы с stm32f103 и к ней есть документация.

Вот реально, насколько же надо быть ленивой жопой, чтобы не суметь в поисковой строке набрать stm32f103 rust.
Но зато есть силы устраивать истерики на форуме.

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

А причем тут Hal? Это сишная библиотека и принципы работы с ней, с прямой работой с памятью, противоречат основной идее раста

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

И да, истерики у тебя. Я и не думаю тратить на тебя свои нервы. Ищи документацию давай

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

doublefacepalm.jpg

HAL - это «Hardware Abstraction Layer».
С какого бодуна это обязательно должна быть библиотека на Си? Для Rust HAL реализован на Rust.
И ты меня ещё в школу учиться посылал. Сам бы лучше сходил и базовые знания обновил.

Короче, ты нихрена не искал информацию, даже не напрягался. А истерику с «дайте документацию» устроил чисто ради срача. И я не вижу смысла в дальнейшем разговоре, т.к. даже если я тебя ткну непосредственно в документацию, ты, как тот мальчик из анекдота, будешь спрашивать «де море?»

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

Послушай альтернативный, если бы ты порылся то узнал бы что для раст есть embedded-hal библиотека без нормальной документации и с костылями. Но некоторые прикручивают именно hal и теряют все преимущества раста.

Так что давай документацию в студию.

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