Add 0.18.0 release notes
This commit is contained in:
parent
e027111145
commit
866d050736
117
RELEASES.md
117
RELEASES.md
|
|
@ -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 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](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.
|
||||
|
|
|
|||
Loading…
Reference in New Issue