01 引言
龙蜥社区在 Anolis OS 23.1 的开发过程中,项目团队紧密联系理事单位、生态伙伴、社区开发者和参与者,积极采纳了来自不同行业专家的意见和建议,在充分考虑系统兼容性、稳定性以及易用性等关键特性方面进行了深入细致的调研工作。基于这些综合考量,Anolis OS 23.1 版本对软件包的选择和组合进行了重新规划与决策,以确保其能够满足更为广泛的应用场景需求,并保持与业界最新技术发展同步。目前公开的预览版本中,龙蜥操作系统 Anolis OS 23.1 Alpha 1 已经集成了以下最新的核心基础软件组件:
- Linux 内核升级至最新稳定版本 6.6,引入诸多新功能,如:调度系统内核引入 EEVDF 调度器,改善延迟并提升性能;内存管理系统支持 MGLRU 算法和 Folios 内存管理机制,提高了系统的内存分配效率等。
- 编译器工具集合 GCC 选用的是 12.3.0 版本,确保了高稳定的的源代码编译能力和广泛的应用程序兼容性。
- 系统核心库 Glibc 更新至 2.38 版本,增加了倚天/龙芯向量优化支持等。
- Binutils 工具链采用最新的 2.41 版本,新增支持 Loongarch 架构指令集。
02 发布详情
2.1 概述
2.1.1 亮点
通用场景
- 核心组件自维护:kernel 6.6、gcc 12.3.0、glibc 2.38、binutils 2.41 等。
- 兼容性:初步落地 kABI 白名单机制。
- 国标支持:新集成阿里巴巴普惠体字体 ,增强 Glibc,实现了对新国标 GB18030-2022 的支持。
安全可信
- 新增铜锁软件包 8.3.3 支持。
- 建立漏洞处理(感知、评估、修复、披露)体系和能力。
运维&性能
- KeenTune(轻豚)功能升级到 2.3 版本,提供中断调优任务,并增加多场景对应的模版内容。
软硬协同
- 增强 Intel 的 QAT/DLB 加速能力,完成 E2E 场景(如 Nginx)全链路适配。
编程语言
- 更新 ACC(alibaba-cloud-compiler)到 13.0.1.4 ,持续对 C/C++应用场景进行针对性的优化。
- 合入 C++20 Modules 功能代码,修复缺陷。
- 修复 CoreBolt 模块及其他缺陷。
2.1.2 发行版链接
Anolis OS 23.1 Alpha 1 预览版本获取地址如下:
- x86_64 下载链接:
https://mirrors.openanolis.cn/anolis/23.1/isos/ALPHA1/x86_64/AnolisOS-23.1-ALPHA1-x86_64-dvd.iso
- aarch64 下载链接:
https://mirrors.openanolis.cn/anolis/23.1/isos/ALPHA1/aarch64/AnolisOS-23.1-ALPHA1-aarch64-dvd.iso
2.1.3 平台支持
体系结构支持:Anolis OS 23.1 Alpha 1 预览版本支持 x86_64 架构、aarch64 架构。
微架构支持:Anolis OS 23.1 Alpha 1 预览版本分别支持 x86_64-v2 及 armv8-a 微架构,并提供对 armv9-a 的支持能力。
2.2 L0 层软件 Kernel 6.6
- 基于 Linux 6.6.7 版本。
- 支持新任务调度器 EEVDF,内核引入 EEVDF(最早合格虚拟截止时间优先)的新调度器,用以替代CFS,通过算法确保进程公平调度,改善延迟并提升性能。
- 支持防止利用漏洞的影子栈,Linux内核新增了对 Intel 影子栈硬件特性的支持,它通过维护一个不可直接修改的辅助栈来防止栈修改攻击。
- 在 overlayfs 中加入了对 fs-verity 的支持,通过 overlay.verity xattr 在元数据文件上验证下层数据文件的完整性。
- 支持可配置的非绑定工作队列,改进了非绑定工作队列的CPU局部性感知,为各种硬件提供了配置选项,以在局部性和利用率之间取得平衡。
- 支持使用 io_uring 加速异步 Direct I/O,可显著提升性能。
- 支持 XFS 在线 fsck 的首批基础组件,XFS致力于实现不卸载文件系统即可自我修复的能力。
- 支持 Folios 内存管理机制,减少内存管理相关的开销,从而提高了系统的内存分配效率。
- 支持 CXL 高速互联协议。
- 支持 MGLRU 算法,通过优化页面回收机制和热度识别效率来降低系统的OOM(内存不足)概率。
- 支持 Intel 最新 EMR 和 SPR 架构处理器。
- 增强了性能分析工具 perf ,包括对 LTO(链接时优化)的支持、Yitian710 DDR PMU metric等功能集成,进一步提升了性能分析的准确性和便利性。
2.3 L1 层软件
2.3.1 核心工具
- gcc 升级至12.3.0:在原本 12.2.1 的版本已经支持了 C++17/C++20,部分支持 C++23 和实现支持 loongarch64 架构的基础上,新增了对基于 znver4 核心的 AMD CPU 支持,并且修复了大量已知问题。
- glibc 升级至 2.38:该版本新增了多线程相关的性能优化项,同时在 aarch64 架构上新增了对向量数学库 libmvec 的构建支持,并且新增了部分功能和宏以更好地支持 C2X 标准。
- binutils 升级至 2.41:新增 loongarch64 架构指令集:LSX 、LASX、LVZ 、LBT ,并优化了链接器;新增了对 Intel FRED、LKGS、AMX-COMPLEX 指令集的支持;新增 aarch64 架构 SME2 的支持。
2.4 L2 层软件
- ethtool 升级至 6.6 版本:该版本支持了 CMIS 模块的接收接口支持,并兼容旧版本内核的头文件。
- crash 升级至 8.0.4 版本:支持 kernel 6.6 的 core dump 文件分析,修复了部分已知问题。
2.5 L3 层软件
- KeenTune (轻豚)系列智能调优组件升级至 2.3.1 版本:
- bench,target 和 brain 引入 subprocess 机制,提供中断调优任务功能。
- 新增 feature 级别参数设置模块,新增设置脚本用于 xps/rps、affinity、gzip、glub、x264_265。
- 更新 memcached.conf, mysql.conf, nginx.conf, pgsql.conf, redis.conf 等 profile内容。
- tbb 升级至 2021.11.0 版本:优化了 NUMA 相关的库,修复了 cmake 相关的问题。
- runc 升级至 1.1.12 版本:新增了 cgroup v2 中对内存的数个优化参数,修复了严重安全漏洞 CVE-2024-21626。
03 特别声明
Anolis OS 23 操作系统发行版不提供任何形式的书面或暗示的保证或担保。 该发行版作为木兰宽松许可证第 2 版发布,发行版中的各个软件包都带有自己的许可证,木兰宽松许可证的副本包含在分发媒介中。 使用过程请参照发行版各软件包许可证。
Anolis OS 23.1 Alpha1 预览版本可用于试用体验,稳定和全测试覆盖正式版本会通过 Anolis OS 23.1 GA 版本发布。
04 致谢
感谢统信软件、龙芯中科、浪潮信息、中科方徳、中兴通讯、海光信息、Intel、兆芯、飞腾等(排名不分先后)各理事单位对 Anolis OS 23.1 版本研发过程中的大力支持。
反馈链接:
Bug 跟踪:https://bugs.openanolis.cn/
邮件列表:http://lists.openanolis.cn/
—— 完 ——