starry-kernel 0.5.9

A Linux-compatible OS kernel built on ArceOS unikernel
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.5.9]https://github.com/rcore-os/tgoskits/compare/starry-kernel-v0.5.8...starry-kernel-v0.5.9 - 2026-04-27

### Added

- *(starry)* harden stat/fstatat/statx and add test-stat-family suite ([#300]https://github.com/rcore-os/tgoskits/pull/300)
- *(ax-sync)* add mutex lockdep and fix Starry atomic-context violations ([#271]https://github.com/rcore-os/tgoskits/pull/271)
- *(starry)* implement per-process credentials subsystem and permission checks ([#246]https://github.com/rcore-os/tgoskits/pull/246)
- *(prctl)* implement PR_SET_PDEATHSIG and PR_GET_PDEATHSIG with signal delivery ([#249]https://github.com/rcore-os/tgoskits/pull/249)
- *(platform)* parse physical memory size from DTB and fix RLIMIT_STACK default ([#248]https://github.com/rcore-os/tgoskits/pull/248)
- *(signal)* implement SA_RESTART syscall restart semantics ([#247]https://github.com/rcore-os/tgoskits/pull/247)

### Fixed

- *(starry)* stabilize shm deadlock regression
- *(syscall)* support preadv2/pwritev2 offset=-1 and reject unsupported flags ([#326]https://github.com/rcore-os/tgoskits/pull/326)
- *(starry)* accept sigaltstack with exactly MINSIGSTKSZ bytes ([#207]https://github.com/rcore-os/tgoskits/pull/207)
- *(file)* write on directory fd returns EBADF instead of EISDIR ([#324]https://github.com/rcore-os/tgoskits/pull/324)
- *(prlimit64)* allow raising hard limit instead of silent no-op ([#319]https://github.com/rcore-os/tgoskits/pull/319)
- *(epoll)* re-queue interest after EPOLL_CTL_MOD ([#314]https://github.com/rcore-os/tgoskits/pull/314)
- *(lseek)* return EINVAL for negative offset with SEEK_SET ([#303]https://github.com/rcore-os/tgoskits/pull/303)
- *(starry)* validate copy_file_range flags, file types, and overlap ([#211]https://github.com/rcore-os/tgoskits/pull/211)
- *(starry)* validate getrandom flags per Linux semantics ([#210]https://github.com/rcore-os/tgoskits/pull/210)
- *(tty)* improve termios handling and ensure safety in locking mecha… ([#308]https://github.com/rcore-os/tgoskits/pull/308)
- *(starry-kernel)* 修复 futex 等待中的用户态内存访问 ([#302]https://github.com/rcore-os/tgoskits/pull/302)
- *(ipc)* resolve SHM_MANAGER/shm_inner AB/BA deadlock under SMP ([#226]https://github.com/rcore-os/tgoskits/pull/226)
- *(mm/syscall)* fix pause() and NULL pointer validation for zero-length slices ([#296]https://github.com/rcore-os/tgoskits/pull/296)
- *(starry)* align mmap/munmap/mprotect error paths with Linux ([#285]https://github.com/rcore-os/tgoskits/pull/285)
- *(starry)* validate madvise advice/alignment/mapping per Linux ([#278]https://github.com/rcore-os/tgoskits/pull/278)
- respect pid in sched affinity syscalls ([#276]https://github.com/rcore-os/tgoskits/pull/276)
- fix/sys-pwritev2-read-at-to-write-at ([#280]https://github.com/rcore-os/tgoskits/pull/280)
- *(starry)* fix getgroups size=0 query and clock_gettime invalid clock_id behavior ([#208]https://github.com/rcore-os/tgoskits/pull/208)
- *(starry)* clamp clone3 user struct read length ([#269]https://github.com/rcore-os/tgoskits/pull/269)
- *(times)* use ProcessData for child CPU time instead of parent time ([#257]https://github.com/rcore-os/tgoskits/pull/257)
- *(starry)* fix fsync/fdatasync on directory fds and implement sync_file_range ([#251]https://github.com/rcore-os/tgoskits/pull/251)
- *(epoll)* fix epoll_pwait sigsetsize incompatibility with musl ([#250]https://github.com/rcore-os/tgoskits/pull/250)
- report real cpu affinity in proc status ([#267]https://github.com/rcore-os/tgoskits/pull/267)
- *(task)* process pending futex entry in exit_robust_list ([#259]https://github.com/rcore-os/tgoskits/pull/259)
- *(file)* return EISDIR instead of EBADF for directory read/write ([#264]https://github.com/rcore-os/tgoskits/pull/264)
- *(mm)* preserve mapping sharing type in sys_mremap ([#263]https://github.com/rcore-os/tgoskits/pull/263)
- *(tty)* read pgid from user arg in TIOCSPGRP handler ([#262]https://github.com/rcore-os/tgoskits/pull/262)
- *(ipc)* replace unwrap with error handling in sys_shmat ([#261]https://github.com/rcore-os/tgoskits/pull/261)
- *(fcntl)* return correct access mode flags in F_GETFL ([#260]https://github.com/rcore-os/tgoskits/pull/260)
- *(syscall)* add negative offset validation in sys_pwrite64 and pwritev ([#258]https://github.com/rcore-os/tgoskits/pull/258)
- *(file)* return correct errno for pipe fds instead of EPIPE ([#256]https://github.com/rcore-os/tgoskits/pull/256)

### Other

- *(starry)* reject invalid unlinkat flag bits with EINVAL ([#265]https://github.com/rcore-os/tgoskits/pull/265)
- *(starry)* add ioctl FIONBIO test and fix int parsing bug ([#255]https://github.com/rcore-os/tgoskits/pull/255)
- Implement RK3588 CRU driver with NPU support and enhancements ([#241]https://github.com/rcore-os/tgoskits/pull/241)
- Unifies breakpoint and debug trap handling across archs ([#244]https://github.com/rcore-os/tgoskits/pull/244)