# V.3.0

> 发布日期: 2025-11-20

## 核心亮点

### Linux 兼容性突破
- **已通过 275 个 Linux 兼容性测试用例**，可在 [ci-dashboard.dragonos.org](https://ci-dashboard.dragonos.org) 持续跟踪测试结果
- 引入 gVisor Linux 系统调用自动化测试套件，每次提交/合并都能实时追踪内核行为与 Linux 的兼容性
- 通过多项 gVisor 系统调用测试，内核行为与 Linux 更接近

### 容器原生能力显著增强
- **命名空间支持**：UTS、IPC、mnt 命名空间完善，支持 `unshare` 操作，容器隔离边界与权限模型向 Linux 主线看齐
- **权限与能力**：`capset/capget` 系统调用、`sethostname/domainname` 修复，完善容器身份管理
- **文件系统增强**：xattr 六个系统调用、`SYS_PWRITEV`、`truncate`、路径遍历/目录切换权限检查，保障容器镜像构建和文件挂载的可控性
- **网络子系统重构**：全新的网络子系统实现，提供更好的 Linux 兼容性和可扩展性；桥接网络支持，应对多租户与边缘节点场景
- **运维工具**：Dropbear SSH 服务器支持，使轻量云原生场景可以即装即用

### 多线程稳定性提升
- 线程组退出机制、PI futex、`prctl(PR_SET_PDEATHSIG/PR_SET_NAME)` 等一系列改动，让复杂进程的生命周期控制更接近 Linux 主线
- Go 语言示例程序展示 DragonOS 在多线程场景下的最佳实践
- vfork、CLONE_PARENT_SETTID、signal frame、FP 状态等历史遗留问题彻底修复

### 系统调用全面扩容
新增 10+ 个系统调用接口支持，包括：
- `waitid`、`rt_sigtimedwait`、`setitimer/getitimer`、`clock_nanosleep`、`tgkill/tkill`
- `SYS_GETCPU`、`SYS_PWRITEV`、`truncate`
- xattr 相关六个系统调用、`capset/capget`
- `clone3`、`get_mempolicy`、`mincore`

## 版本概览
- **内核特性**：线程组退出、PI futex、PR_SET_PDEATHSIG/PR_SET_NAME、SYS_GETCPU、waitid、rt_sigtimedwait、setitimer/getitimer、clock_nanosleep 等调度/信号链路全面增强
- **内存与同步**：VM_DONTCOPY、mincore、RLIMIT_FSIZE、资源限制框架、异常表用户态访问保护，futex 子系统修复/重构 10+ 项
- **文件系统与命名空间**：引入 `pwritev`、`truncate`、xattr 六个系统调用、路径权限检查、UTS/mnt/IPC namespace、capset/capget、/proc 改进
- **平台与网络**：x86 kexec+initram、VF2 RISC-V 适配、桥接网络、大规模网络栈重构、Dropbear SSH 服务器、Go 用户态演示与工具链完善
- **工程效率**：CI 容器升级、测试上传与监控、gVisor/FreeBSD bootstrap 支持、Nix-shell 工具链版本锁定

## 详细变更

### 1. 线程与信号：向 Linux 行为对齐
- PRCTL 新选项、备用信号栈拷贝、克隆/等待语义补完，`waitid`/job control、资源限制（rlimit）框架与 RLIMIT_FSIZE 检查 (#1386, #1363, #1362, #1333, #1300, #1312)。
- `setitimer/getitimer`、`clock_nanosleep`、`tgkill/tkill` 等定时器/信号路由补齐；fs/gs 用户空间验证、`clone3` + `/proc/cpuinfo`、`PR_SET_PDEATHSIG` 支持，提升 ABI 兼容性 (#1377, #1307, #1336, #1299).
- 大量信号/线程相关修复：vfork、CLONE_PARENT_SETTID、signal frame、FP 状态、sys_sigaction/sigprocmask、/proc/self/exe 链接等，解决兼容性和稳定性问题 (#1358, #1342, #1357, #1356, #1347, #1359)。

### 2. Futex & 内存：同步栈焕然一新
- PI futex、共享键生成重构、robust futex 竞态修复、wake op 兼容性、参数校验、futex test 启用，形成更完整的 futex 行为矩阵 (#1373, #1376, #1374, #1372, #1371, #1326, #1321, #1320, #1311, #1276, #d5158a0, #e85d1cd).

- **内存管理改进**：VM_DONTCOPY 标志、异常表驱动的安全用户态访问、mincore、madvise/msync 边界修复、匿名共享页同步、伙伴分配器死锁 & 边界检查等内核内存改进 (#1383, #1349, #1334, #1301, #1258, #1345, #1334, #1361, #1280)
- **资源限制**：Rlimit 框架与 RLIMIT_FSIZE、`get_mempolicy`、`clone3` 集成的 `/proc/cpuinfo`，增强资源观测与限制能力 (#1300, #1312, #1299)

### 3. 容器与命名空间：为云原生而生
- **网络子系统重构**：实现了全新的网络子系统，提供了更好的 Linux 兼容性，以及更好的可扩展性 (#977)
- **文件系统增强**：`SYS_PWRITEV`、`truncate`、路径遍历/目录切换权限检查、`mknodat`/fatfs 死锁修复、`syncfs`/`openat`/`unlinkat`/`lseek` 行为校正，保障文件系统语义一致性 (#1322, #1308, #1348, #1346, #1369, #1355, #1344)
- **命名空间支持**：扩展属性 xattr 六大系统调用、`capset/capget`、UTS namespace、`setdomainname/sethostname` 修复、IPC namespace 首版、mntns `unshare`，完善命名空间与安全隔离 (#1248, #1293, #1268, #1298, #1288, #1262)
- **容器网络与运维**：桥接网络、网络栈重构、Dropbear SSH 服务器支持，使得 DragonOS 离真正运行容器更近一步 (#1287, #1295, #1304)

### 4. 平台与设备：可部署性跃迁
- x86 `kexec` + initram 完成闭环，配合 reboot syscall 完善，为快速切换和自举铺平道路 (#1303, #1157)
- VF2 RISC-V 平台适配，DragonOS 成为国产 RISC-V 场景的可选方案 (#1285)
- SYS_GETCPU 与 SMP syscall table 对齐，让多核调度与性能分析更精准 (#1368, #1367)
- Go 语言示例程序，展示多线程场景下的最佳实践 (#1387)

### 5. 工程效率与社区：省时、省心、可复用
- **CI 与测试**：CI 容器升级至 v1.16，加入测试结果上传、syscall 测试监控、实时 stdout 输出，问题定位速度倍增 (#1380, #1364, #1341, #15964250)
- **自动化测试**：引入 gVisor Linux 系统调用自动化测试套件，每次提交/合并，都能实时追踪内核行为与 Linux 的兼容性 (#1306, #1271, #1371, #1296)
- **开发工具链**：Nix-shell Rust 固定版本、FreeBSD bootstrap 支持，让外部贡献者也能快速复现同一环境 (#40603716, #093388bd)
- **社区与文档**：多轮文档翻译更新、EdgeOne CDN 赞助商信息、README/支持者列表刷新 (#1385, #1317, #1315, #1294, #1292, #1290, #1289, #1281)

## 已知关注点
- futex 子系统近期大量变更，建议重点执行多线程压力与robust list 回归测试。
- 新增 kexec/initram & 网络重构涉及启动链路，若自定义硬件需重新验证启动脚本。
- Namespace/rlimit 相关 syscalls 需更新用户态工具链与测试以覆盖更多边界。

## 贡献者鸣谢
LoGin、kaleidoscope416、linfeng、Shenjie Yang、JingXuan_Wei、aLinChe、黄铭涛、Bruce.carrot93、Samuel Dai、Vitus、Yuming Jiang、火花等 15 位伙伴共同完成了 0.3.0。

## 参考资料
- **Linux 兼容性测试看板**：[ci-dashboard.dragonos.org](https://ci-dashboard.dragonos.org)
- **社区仓库**：[github.com/DragonOS-Community/DragonOS](https://github.com/DragonOS-Community/DragonOS)

