点击上方蓝字 "泰晓科技"关注我们吧:)
泰晓资讯每周跟踪报道开源界特别是 Linux 内核社区最前沿消息,助力国内 Linux 爱好者紧跟技术潮流,了解社区最新动态。
欢迎 “点赞 ”和 “转发 ”。
Linux 内核最新消息
本周初 Linus Torvalds 发布了 Linux 6.9 的第一个候选版本,这标志着为期两周的合并窗口正式结束。
Linux 6.9 有很多很大的改进,这包括:为当今的 4K 显示器带来了对更大帧缓冲控制台字体的支持,对 AMD P-State Preferred Core 的支持,实现了内核 SMB (KSMBD) 文件服务器的持久文件句柄,FUSE 的 passthrough 模式,继续支持英特尔 Xe 驱动程序,更多的 Bcachefs 文件系统工作,对 Snakebyte 游戏手柄支持,AMD / Intel 笔记本电脑支持改进,Intel FRED,更多 AMD MI300 系列支持工作,继续改进 IO_uring 等等。
Linus Torvalds 在 6.9-rc1 公告中认为版本的集成工作还算正常,变化的大部分都和 AMD GPU 头文件修改有关,整个 6.9rc1 中大约 40% 的改动是自动生成的 AMD GPU 定义。相比之下,比较有意义的改动是几个非常核心功能的更新。首先是定时器子系统进行了相当大的重写,实现了 per-cpu 的 timer wheel,这提高了定时器的性能,对于网络来说尤其重要。另一个值得注意的核心更新是 workqueue 子系统,其中一项值得注意的新增功能是 BH workqueue。之所以值得注意,主要是因为这意味着我们终于有办法摆脱 tasklets 了。tasklet 接口基本上已经弃用了很长一段时间,但我们从来没有真正有任何好的替代方案(线程化中断处理(threaded interrupt handlers)是一个建议的替代方案,但在许多情况下并不现实)。
https://www.kernel.org/ updated by 2024/3/28
分支类型 | 版本 | 发布时间 |
---|---|---|
mainline | 6.9-rc1 | 2024-03-24 |
stable | 6.8.2 | 2024-03-26 |
stable | 6.7.11 | 2024-03-26 |
longterm | 6.6.23 | 2024-03-26 |
longterm | 6.1.83 | 2024-03-26 |
longterm | 5.15.153 | 2024-03-26 |
longterm | 5.10.214 | 2024-03-26 |
longterm | 5.4.273 | 2024-03-26 |
longterm | 4.19.311 | 2024-03-26 |
linux-next | next-20240327 | 2024-03-27 |
关键词: Linux
Linux 6.9 对 Workqueues 进行了重大更改
Workqueues 通常在 Linux 内核中用于异步进程执行上下文中。在 Linux 6.9 中,工作队列 (WQ) 代码发生了 “significant and invasive” 的变化。这项工作是由 Tejun Heo 提交的,主要改动如下:
修正了 v6.6 中针对 unbound workqueues 所作修改引入的一个副作用,具体参考 5797b1c18919 ("workqueue: Implement system-wide nr_active enforcement for unbound workqueues") 增加 BH workqueue 支持。类似于 per-CPU workqueues,但这是在 softirq 上下文中执行。预计这将取代 tasklet。这个工作还有一些需要补充,为了避免在这个合并窗口中提交内容过多,所以后续的补充工作将包含在下一个版本的合并窗口中。 填补了 workqueues 中有关 CPU isolation 的一个长期存在的漏洞,即 ordered workqueues 没有遵循 wq_unbound_cpumask 更新。现在 ordered workqueues 也遵循与其他 unbound workqueues 相同的规则。 其他更多有关 CPU isolation 的改进。 Other misc changes.
新闻出处,“Linux 6.9 Sees Invasive & Significant Changes To Workqueues”: https://www.phoronix.com/news/Linux-6.9-Workqueue。
关键词: Linux, Workqueues
LoongArch 在 Linux 6.9 中的新增功能
在 Linux 6.9 中,Loongson 上周发布了一组补丁,继续为 Linux 内核的 LoongArch 处理器架构增加更多功能。
从 Linux 6.9 开始,LoongArch 架构代码现在允许 objtool 支持在内核构建过程中对目标文件执行不同的验证和转换。新的 LoongArch 代码还支持 ORC 堆栈 unwinder,支持 kernel live-patching,这使得我们无需重新启动系统即可将为正在运行的内核进行安全或者错误修复,此外 6.9 还支持更多内核配置功能。
总的来说,对于 LoongArch 来说,6.9 是一个很好的增量更新,它继续为这个源自 MIPS64 的中国 CPU 架构解决更多的内核功能,部分灵感来自 RISC-V。不过,当前一代的 LoongArch 处理器仍然比 AMD、Intel 和 Arm 等设计慢得多。
新闻出处,“LoongArch Enables More Kernel Functionality With Linux 6.9”: https://www.phoronix.com/news/Linux-6.9-LoongArch。
关键词: Linux, LoongArch
Linux 6.9 为 RISC-V 基于矢量加速改进了加密算法实现
RISC-V 架构于上周向 v6.9 提交了更新,这些改动将在 v6.9-rc1 中出现。
Linux 6.9 的 RISC-V 实现了更多基于 vector 加速的加密处理。其中包括采用 RISC-V vector 加速 AES-{ECB,CBC,CTR,XTS},ChaCha20,GHASH,SHA-256,SHA-384,SHA-512,SM3 和 SM4 算法。
RISC-V 上的新内核现在还支持对可移植内核构建的系统休眠支持、快速 GUP 处理、支持基于 membarrier 的指令缓存同步、ACPI LPI 和 CPPC支持以及其他新增功能。详细列表如下:
新闻出处,“Linux 6.9 Adds New RISC-V Vector-Accelerated Crypto Routines”: https://www.phoronix.com/news/Linux-6.9-RISC-V。
关键词: Linux, RISC-V
Linux 6.9 优化了大内存系统的启动速度
对于具有大量内存的系统,相较于旧的内核版本,Linux 6.9 内核利用 HugeTLB pages 技术可以以更快的速度启动。这归功于在 6.9 合并窗口期间内存管理 (MM) 更新中合并了一组补丁,用于在启动时并行化 HugeTLB 页面初始化。对于具有大量 HugeTLB 页面的系统,这可以大大缩短启动时间。
来自 Bytedance(字节跳动)的 Linux 开发人员 Gang Li 在补丁系列上投入了大量时间,经过了多轮审查,以使 HugeTLB 页面初始化正常工作。Gang Li 在该补丁系列的早期版本中解释说,启动期间的 Hugetlb 初始化会占用大量时间。例如,在 2TB 系统上,总的初始化时间需要 10 秒,而初始化其中的 1,800 个 1GB 大页面需要占用其中的 1-2 秒。在 12TB Intel 主机上初始化 11,776 个 1GB 页面需要 1 分钟以上。这是一个不可忽略的数字。受 "parallelizing deferred page initialization" 和 "skipping initialization of gigantic tail struct pages" 技术的启发,hugetlb 初始化也可以通过并行化来加速。内核已经有了像 padata_do_multithreaded
这样的基础设施,Gang Li 的这个补丁使用它来通过最少的修改来获得有效的结果。
对于具有大量 HugeTLB 页面的超大型服务器,这可以显著节省启动时间,经过对比测试,针对各种不同的负载内存大小情况,初始化时间的节省情况相较于没有应用补丁之前可以节省 49% ~ 76%。
新闻出处,“Linux 6.9 Will Boot Much Faster For Systems With Large Amounts Of RAM”: https://www.phoronix.com/news/Linux-6.9-RAM-HugeTLB-Boot-Fast。
关键词: Linux, HugeTLB, Bytedance
Linux 为 x32 启用 Shadow Stack 支持
早在 Linux 6.6 中,作为 Intel Control-flow Enforcement Technology (CET) 的一部分,Shadow Stack 支持最终被合并入主线。这项多年的努力可以更好地防御针对新一代 Intel 处理器的 ROP 攻击。从 Linux 6.10 开始,Shadow Stack 支持将扩展到 x32。
x32 ABI 仍然存在,尽管并不完全常见。再次科普一下,此 Linux ABI 在提供 x86_64 的优势的同时仍然使用 32 位指针。与 x86 32 位相比,它的优势在于能够利用 x86_64 增加的寄存器、浮点改进等,但仍然只使用 32 位的指针,这会将每个进程的内存限制为 4GB。
十年前,x32 ABI 听起来很棒,但现在很少听到 x32 的声音,大多数用户对 x86_64 已经感到满意。甚至偶尔有人呼吁是否应该弃用 x32。无论如何,令人惊讶的是,我们现在看到了对 x32 的 Shadow Stack 支持。
该补丁已经在 TIP.git 仓库的 “x86/shstk” 分支上排队。来自 Intel 的工程师 H.J. Lu 在 x32 上使用 Intel Tiger Lake 系统成功测试了这个功能。该补丁可能会在今年夏天提交到 Linux 6.10 内核中。无论如何,看到 Intel在 2024 年仍然在改进 x32 的确有点令人惊讶。
新闻出处,“Linux Enabling Shadow Stack Support For x32”: https://www.phoronix.com/news/Linux-x32-Shadow-Stacks。
关键词: Linux, x32, Shadow Stack
Linux 6.9 弃用 EXT2 驱动
Linux 6.9 带来了许多重大变化和新功能以及硬件支持,但同时也弃用了不少东西,譬如经典的 EXT2 文件系统驱动程序。
EXT2 文件系统已经存在了 30 年,EXT3 则有二十多年的历史,最新的 EXT4 在 Linux 内核中自从其稳定以来也已经有十五年了。EXT2 的使用率一直在下降,可能只是被用于访问旧的存储设备以及一些传统的 Linux 发行版上。
不过,它现在正在被弃用,主要原因是作为 Y2038 问题的一部分,该文件系统驱动程序不支持 2038 年之后的日期,由于无法正确支持 2038 年 1 月 19 日之后的时间戳,Linux 开发人员现在鼓励任何剩余的 EXT2 用户升级到使用 EXT4 驱动程序来访问他们的文件系统。EXT4 驱动程序能够处理 EXT2 文件系统,同时正确支持超过 Y2038 问题的日期。
因此,目前 EXT2 驱动程序已被弃用,其代码仅供参考,但可能会在未来几年内被删除。在 Bootlin 博客上(https://bootlin.com/blog/ext2-filesystem-driver-now-marked-as-deprecated/),介绍了有关弃用 EXT2 驱动程序的更多详细信息。
新闻出处,“Linux 6.9 Deprecates The EXT2 File-System Driver”: https://www.phoronix.com/news/Linux-6.9-Deprecates-EXT2。
关键词: Linux, EXT2
征稿启事:泰晓科技 欢迎小伙伴踊跃投稿。
提升技能:点击左下角“阅读原文”听 Linux 视频公开课,为好工作做准备~
扫描二维码
进社区讨论群
泰晓科技
聚焦 Linux —— 追本溯源,见微知著!
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...