17 KiB
Version 0.17.0 (2025-12-17)
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.
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
Version 0.16.0 (2025-08-04)
This release introduces initial support for the LoongArch CPU architecture, a major milestone for the project. Version 0.16.0 also significantly expands our Linux ABI compatibility with the addition of nine new system calls such as memfd_create and pidfd_open.
Key enhancements include expanded functionality for UNIX sockets (file descriptor passing and the SOCK_SEQPACKET socket type), partial support for netlink sockets of the NETLINK_KOBJECT_UEVENT type, the initial implementation of CgroupFS, and a major testing improvement with the integration of system call tests from the Linux Test Project (LTP). We've also adopted Nix for building the initramfs, streamlining our cross-compilation and testing workflow.
Asterinas Kernel
We have made the following key changes to the Asterinas kernel:
- New system calls or features:
- Memory:
- Processes and IPC:
- File systems and I/O in general:
- Enhanced system calls or features:
- Processes:
- File systems and I/O in general:
- Sockets and network:
- Enable UNIX sockets to send and receive file descriptors
- Support
SO_PASSCRED&SCM_CREDENTIALS&SOCK_SEQPACKETfor UNIX sockets - Add
NETLINK_KOBJECT_UEVENTsupport for netlink sockets (a partial implementation) - Support some missing socket options for UNIX stream sockets
- Truncate netlink messages when the user-space buffer is full
- Fix the networking address reusing behavior (
SO_REUSEADDR)
- Security:
- New device support:
- Enhanced device support:
- Test infrastructure:
Asterinas OSTD & OSDK
We have made the following key changes to OSTD:
- CPU architectures:
- x86-64:
- RISC-V:
- LoongArch:
- CPU:
- Memory management:
- Trap handling:
- Task and scheduling:
- Test infrastructure:
We have made the following key changes to OSDK:
Before 0.16.0
Release notes were not kept for versions prior to 0.16.0.