The Asterinas community is happy to announce a new version of Asterinas, 0.18.0!
The headline of this release is a major step toward running Asterinas as the guest OS for VM-based Kata Containers and Confidential Containers (CoCo). Getting there requires a host of new building blocks, and this release delivers many of them: namespaces (the IPC and cgroup namespaces, plus nsfs at /proc/[pid]/ns), cgroups (the PID sub-controller and a partial CPU sub-controller), virtio-fs for sharing a filesystem with the host, virtio-rng (/dev/hwrng) for hardware entropy, and a fully reimplemented vsock for host–guest communication.
Userspace debugging comes to Asterinas in this release. We implement the ptrace syscall along with its core operations—PTRACE_SETOPTIONS, PTRACE_SYSCALL, and PTRACE_PEEK/POKE—which together enable popular debugging tools such as GDB and strace to run on Asterinas, complete with verified-usage documentation and CI coverage.
This release also substantially modernizes the storage stack. The ext2 filesystem has been reimplemented, a new NVMe driver joins the block layer, and the VFS gains a new Dentry revalidate mechanism alongside a refactored page cache. The result is a more reliable and capable storage stack.
Finally, Asterinas NixOS dramatically expands its coverage of real-world software, with over 100 popular packages now verified—including Codex, QEMU, and Firefox. To keep this growing catalog working, we have integrated a range of new test suites, including kselftest, xfstests, and the standard unit-test suites of Go, Python, and JDK.
Asterinas NixOS
We have made the following key changes to Asterinas NixOS:
- Add a framework for Asterinas NixOS test suites
- Add documentation for more verified applications
- Add tests for popular applications
- Add Go std test on Asterinas NixOS
- Add JDK test on Asterinas NixOS
- Add Python regression tests on Asterinas NixOS
- Add QEMU test for virtualization applications
- Support
ARCH_GET_GS/ARCH_SET_GSto enable Firefox
Asterinas Kernel
We have made the following key changes to the Asterinas kernel:
- Process management
- Ptrace
- Add the
ptracesyscall - Support debugging with
ptrace - Add
PTRACE_SETOPTIONS,PTRACE_SYSCALL, andPTRACE_PEEK/POKE_TEXT/DATA - Add (kernel-side) patches, verified-usage docs, and CI for GDB and strace
- Support force-write via
/proc/[pid]/mem - Add the Yama ptrace scope
- Add the
- Signals and IPC
- Memory management
- File systems
- VFS
- Add the pseudo
Path - Introduce the
Dentryrevalidate mechanism - Refactor the page cache implementation and fix a page cache bug that leaks uninitialized memory to userspace
- Implement the
pivot_rootsyscall - Implement
O_TMPFILEsupport foropen/openat - Refactor
Metadata’s fields and fix pseudo-filesystems’ Device ID
- Add the pseudo
- virtio-fs
- Ext2
- Procfs
- VFS
- Sockets and networking
- Namespaces and cgroups
- Support nsfs (
/proc/[pid]/ns) - Support the IPC namespace
- Support the cgroup namespace
- Implement the cgroup PID sub-controller
- Add a partial cgroup CPU sub-controller, providing
cpu.statstatistics and dummycpu.weight/cpu.maxlimit files - Bind mount namespace files
- Support nsfs (
- Security
- Devices
- Block and NVMe
- PCI
- TTY and console
- VirtIO
- TDX
- Tests
- Misc
Asterinas OSTD & OSDK
We have made the following key changes to OSTD and/or OSDK:
- OSTD
- Misc
Asterinas Book
We have made the following key changes to the Book:
- Add coding guidelines
- Add OSTD soundness analysis
- Add Kata Containers documentation
- Add Confidential Containers (CoCo) documentation
Contributors
This release was made possible by contributions from 36 individuals. Thank you for your amazing work!
- Ruihan Li (191 commits)
- jiangjianfeng (92 commits)
- Wang Siyuan (72 commits)
- Qingsong Chen (64 commits)
- Chen Chengjun (59 commits)
- Tate, Hongliang Tian (52 commits)
- Tao Su (46 commits)
- Zhang Junyang (36 commits)
- zjp (26 commits)
- li041 (23 commits)
- Xinyi Yu (23 commits)
- Marsman1996 (18 commits)
- wyt8 (17 commits)
- Aaron Chen (9 commits)
- zzj-5341 (9 commits)
- Chaoqun Zheng (8 commits)
- Hsy-Intel (7 commits)
- Cautreoxit (4 commits)
- Chao Liu (4 commits)
- Junrui Luo (4 commits)
- Ray Lee (4 commits)
- rikosellic (4 commits)
- TankTechnology (4 commits)
- Zhenchen Wang (4 commits)
- Yuke Peng (3 commits)
- Zhihang Shao (3 commits)
- yyda (3 commits)
- Arthur Paulino (1 commit)
- Jakob Hellermann (1 commit)
- Linermao (1 commit)
- lxh (1 commit)
- Shen Bowen (1 commit)
- Wei Zhang (1 commit)
- wrj97 (1 commit)
- YanLien (1 commit)
- zzjrabbit (1 commit)