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-базирани Kata Containers и Confidential Containers. За това в ядрото бяха добавени липсващи ниско равнище механизми: пространства от имена, cgroups, virtio-fs, virtio-rng и преработен vsock за обмен на данни между хоста и гостуващата система.

Списък на основните изменения:

  • Подготовка за стартиране в Kata Containers и Confidential Containers.
    Asterinas 0.18 прави важна стъпка към стартиране като гостуваща ОС вътре в изолирани контейнерни виртуални машини. Това е важно за сценарии, където контейнерите не се стартират директно на ядрото на хоста, а вътре в отделна VM, включително в средите за конфиденциални изчисления.

  • Поддръжка на 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, това е важно за управляващите канали, агентите и услугите, които взаимодействат между виртуалните машини и средата на стартиране.

  • Добавен е ptrace и поддръжка за отстраняване на проблеми в потребителското пространство.
    Реализирана е системна повикване ptrace и основните операции PTRACE_SETOPTIONS, PTRACE_SYSCALL, PTRACE_PEEK и PTRACE_POKE. Благодарение на това, на Asterinas вече могат да се стартират познати инструменти за отстраняване на проблеми като GDB и strace. За тях е добавена документация за проверено използване и CI-тестове.

  • Нов NVMe драйвер.
    В блочния слой е добавен NVMe драйвер. Това разширява възможностите на Asterinas за работа с модерни устройства за съхранение и приближава системата до практическото стартиране на реално и виртуализирано сървърно оборудване.

  • Напълно пренаписан EXT2 драйвер.
    Файловата система EXT2 е реализирана повторно. Разработчиците свързват това с общата модернизация на стек за съхранение: файловата подсистема трябва да стане по-надеждна и подходяща за стартиране на реална потребителска среда.

  • Промени в VFS и кеша на страници.
    В VFS е добавен механизъм за повторна валидация на Dentry, преработена е реализацията на кеша на страниците, реализирана е функцията pivot_root, добавена е поддръжка за O_TMPFILE при open/openat и е поправена грешка в кеша на страниците, която можеше да доведе до изтичане на неинициализирана памет в потребителското пространство.

  • Разширение на procfs.
    Добавени са /proc/mounts, /proc/[pid]/auxv, /proc/[tid], допълнителни записи в /proc/[pid]/maps и mountstats. Това увеличава съвместимостта с Linux приложения и инструменти за диагностика, които очакват позната структура на /proc.

  • Мрежови подобрения.
    В допълнение към пренаписания vsock, е добавена начална поддръжка за IPv6, поправки в реализацията на UDP и проверка на правата при свързване към привилегировани портове: bind към такива портове сега се отхвърля без CAP_NET_BIND_SERVICE.

  • Механизъм за възможности и начален LSM фреймворк.
    В релиза е включена реализация на възможности, поддръжка на capability bounding set, поправки на системни повиквания, свързани с удостоверяване, и начален каркас на 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-базирани контейнерни среди.

Източник: linux.org.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster