Publicada la versión Asterinas 0.18.0 — un sistema operativo experimental y un núcleo, escritos en Rust y orientados a la compatibilidad con Linux ABI. El proyecto se posiciona como un intento de crear una alternativa 'de grado de producción' a Linux, con un enfoque en la seguridad de la memoria, el rendimiento y la ejecución de un entorno de usuario Linux estándar. El código de Asterinas es abierto y se encuentra alojado en GitHub, la licencia principal del proyecto es MPL 2.0. El lanzamiento Asterinas 0.18.0 fue publicado el 4 de junio de 2026, y el 9 de junio fue destacado por Phoronix.
La principal dirección del lanzamiento es la preparación de Asterinas para ser utilizado como sistema operativo huésped para máquinas virtuales basadas en Kata Containers y Contenedores Confidenciales. Para ello, se añadieron al núcleo los mecanismos de bajo nivel que faltaban: espacios de nombres, cgroups, virtio-fs, virtio-rng y un vsock renovado para la comunicación entre el host y el sistema huésped.
Lista de cambios principales:
Preparación para su ejecución en Kata Containers y Contenedores Confidenciales.
Asterinas 0.18 da un paso importante hacia la ejecución como sistema operativo huésped dentro de máquinas virtuales de contenedores aislados. Esto es crucial para escenarios donde los contenedores no se ejecutan directamente en el núcleo del host, sino dentro de una VM separada, incluso en entornos de computación confidencial.Soporte para namespaces.
El núcleo ahora cuenta con namespaces IPC y cgroup, además de un nsfs que representa los espacios de nombres a través de /proc/[pid]/ns. Esto acerca a Asterinas al modelo de aislamiento de procesos utilizado por los contenedores de Linux.Soporte inicial para cgroups.
Se ha implementado un subcontrolador PID y un soporte parcial para el subcontrolador CPU. En particular, ahora hay estadísticas cpu.stat y marcadores para los archivos de límites cpu.weight y cpu.max. Esto aún no es una implementación completa de todo el mecanismo de cgroups, pero ya es una base necesaria para los escenarios de contenedores.virtio-fs para compartir el sistema de archivos con el host.
Se añadió soporte para virtio-fs, que permite al sistema huésped utilizar el sistema de archivos proporcionado por el host. Para los contenedores VM, este es uno de los mecanismos clave para la transferencia de datos sin soluciones pesadas y alternativas.virtio-rng y /dev/hwrng.
Se agregó virtio-rng con la exportación de entropía de hardware a través de /dev/hwrng. Esto es necesario para el funcionamiento normal de las operaciones criptográficas y generadores de números aleatorios dentro del sistema operativo huésped.vsock renovado.
Se ha reescrito completamente el vsock, el mecanismo de comunicación entre el host y la máquina virtual invitada. En el contexto de Kata Containers y Confidential Containers, esto es importante para los canales de control, agentes e interacciones de servicio entre VM y el entorno de ejecución.Se ha añadido ptrace y soporte para depuración de userspace.
Se ha implementado la llamada al sistema ptrace y las operaciones principales PTRACE_SETOPTIONS, PTRACE_SYSCALL, PTRACE_PEEK y PTRACE_POKE. Gracias a esto, en Asterinas ahora se pueden utilizar herramientas de depuración conocidas como GDB y strace. Se ha añadido documentación sobre su uso comprobado y pruebas CI.Nuevo controlador NVMe.
Se ha añadido un controlador NVMe en la capa de bloques. Esto amplía las capacidades de Asterinas para trabajar con dispositivos de almacenamiento modernos y acerca el sistema a un lanzamiento práctico en hardware de servidor real y virtualizado.Controlador EXT2 completamente reescrito.
El sistema de archivos EXT2 se ha implementado desde cero. Los desarrolladores lo vinculan con la modernización general del almacenamiento: el subsistema de archivos debería volverse más confiable y adecuado para la ejecución de un entorno de usuario real.Cambios en VFS y el caché de páginas.
Se ha añadido el mecanismo Dentry revalidate en VFS, se ha reestructurado la implementación del caché de páginas, se ha implementado pivot_root, se ha añadido soporte para O_TMPFILE en open/openat, y se ha corregido un error en el caché de páginas que podría causar fugas de memoria no inicializada en userspace.Expansión de procfs.
Se han añadido /proc/mounts, /proc/[pid]/auxv, /proc/[tid], entradas adicionales en /proc/[pid]/maps y mountstats. Esto mejora la compatibilidad con aplicaciones de Linux y herramientas de diagnóstico que esperan la estructura habitual de /proc.Mejoras de red.
Además del vsock reescrito, se ha añadido soporte inicial para IPv6, correcciones en la implementación de UDP y verificación de derechos al enlazar a puertos privilegiados: ahora se rechaza el bind a tales puertos sin CAP_NET_BIND_SERVICE.Mecanismo de capacidades y marco LSM inicial.
Esta versión incluye la implementación de capacidades, soporte para el conjunto de limitación de capacidades, correcciones de llamadas al sistema relacionadas con credenciales y un marco LSM inicial. Esto es parte del trabajo para acercar el modelo de seguridad de Asterinas a Linux.Mejoras en PCI, TTY y consola.
Se ha mejorado la detección de dispositivos PCI, se ha añadido soporte para PCI ECAM en x86, se ha implementado soporte para múltiples TTY, consola NS16550A UART, /dev/ttyS0 y el parámetro console=ttyS0. También se ha mejorado la interacción con el teclado.Expansión de Asterinas NixOS.
En Asterinas NixOS ahora se verifican más de 100 paquetes populares, incluidos Codex, QEMU y Firefox. Para Firefox, se ha añadido soporte específico para ARCH_GET_GS y ARCH_SET_GS.Nuevos conjuntos de pruebas.
El proyecto integra Linux kselftest, xfstests, pruebas estándar de Go, Python y JDK, así como pruebas de QEMU para aplicaciones de virtualización. Esto es importante como un signo de madurez del proyecto: Asterinas se está probando cada vez más en cargas reales de Linux.Cambios en OSTD y OSDK.
En OSTD se ha reemplazado el crate log por una API de registro propia, se han revisado las API de DMA, se ha añadido un marco para operaciones de copia de memoria tipadas, y se ha realizado una reestructuración de Pod utilizando zerocopy. Para el desarrollo, se ha añadido un entorno Docker en ARM/aarch64.Actualización de la documentación.
En Asterinas Book se han añadido reglas de codificación, análisis de soundness para OSTD, así como documentación sobre Kata Containers y Confidential Containers. Esto subraya que el escenario de virtualización basado en contenedores se ha convertido en una de las principales direcciones del proyecto.
Asterinas 0.18 no puede considerarse un reemplazo de Linux para el uso diario, pero el lanzamiento impulsa notablemente el proyecto hacia escenarios prácticos de servidores y contenedores. Tres direcciones son especialmente importantes: compatibilidad con programas de Linux, soporte para mecanismos de aislamiento y funcionamiento en entornos de contenedores basados en VM.
Fuente: linux.org.ru
