The Asterinas community is happy to announce a new version of Asterinas, 0.17.0!
This release marks a significant milestone in the evolution of Asterinas as we transition from “just a kernel” to a more complete, usable system. The headline of this release is the introduction of Asterinas NixOS, our first distribution that integrates the Asterinas kernel with the NixOS userspace, and enables real applications and services out of the box—including XFCE, Podman, and systemd. To support this growth, we are also strengthening our governance by establishing the formal RFC (Request for Comments) process, ensuring that major architectural decisions—starting with Asterinas NixOS itself—are designed transparently and collaboratively.
On the architecture front, RISC-V support has improved dramatically, with support for SMP (Symmetric Multiprocessing), FPU (Floating-Point Unit), VirtIO, and the SiFive HiFive Unleashed QEMU machine type. The kernel has also expanded with a new input subsystem (supporting keyboards and mice) and initial support for namespaces and cgroups. For filesystem developers, the big news is the addition of an FS event notification mechanism (inotify), a new ioctl infrastructure, and a new filesystem type, ConfigFS. Finally, we are introducing sctrace—a dedicated tool for tracing and debugging syscall compatibility—now published on crates.io.
We’d also like to extend a huge congratulations to members of the Asterinas community whose outstanding research papers about Asterinas were recently recognized by prestigious academic conferences:
- “CortenMM: Efficient Memory Management with Strong Correctness Guarantees” received the Best Paper Award at SOSP’25.
- “RusyFuzz: Unhandled Exception Guided Fuzzing for Rust OS Kernel” was accepted by ICSE’26.
- “MlsDisk: Trusted Block Storage for TEEs Based on Layered Secure Logging” was accepted by FAST’26.
Asterinas NixOS
We have made the following key changes to Asterinas NixOS:
- Add NixOS as a distribution for Asterinas
- Add the XFCE Nix module
- Add the Podman Nix module
- Enable systemd
- Add Asterinas NixOS ISO installer
- Add Cachix as a source for pre-built binaries
- Add GitHub workflows to publish ISO images
Asterinas Kernel
We have made the following key changes to the Asterinas kernel:
- CPU architectures:
- Memory management
- Process management
- IPC
- File systems
- VFS
- Devtmpfs
- Procfs
- Add
/proc/cmdline,/proc/stat,/proc/uptime,/proc/version,/proc/[pid]/environ,/proc/[pid]/oom_score_adj,/proc/[pid]/cmdline,/proc/[pid]/mem,/proc/[pid]/mountinfo,/proc/[pid]/fdinfo, and/proc/[pid]/maps - Support the sleeping and stopping states in
/proc/[pid]/stat - Introduce
VmPrinterand refactor procfs withVmPrinter - Fix a lot of bugs in procfs
- Add
- Ext2
- Configfs
- Sockets and networking
- Namespace and cgroups
- Devices
- Input devices
- TTY and PTY
- System management
- Misc
Asterinas OSTD & OSDK
We have made the following key changes to OSTD and/or OSDK:
- CPU architectures
- Common
- x86
- RISC-V
- CPU
- Memory management
- Interrupt handling
- Misc
Asterinas Book
We have made the following key changes to the Book:
- Add the first RFC: “Establish the RFC process”
- Add the second RFC: “Asterinas NixOS”
- Add a new “Limitations on System Calls” section to the book
- Add the Asterinas NixOS volume
Contributors
This release was made possible by contributions from 27 individuals. Thank you for your amazing work!
- Ruihan Li (164 commits)
- Chen Chengjun (90 commits)
- jiangjianfeng (69 commits)
- Zejun Zhao (45 commits)
- Wang Siyuan (45 commits)
- Tao Su (44 commits)
- Zhang Junyang (43 commits)
- Tate, Hongliang Tian (34 commits)
- Qingsong Chen (21 commits)
- Yuke Peng (19 commits)
- Zhe Tang (18 commits)
- vvsv (16 commits)
- Hsy-Intel (15 commits)
- Cautreoxit (13 commits)
- Yang Zhichao (8 commits)
- Arthur Paulino (8 commits)
- wyt8 (5 commits)
- Zhenchen Wang (5 commits)
- Wei Zhang (5 commits)
- zjp (4 commits)
- Chaoqun Zheng (2 commits)
- zhuowei shao (1 commit)
- wheatfox (1 commit)
- Ruize Tang (1 commit)
- John Hughes (1 commit)
- Hang Shu (1 commit)
- Calvin (1 commit)