发布日期: 2025-08-22 版本定位: 0.2.0 是 DragonOS 在「可用性、可观测性、可扩展性」三个维度的里程碑版本——引入 ext4、动态链接、eBPF、虚拟化、命名空间 (PID/Mount/User 初步)、多体系结构 (x86_64 / RISC-V64 / LoongArch64) 支持,以及系统调用子系统、内存/文件缓存子系统的大幅重构,为后续 0.3.x 的容器化、网络与调度增强打下基础。
核心亮点:
/proc/mounts
;页面缓存与文件映射体系化;支持实验性 overlayfs;改进 FAT & VFS 元数据 (statx / newfstatat)。unshare()
;改进进程组 / Session / TTY 作业控制;增强 /proc
进程信息。msync
、私有/共享文件映射;PageCache 脏页同步/回收;多处栈使用优化与爆栈修复;SLAB 与 buddy 回收改进。ERESTARTSYS
机制;补齐/新增大批系统调用(poll/epoll/select、eventfd、execveat、unshare、msync 等)。set*id / setres*
;chown/chmod
迁移与修复。mmap
+ 直接读写需结合 msync
;旧行为假设需调整。/proc/mounts
。rename/move
重构;statx
创建时间 (btime);文件映射;page cache 同步修复。statx/newfstatat
、faccessat2
、linkat/renameat2
、readlinkat
等;open/close/stat/ioctl 拆分;LookUpFlags;/proc
扩展(kthread 标记 / FD 占用 / exe 链接 / 运行/启动时间 / tty 信息)。unshare()
:新建 namespace(现覆盖 PID/Mount 基础)。wait4
修复。mmap
延迟分配 / msync
/ mprotect
修复 / madvise
/ msync
表接入。mincore()
占位返回 ENOSYS
;truncate_inode_pages
框架。bpf()
:初始 Map / kprobe / 统计样例;rbpf 升级 → 主线;Aya 兼容模板。kernel_main
+ 异常处理;RISC-V64 运行 Rust HelloWorld;多平台串口/控制台抽象;Serial Console + nographic。eventfd
/ epoll
/ poll
/ ppoll
/ select
/ pselect6
:等待/超时/信号一致性。seteuid/setegid/setres*
;chown/chmod/fchownat/lchown
。get/setgroups
;umask
类型改造;/proc
status 名称精确化。ERESTARTSYS
;批量迁移(process/mm/vfs/ipc)。mount
, umount2
, eventfd
, poll/ppoll/select/pselect6
, epoll
重构, fchdir
, mkdirat/mkdirat2
, utimensat/utimes
, newfstatat/statx
, execveat
, unshare
, set|getgroups
, msync
, madvise
, mremap
, mprotect
, brk/sbrk
, reboot
增强, rt_sigpending
, mincore(ENOSYS)
等。代表性修复:
wait/wait4
语义、do_wait
锁释放、Blocked 子进程处理。unlink
后脏页处理。safe_read/safe_write
;robust list。execve
错误传播。sleep
被信号打断 ERESTARTSYS
。getcwd
语义;read O_PATH
校验;unlink
后 dirty 清理;remount 错误;mprotect vm_flags
。execve
失败错误码。select/pselect6
初期编译问题。mount
, umount2
, fchdir
, mkdirat/mkdirat2
, linkat/renameat/renameat2
, newfstatat
, statx
, readlinkat
, faccessat/faccessat2
, eventfd
, poll
, ppoll
, select
, pselect6
, epoll
(重构), utimensat
, utimes
, msync
, madvise
, mremap
, mprotect
, brk/sbrk
(表化), execveat
, unshare
, setgroups/getgroups
, rt_sigpending
, reboot
(增强), mincore(ENOSYS)
...
感谢所有贡献者在内核子系统、文件系统、虚拟化、文档与工具链方面的持续投入。
特别感谢以下核心贡献者:
LoGin longjin@DragonOS.org, jinlong@tencent.com
linfeng: chenlinfeng25@outlook.com, 1925466036@qq.com
火花 sparkhhhhhhhhhh@outlook.com, 146502758+sparkzky@users.noreply.github.com
MemoryShore: 1353318529@qq.com, 105195940+MemoryShore@users.noreply.github.com
黄铭涛: 1037827920@qq.com, 114841534+1037827920@users.noreply.github.com
Jomo xuzihao@dragonos.org
Samuel Dai: samuka007@dragonos.org, dailvchen@dragonos.org
曾俊 110876916+ZZJJWarth@users.noreply.github.com
kaleidoscope416 2448956191@qq.com
github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
DoL 1240800466@qq.com
donjuanplatinum 113148619+donjuanplatinum@users.noreply.github.com
chiichen chiichen@qq.com
BrahmaMantra 140599389+BrahmaMantra@users.noreply.github.com
Vitus: zhzvitus@gmail.com, 144411726+Vitus213@users.noreply.github.com
YJwu2023 yujianwu2019@gmail.com
GnoCiYeH heyicong@dragonos.org
LIU Yuwei 22045841+Marsman1996@users.noreply.github.com
yuyi2439 68320855+yuyi2439@users.noreply.github.com
codeironman 1553389239@qq.com
EMasi 1176949486@qq.com
SMALLC 121806694+smallcjy@users.noreply.github.com
laokengwt 143977175+laokengwt@users.noreply.github.com
Godones chenlinfeng25@outlook.com
oeasy1412 oeasy1412@gmail.com
dragonosbot bot@dragonos.org
xiaolin2004 1553367438@qq.com, 109840258+xiaolin2004@users.noreply.github.com
/proc/mounts
/proc/*/status
。mmap
+ 直接写 + msync
。trace_pipe
。test_poll
/ test_epoll
。unshare
(挂载隔离 / PID 观察)。感谢所有开发者、测试者、文档贡献者及社区用户的反馈。DragonOS 0.2.0 站在前序版本的实验与积累之上,也为后续容器化、资源隔离与性能优化奠定结构基础。欢迎通过 Issue / PR / 讨论区持续参与。
ext4
overlayfs
PageCache
mmap
PID namespace
mount namespace
unshare
syscall table
eBPF
kprobe
tracepoint
Aya
KVM
VMX
EPT
LoongArch64
RISC-V
virtio console
loopback
eventfd
poll
epoll
select
pselect6
ppoll
statx
newfstatat
execveat
dynamic linking
Dadk 0.2.0
Cred
chown
msync
mprotect
utimensat
reboot
slab
buddy
Guard Page
WP
Tokio
groupprocess/session
-- END OF DragonOS 0.2.0 Release Notes --