Домой Статьи и аналитика Технологии Asterinas 0.18: Rust-ядро для облачных контейнеров

Asterinas 0.18: Rust-ядро для облачных контейнеров

Экспериментальная операционная система на Rust приблизилась к поддержке облачных сред, внедрив механизмы изоляции и улучшенную совместимость с Linux ABI.

Asterinas 0.18: Rust-ядро для облачных контейнеров
Asterinas 0.18: Rust-ядро для облачных контейнеров — иллюстрация к материалу. Источник: linux.org.ru

Представлен релиз Asterinas 0.18.0 — экспериментальной операционной системы и ядра, написанных на языке Rust. Проект стремится стать полноценной «production-grade» альтернативой Linux, сохраняя при этом совместимость с Linux ABI. Основная цель разработчиков — объединить безопасность памяти, которую обеспечивает Rust, с высокой производительностью и возможностью запуска стандартного пользовательского окружения Linux. Исходный код проекта доступен на GitHub под лицензией MPL 2.0.

Фокус на виртуализацию и контейнеры

Ключевой задачей версии 0.18.0 стала подготовка Asterinas к роли гостевой ОС для Kata Containers и Confidential Containers. Для обеспечения эффективной работы в изолированных виртуальных машинах ядро получило ряд низкоуровневых механизмов: поддержку пространств имен (namespaces), cgroups, протокола virtio-fs и обновленный механизм vsock для обмена данными между хостом и гостевой системой.

Основные технические изменения

  • Контейнеризация: Реализована поддержка IPC и cgroup namespaces, а также nsfs, что приближает систему к стандартной модели изоляции процессов Linux. Добавлена начальная поддержка cgroups (PID и CPU sub-controllers).
  • Работа с устройствами: Внедрена поддержка virtio-fs для обмена файлами с хостом и virtio-rng для генерации случайных чисел через /dev/hwrng. Добавлен новый драйвер NVMe и переписан драйвер файловой системы EXT2.
  • Отладка и совместимость: Реализован системный вызов ptrace с базовыми операциями (PTRACE_SYSCALL, PTRACE_PEEK и др.), что позволяет использовать привычные инструменты GDB и strace. Расширены возможности procfs, включая поддержку /proc/mounts и /proc/[pid]/maps.
  • Сетевые протоколы и безопасность: Появилась ранняя поддержка IPv6 и механизмы контроля прав доступа к портам через CAP_NET_BIND_SERVICE. Внедрен начальный каркас LSM (Linux Security Modules) и поддержка управления привилегиями (capabilities).
  • Системные улучшения: Улучшена работа с PCI-устройствами, TTY и консолью. В Asterinas NixOS теперь проходит тестирование более 100 популярных пакетов, включая Firefox и QEMU.

Разработчики продолжают активно расширять тестовую базу: в проект интегрированы наборы Linux kselftest, xfstests, а также тесты для Python, Go и JDK. Обновление документации в Asterinas Book теперь подробно освещает сценарии работы с Kata Containers и вопросы безопасности.

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

Источник: https://www.linux.org.ru