ReliefNT 5.3.0

更新内容

  • 新增针对 ReliefNT 编译的 Linux 风格 .ko 可加载模块:使用原版 Kbuild/modpost、ELF64 重定位、导出符号类型 CRC、vermagic、参数和依赖校验,实现 init_module、finit_module、delete_module 及 /proc/modules、/sys/module 状态视图。defconfig 默认内置,支持独立生命周期的部件可选 y/m/n。

  • 模块、设备、打开文件、挂载、VMA、IRQ、DMA 和在途回调统一保留实现 owner;引用未排空或硬件停止失败时拒绝释放。增加模块安装清单、树外模块构建及匹配的 prepared SDK,并支持薄 newc initramfs 的早期启动。

  • 新增 EHCI USB 2.0 与 xHCI USB 3.x 主机驱动,支持 BOT/SCSI U 盘、boot HID 键盘及相对鼠标、热移除和读写保护。块层增加经校验的 DOS MBR/EBR 分区识别,并保留 GPT 校验。

  • 重构物理内存拓扑、稀疏元数据及早期页表,解除原有 16 GiB 管理范围限制;物理直映射与设备 MMIO 使用独立窗口,DMA 分配按设备地址能力约束。小对象堆使用可回收 slab,减少连续页分配和持锁清零开销。

  • 增加 clean 页缓存回收、私有匿名页换出/换入、Linux version 1 swap 文件及分区、swapoff 恢复和 OOM 选择。提供真实 /proc/swaps、meminfo、vmstat 与 sysinfo 统计;当前 swap 后端限于具备所需同步 I/O 契约的 AHCI SATA。

  • 完善 MADV_DONTNEED、mincore、mlock/munlock 及共享匿名 backing 生命周期;JIT 权限转换、远端 TLB/CPU 同步和 exec 映像准入按实际映射处理,内存不足保留明确错误与可恢复状态。

  • 将对象、管道、PTY、epoll、共享匿名文件及网络注册表改为按需分配,修正 select 位图范围、管道容量/原子写入、memfd 稀疏页面与 seals;完善 TCP 排队发送、重传、超时、半关闭和最后引用关闭后的发送生命周期。

  • 新增 IPv6 双栈主机协议栈,覆盖 UDP/TCP/raw ICMPv6、邻居发现、重复地址检测、SLAAC、扩展首部、源端分片与重组。提供 Linux AF_INET6、辅助数据、IPv4 映射地址、rtnetlink 地址/路由管理及 IPv6 proc 视图。

  • 扩展 procfs 的进程/线程、映射、文件描述符、系统资源、磁盘、网络与 OOM 视图,按对象身份、权限和快照规则输出,避免旧固定展示范围截断真实资源。

  • 增加执行锁等待、持有和关中断窗口的可控统计,并允许符合条件的独占地址空间私有页故障并行处理;保留执行写事务、共享 MM、信号及任务生命周期的同步边界。

  • 修复 vmwgfx FIFO 背压、资源退休及 GPU 所有权路径;暂时拥塞返回可重试状态,简单 KMS PRESENT 避免通用渲染元数据分配,减少重复唤醒、清零和呈现开销。

  • 增加可选 VGA 文本控制台,移除旧 Desktop/windowd 的内核专用授权与接口;整理独立内核 Kconfig、Sphinx 手册和原生测试归属,修复宿主测试登记及夹具依赖,恢复独立 CI 门禁。

破坏性更新

是,涉及内核模块、驱动 ABI、已退休接口及内部开发路径。

  • .ko 必须针对匹配的 ReliefNT 配置、工具链、导出类型 CRC 和完整版本重新编译;不兼容 Linux 原版二进制模块或全部 Linux 内部 API,不提供忽略版本/CRC 的强制加载。

  • 驱动服务表为版本 2,扩展字段按大小校验,旧版本描述符在初始化前拒绝。保留历史前缀不等于旧驱动二进制兼容。

  • 旧桌面角色、窗口服务专用接口和相关授权已移除;设备操作使用现行文件权限、Linux capability 和公开 UAPI,不能继续依赖已退休的桌面身份。

  • Kconfig 仅承载内核实际消费的配置;依赖已删除选项、旧文档位置或私有结构布局的脚本、补丁和树外模块需要迁移。

更新与迁移注意事项

  1. 本次为 正式源码 Release,不附预编译内核、模块或 SDK。使用标签源码和锁定依赖重新构建,保持内核、符号、UAPI、模块与配套用户态一致;ReliefOS 独立发布系统集成。

  2. 在新的 O 目录构建;复用配置时执行 olddefconfig,核对所需驱动的 y/m/n。默认生产部件内置,启动核心保持内置;模块化根设备需要由操作系统提供匹配的 initramfs 和依赖闭包。

  3. swap 需要显式准备并启用,内核选项本身不创建交换空间。当前仅支持经准入的 AHCI SATA 文件或块后端;NVMe、USB 等后端不支持,普通文件必须完整分配。共享、设备、锁定或 pinned 页面等不属于当前换出范围,swapoff 可能因内存或 I/O 问题失败并保留活动区域。

  4. USB 支持范围为已实现的 BOT 存储及 boot HID;xHCI 不支持 Hub 路由,尚无 UAS、等时传输或任意 HID 描述符解释器。SuperSpeedPlus 速率解析不等于实测 10/20 Gbit/s 链路或吞吐认证。

  5. IPv6 为主机实现,不提供路由转发、IPsec 或全部组播扩展;DNS/RDNSS 与 DHCPv6 客户端属于用户态。链路本地地址需要接口区域,地址/路由管理与 raw socket 分别受对应 capability 限制。

  6. 64 TiB 是直映射窗口设计上限,不是已验证 RAM 容量。内存回收、OOM、执行锁及 GPU 改进不构成桌面延迟、实时性或统一吞吐承诺。

  7. 本次发布核对版本生成、数字宏和严格文档构建,内核编译及宿主回归由版本提交的 CI 验证。历史单项 QEMU 结果不等于本标签整版复验;VMware 验证未完成,物理硬件、长期稳定性和完整本机自举未完成验收。

开发者提示

  • 基础版本为 5.3.0,生成数字字段为 5/3/0;EXTRAVERSION/LOCALVERSION 与原生模块 ABI 后缀独立生成,完整 release 仍受 31 字节上限约束。

  • 使用根 Make、各目录 Kbuild、Module.symvers 和正式 headers_install 输出;prepared SDK 必须与内核 ABI 匹配,不能通过改写版本字符串冒充匹配。

  • 执行锁统计是 ReliefNT 自身的采样接口,不等同 Linux lockstat;启用采样会产生开销,报告时保留配置、平台和对照。

  • 原始 ABI golden 未重生成;版本 2 的追加驱动字段由独立夹具检查。定向宿主及 Linux ABI 测试通过不表示完整 POSIX/Linux 认证,未实现功能继续返回明确错误。

  • 本说明覆盖内核 5.1.2 版本提交 6ed7a28eccd191f20d872de4d169c9059a5bbbe7 之后至本标签的有效更新,不含 ReliefOS 应用、桌面和镜像打包;下一版以本次版本提交为起点。