Add 0.18.0 release notes

This commit is contained in:
Tate, Hongliang Tian 2026-06-04 09:25:53 +00:00 committed by Tate, Hongliang Tian
parent e027111145
commit 866d050736
1 changed files with 117 additions and 0 deletions

View File

@ -1,3 +1,120 @@
# Version 0.18.0 (2026-06-04)
The headline of this release is a major step toward running Asterinas as the guest OS for VM-based **[Kata Containers](https://katacontainers.io/)** and **[Confidential Containers (CoCo)](https://confidentialcontainers.org/)**. 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 hostguest 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](https://github.com/asterinas/asterinas/pull/2771)
* [Add documentation for more verified applications](https://github.com/asterinas/asterinas/pull/2956)
* [Add tests for popular applications](https://github.com/asterinas/asterinas/pull/3187)
* [Add Go std test on Asterinas NixOS](https://github.com/asterinas/asterinas/pull/2943)
* [Add JDK test on Asterinas NixOS](https://github.com/asterinas/asterinas/pull/3017)
* [Add Python regression tests on Asterinas NixOS](https://github.com/asterinas/asterinas/pull/2944)
* [Add QEMU test for virtualization applications](https://github.com/asterinas/asterinas/pull/3245)
* [Support `ARCH_GET_GS`/`ARCH_SET_GS` to enable Firefox](https://github.com/asterinas/asterinas/pull/3286)
## Asterinas Kernel
We have made the following key changes to the Asterinas kernel:
* Process management
* [Refactor `PidFile` and add the `pidfd_getfd` syscall](https://github.com/asterinas/asterinas/pull/2877), [add the `pidfd_send_signal` syscall](https://github.com/asterinas/asterinas/pull/2912), and [align `PidFile` semantics with POSIX](https://github.com/asterinas/asterinas/pull/2922)
* [Fix buggy behavior when loading corrupted ELF files](https://github.com/asterinas/asterinas/pull/2777)
* Ptrace
* [Add the `ptrace` syscall](https://github.com/asterinas/asterinas/pull/2984)
* [Support debugging with `ptrace`](https://github.com/asterinas/asterinas/pull/3065)
* Add [`PTRACE_SETOPTIONS`](https://github.com/asterinas/asterinas/pull/3061), [`PTRACE_SYSCALL`](https://github.com/asterinas/asterinas/pull/3241), and [`PTRACE_PEEK/POKE_TEXT/DATA`](https://github.com/asterinas/asterinas/pull/3242)
* Add (kernel-side) patches, verified-usage docs, and CI for [GDB](https://github.com/asterinas/asterinas/pull/3254) and [strace](https://github.com/asterinas/asterinas/pull/3266)
* [Support force-write via `/proc/[pid]/mem`](https://github.com/asterinas/asterinas/pull/2855)
* [Add the Yama ptrace scope](https://github.com/asterinas/asterinas/pull/3018)
* Signals and IPC
* [Correct `sigsuspend` and fix various other signal behaviors](https://github.com/asterinas/asterinas/pull/3050)
* [Fix lots of bugs in System V semaphores](https://github.com/asterinas/asterinas/pull/3199)
* Memory management
* [Respect `mmap` address hints](https://github.com/asterinas/asterinas/pull/3012)
* [Fix many wrong error codes and other buggy behavior in various MM syscalls](https://github.com/asterinas/asterinas/pull/2766)
* File systems
* VFS
* [Add the pseudo `Path`](https://github.com/asterinas/asterinas/pull/2798)
* [Introduce the `Dentry` revalidate mechanism](https://github.com/asterinas/asterinas/pull/3048)
* [Refactor the page cache implementation](https://github.com/asterinas/asterinas/pull/2953) and [fix a page cache bug that leaks uninitialized memory to userspace](https://github.com/asterinas/asterinas/pull/3256)
* [Implement the `pivot_root` syscall](https://github.com/asterinas/asterinas/pull/2445)
* [Implement `O_TMPFILE` support for `open`/`openat`](https://github.com/asterinas/asterinas/pull/3185)
* [Refactor `Metadata`'s fields and fix pseudo-filesystems' Device ID](https://github.com/asterinas/asterinas/pull/2887)
* virtio-fs
* [Support virtio-fs in Asterinas](https://github.com/asterinas/asterinas/pull/3084)
* Ext2
* [Rewrite the ext2 filesystem](https://github.com/asterinas/asterinas/pull/3171)
* Procfs
* Add [`/proc/mounts`](https://github.com/asterinas/asterinas/pull/2929), [`/proc/[pid]/auxv`](https://github.com/asterinas/asterinas/pull/3073), [`/proc/[tid]`](https://github.com/asterinas/asterinas/pull/3125), [more entries in `/proc/[pid]/maps`](https://github.com/asterinas/asterinas/pull/2925), and [`mountstats`](https://github.com/asterinas/asterinas/pull/3054)
* Sockets and networking
* [Rewrite vsock](https://github.com/asterinas/asterinas/pull/3122)
* [Add initial IPv6 support](https://github.com/asterinas/asterinas/pull/3129)
* [Reject binding to privileged ports without `CAP_NET_BIND_SERVICE`](https://github.com/asterinas/asterinas/pull/3141)
* [Fix some UDP problems](https://github.com/asterinas/asterinas/pull/3282)
* Namespaces and cgroups
* [Support nsfs (`/proc/[pid]/ns`)](https://github.com/asterinas/asterinas/pull/2966)
* [Support the IPC namespace](https://github.com/asterinas/asterinas/pull/2988)
* [Support the cgroup namespace](https://github.com/asterinas/asterinas/pull/3109)
* [Implement the cgroup PID sub-controller](https://github.com/asterinas/asterinas/pull/2987)
* Add a partial cgroup CPU sub-controller, providing [`cpu.stat` statistics](https://github.com/asterinas/asterinas/pull/3116) and [dummy `cpu.weight`/`cpu.max` limit files](https://github.com/asterinas/asterinas/pull/3175)
* [Bind mount namespace files](https://github.com/asterinas/asterinas/pull/3082)
* Security
* [Implement capabilities and execution of programs by root](https://github.com/asterinas/asterinas/pull/2978)
* [Implement capability bounding set support](https://github.com/asterinas/asterinas/pull/3092)
* [Fix credentials-related system calls and clean them up](https://github.com/asterinas/asterinas/pull/2952)
* [Add the initial LSM framework](https://github.com/asterinas/asterinas/pull/3078)
* Devices
* Block and NVMe
* [Add the NVMe driver](https://github.com/asterinas/asterinas/pull/1984)
* PCI
* [Improve PCI device enumeration and detection](https://github.com/asterinas/asterinas/pull/2680)
* [Get the PCI bus range from FDT/ACPI and add support for PCI ECAM on x86](https://github.com/asterinas/asterinas/pull/2914)
* TTY and console
* [Support multiple TTYs](https://github.com/asterinas/asterinas/pull/3049)
* [Support the NS16550A UART console, `/dev/ttyS0`, and `console=ttyS0`](https://github.com/asterinas/asterinas/pull/2837)
* [Keyboard enhancements](https://github.com/asterinas/asterinas/pull/3000)
* VirtIO
* [Support `virtio-rng` and expose it as `/dev/hwrng`](https://github.com/asterinas/asterinas/pull/2951)
* [Model `virtqueue` as untrusted and use fallible allocation in `aster-virtio`](https://github.com/asterinas/asterinas/pull/3160)
* TDX
* [Add TSM-MR (measurement register) sysfs support](https://github.com/asterinas/asterinas/pull/2891)
* Tests
* [Add Linux kselftest test suite](https://github.com/asterinas/asterinas/pull/2900)
* [Add the xfstests test suite](https://github.com/asterinas/asterinas/pull/2945)
* Misc
* [Add a generic syscall table](https://github.com/asterinas/asterinas/pull/2819)
* [Introduce the kernel parameter framework](https://github.com/asterinas/asterinas/pull/3010)
## Asterinas OSTD & OSDK
We have made the following key changes to OSTD and/or OSDK:
* OSTD
* [Replace the `log` crate with OSTD's own logging API](https://github.com/asterinas/asterinas/pull/3080)
* [Refactor `Pod` with zerocopy](https://github.com/asterinas/asterinas/pull/2898)
* [Refactor the DMA APIs](https://github.com/asterinas/asterinas/pull/2351)
* [Add a Memcpy/Memset trait framework for typed memory copies](https://github.com/asterinas/asterinas/pull/3022)
* Misc
* [Add a Docker development environment on ARM (aarch64)](https://github.com/asterinas/asterinas/pull/2691)
## Asterinas Book
We have made the following key changes to the Book:
* [Add coding guidelines](https://github.com/asterinas/asterinas/pull/2974)
* [Add OSTD soundness analysis](https://github.com/asterinas/asterinas/pull/3042)
* [Add Kata Containers documentation](https://github.com/asterinas/asterinas/pull/3170)
* [Add Confidential Containers (CoCo) documentation](https://github.com/asterinas/asterinas/pull/3192)
# 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.