Linux Kernel 6.12 正式发布!新版本不仅引入了大量新功能和改进,而且从更新规模来看,也是近年来最大的一次内核升级。接下来,让我们深入了解新版本的一些重要亮点。
Linux 6.12 内核更新亮点
实时内核特性取得重大突破
Linux 6.12 内核最大的亮点是,莫过于PREEMPT_RT
正式并入主线。这标志着 Linux 在实时计算领域迈出了至关重要的一步。
PREEMPT_RT
通过实现内核进程的可抢占性,大幅提升了实时应用的性能。在传统的内核中,大多数内核操作是不可中断的(即不可抢占的),而PREEMPT_RT
允许高优先级任务几乎零延迟地中断低优先级任务,从而显著改善系统的响应时间。
该技术自 2005 年提出以来,已经走过了近 20 年的发展历程。由于涉及大量复杂的技术难题PREEMPT_RT
采用了渐进式的整合策略,其各个组件在过去几年里陆续并入主线内核。
在 Linux 6.12 中,PREEMPT_RT
已经可以在以下平台上使用:
- Intel/AMD 的 32 位和 64 位系统
- ARM 64 位系统
- RISC-V 架构系统
调度器的革命性突破
Linux 6.12 内核引入了革命性的sched_ext
功能,这是一个基于 BPF 技术的可编程调度器框架。根据官方文档的描述,它允许通过一组 BPF 程序自定义调度器的行为。
正如 LWN 的主编 Jonathan Corbet 所指出的:「BPF 的核心优势在于,它能够在运行时从用户空间动态加载程序到内核中。这使得 Linux 系统能够实现与传统调度方式完全不同的调度策略。」
这一特性已经催生了多个专用调度器,其中最引人关注的是一款针对游戏优化的调度器。该调度器可以帮助 Linux 玩家获得更稳定的游戏帧率,改善游戏体验。
另一个值得关注的进展是 EEVDF 调度器。这个全新的调度算法将大幅提升 Linux 系统的任务调度效率。
硬件支持全面升级
作为每次内核更新的重要组成部分,Linux 6.12 为各类硬件带来了全新的驱动支持和性能优化,覆盖了从 Wi-Fi 适配器到笔记本电脑等多种设备。
- 新增设备支持
- GameForce Ace 掌机(基于 ARM 处理器)
- ODROID-M15 和 M2 单板计算机
- OneXPlayer 游戏设备的传感器
- Raspberry Pi 5 初步主线支持
- 输入设备优化
- Wacom 绘图板 获得重要升级:支持高分辨率滚动,改进触控环交互,实现双环同时操作。
- 笔记本电脑支持增强
- 华硕 Vivobook:新增风扇档位控制。
- 戴尔新品:支持自定义电池充电模式(如快充和涓流充电)。
- 联想 ThinkPad:Edge 系列风扇控制,以及 X12 Gen 2 可拆卸键盘支持。
- 搭载 Snapdragon 处理器的设备:如 ThinkPad T14s Gen 6 和 微软 Surface Laptop 7。
- 显卡功能提升
- Intel GPU 驱动新增通过
hwmon
接口报告风扇转速(RPM)功能。
- Intel GPU 驱动新增通过
- 其他重要更新
- ARM64 内核支持在受保护的 KVM 环境中作为虚拟客机运行。
perf
工具新增用户空间特性。- 支持设备内存中的 TCP。
- FireWire 性能优化。
- 新增 Rust 模块支持。
底层全面增强
- 文件系统更新
- XFS 文件系统开始支持超大页面块,并新增了两个
ioctl()
命令。 - EROFS 支持挂载文件内嵌的文件系统镜像。
- FUSE 子系统引入 ID 映射挂载功能。
- NFS 新增对
LOCALIO
协议的支持。 - NTFS 提供更详细的挂载命名空间信息。
- XFS 文件系统开始支持超大页面块,并新增了两个
- 性能与安全优化
- Linus Torvalds 亲自开发了用户空间地址屏蔽机制,有效平衡了 Spectre-v1 漏洞的防护与系统性能之间的矛盾。
- 故障诊断改进
- 内核崩溃诊断功能迎来重要升级:在 DRM(Direct Rendering Manager)崩溃时,新增了二维码错误信息显示,极大地方便了问题排查,特别是在错误信息难以完整显示或复制的情况下。
- 处理器支持增强
- RISC-V 平台:新增对多个 CPU ISA 扩展的支持。
- Intel 优化:P-State 驱动已为 Core Ultra 200 系列做好准备,并完善了混合 CPU 频率调节特性。
- AMD 改进:优化了 P-State 驱动,提升了 AMD Boost 性能,并改进了优先核心调度机制。
要了解完整更新日志,请参考 LWN 的合并总结 1 和 2。
最新评论
需要管理员权限
直接降级 Windows10 一次性永久解决问题
我按照作者的方法成功了
使用PowerShell修改失败,禁止访问