泰晓科技 -- 聚焦 Linux - 追本溯源,见微知著!


泰晓资讯·1 月 / 第一期 / 2024

unicornx 创作于 2024/01/11

“泰晓资讯”,广泛报道 “Linux/开源” 业界资讯。欢迎广大读者投递相关资讯来源和素材,本站将进一步收集整理后发布给大家。

Linux 内核最新消息

按照原先的计划,Linus Torvalds 在刚过去的周日刚刚发布了 Linux 6.7 内核,这也是 2024 年的第一个新版本。

为了避免在新年前夜发布,Linus Torvalds 推迟了一周发布 Linux 6.7。

Linus 在简短的 6.7 公告中介绍说 6.7 是我们有史以来最大的内核版本之一,包括了超过 17k 次非合并提交和 1k+ 次合并提交。本次 6.7 多出来的 RC8 纯粹是由于因为中间插入了一个新年假期所作出的时间安排,并不是因为这个超大版本中发生了什么严重的问题。

上周的主要变化是一些 DRM 更新(主要是修复此版本中对一些新硬件的支持,包括 amd 和 nouveau),更多的 bcachefs 修复(bcachefs 显然是 6.7 的新内容,也是大量提交的原因之一),然后是一些随机驱动程序更新。除此之外就是一些小的问题更改。

Linux 6.7 具有许多令人兴奋的功能,包括对 Bcachefs 文件系统的初始支持、Intel Meteor Lake 显卡支持,以及其他 MTL 平台支持、使用 Nouveau 驱动程序的初始 NVIDIA GSP 固件支持、停用 Intel Itanium 支持以及 Linux 6.7 的其他新功能。

从本周开始,我们进入了下一个激动人心的 Linux 6.8 合并窗口。

https://www.kernel.org/ updated by 2024/1/11

longterm4.14.336 [EOL]2024-01-10

关键词: Linux

社区对 Linux 4.14 LTS 的支持将结束

Linux 4.14 debuted at the end of 2017 with exciting features at the time like AMD Vega improvements, working on the since-failed Intel Cannonlake graphics, Zstd compression support, and more. The kernel has advanced a heck of a lot since then and Linux 6.7 recently debuted. It’s now time that Linux 4.14 LTS has been declared end-of-life.

Linux 4.14 于 2017 年底首次亮相,支持了许多在当时非常令人兴奋的功能,例如对 AMD Vega 改进、支持了 Intel Cannonlake 显卡、Zstd 压缩等。从那时起,内核已经取得了很大的进步,最新发布的版本是 Linux 6.7。现在是 Linux 4.14 LTS 宣布生命周期结束的时候了。

Linux 4.14 自 2017 年底以来一直作为长期支持 (LTS) 内核进行维护。本周三发布了 Linux 4.14.336,这是该 LTS 系列的最后一个版本。Greg Kroah-Hartman 在 4.14.336 公告中指出:

“I’m announcing the release of the 4.14.336 kernel. This is the LAST 4.14.y kernel to be released. It is now officially end-of-life. Do NOT use this kernel version anymore, please move to a newer one, as shown on the kernel.org releases page.

All users of the 4.14 kernel series must upgrade. But then, move to a newer release. If you are stuck at this version due to a vendor requiring it, go get support from that vendor for this obsolete kernel tree, as that is what you are paying them for :)”

目前,上游 Linux 仍然维护的 LTS 内核包括 Linux 4.19、5.4、5.10、5.15、6.1,以及最近 2023 年底发布即将成为 LTS 的 6.6。Linux 4.19 将在今年年底结束生命周期,5.4 将在 2025 年停止维护,其余部分将在 2026 年底结束,目前社区的计划是逐渐缩短对 LTS 版本的支持期限。

新闻出处,“Linux 4.14 LTS Reaches End-Of-Life After Six Years”: https://www.phoronix.com/news/Linux-4.14-LTS-Reaches-EOL

关键词: Linux, LTS

Linux 6.8 中调度程序的改进

Ingo Molnar sent in all of the scheduler changes this morning for the now-open Linux 6.8 merge window.

本周 Ingo Molnar 为已经打开的 Linux 6.8 合并窗口发送了所有和调度程序相关的更改。

于 Linux 6.6 中引入的 EEVDF 调度器在 Linux 6.8 中继续得到改进。现在,EEVDF 调度程序中有一个基于 O(1)的用于任务选择的快速路径。Linutronix 的 Abel Wu 设计了这个 O(1)的快速路径,并在双插槽 Intel Xeon Platinum 服务器上进行了测试,发现它使任务选择更加高效。

Linux 6.8 的 deadline 调度程序代码也得到了增强,针对低优先级的任务的 SCHED_DEADLINE starvation 问题做了更多工作。现在,当更高优先级的任务垄断 CPU 周期时,其他任务应该会有更多机会得到调度。

此外,此内核周期中还针对 energy aware 调度做了不少工作,以整合调度程序中对 max compute capacity 的处理以及其他增强功能。此外在 Linux 6.8 中还针对 NUMA balancing 完善了 VMA 扫描逻辑,以更好地支持针对特定 VMA 的扫描,提高其被调度的概率。

新闻出处,“Linux 6.8 Scheduler Changes Include New EEVDF Fast Path, Additional Scheduler Tuning”: https://www.phoronix.com/news/Linux-6.8-Scheduler

关键词: Linux, Scheduler

Linux 6.8 为常见的基于 $PATH 的搜索实现了诱人的优化

For the execve() system call to execute a program by pathname, the Linux 6.8 kernel is set to land a new optimization to “dramatically” speed-up PATH searches.

对于按路径名执行程序的 execve() 系统调用,Linux 6.8 内核中加入了一项新的优化,可以 “显著” 加快 PATH 搜索速度。

对于基于 execve 的 PATH 搜索来说,这项改进可以将速度提高 26%,这是一个相当不错的进步,特别是对于这是一个常见的操作。在那个补丁中提到,shell 脚本倾向于使用 stat() 来检查 PATH 中的文件,而 GNU C 库 (glibc) 和 Musl libc、Python、Perl 等倾向于使用基于 execve 的方法,因此会从这个内核优化补丁中收益。

新闻出处,“Linux 6.8 Landing A Tantalizing Optimization For Common $PATH-Based Searches”: https://www.phoronix.com/news/Linux-6.8-Execve-Faster-PATH

关键词: Linux, execve

Linux 6.8 将放弃对旧的 ARM11 MPCore CPU 的支持

ARM11 MPCore support for the early ARMv6 multi-processor (SMP) support is set to be retired with the upcoming Linux 6.8 kernel cycle.

针对早期 ARMv6 多处理器 ARM11 MPCore 的支持将在即将到来的 Linux 6.8 内核版本中停用。

内核对 ARMv6 的 ARM11 处理器的支持对实现多处理器支持、SIMD 媒体指令等方面具有重要意义,但这些都是二十年前的处理器设计技术了,现在早就过时了。从 Linux 6.8 开始将明确放弃对 ARM11 MPCore (ARM11 ARMv6K SMP) 的支持。此项工作由来自 Linaro 的开发人员 Linus Walleij 提交。

新闻出处,“Linux 6.8 To Drop Old ARM11 MPCore CPU Support”: https://www.phoronix.com/news/ARM11-ARMv6K-SMP-Linux-6.8

关键词: Linux, ARM11

社区最近又开始讨论用 C++ 编写 Linux 内核

A six year old Linux kernel mailing list discussion has been reignited over the prospects of converting the Linux kernel to supporting modern C++ code.

曾经在六年前的 Linux 内核邮件列表中人们讨论过将 Linux 内核转换为支持现代 C++ 代码的前景,这个话题进入 2024 年后竟然又复活了。

目前的 Linux 内核主要由 C 代码和各种手写汇编组成,近两年社区开始流行使用 Rust 编写内核。而最近 Linux 内核邮件列表中又出现有人在讨论希望会看到将 Linux 内核的 C 代码转换为 C++。

早在 2018 年 4 月 1 日,Red Hat 工程师 David Howells 就发布了一组补丁,开始将内核代码转换为 C++。这将允许主线内核使用内联模板函数、内联重载函数、类继承以及其他 C 代码不支持的功能。但那时候谁会对此进行认真的讨论呢,最终补丁在 Linux 内核邮件列表上驻留了六年,没有太多讨论。

但时间进入 2024 年后,也就是本周初,长期从事 Linux 开发人员的 H. Peter Anvin 回复了内核邮件列表里的这个帖子。Anvin 写了一篇冗长的文章,阐述了为什么现在对于 Linux 内核来说 C++ 是一个机会:

“Andrew Pinski recently made aware of this thread. I realize it was released on April 1, 2018, and either was a joke or might have been taken as one. However, I think there is validity to it, and I’m going to try to motivate my opinion here.

Both C and C++ has had a lot of development since 1999, and C++ has in fact, in my personal opinion, finally “grown up” to be a better C for the kind of embedded programming that an OS kernel epitomizes. I’m saying that as the author of a very large number of macro and inline assembly hacks in the kernel.

What really makes me say that is that a lot of things we have recently asked for gcc-specific extensions are in fact relatively easy to implement in standard C++ and, in many cases, allows for infrastructure improvement without global code changes (see below.)

C++14 is in my option the “minimum” version that has reasonable metaprogramming support has most of it without the type hell of earlier versions (C++11 had most of it, but C++14 fills in some key missing pieces).

However C++20 is really the main game changer in my opinion; although earlier versions could play a lot of SFINAE hacks they also gave absolutely useless barf as error messages. C++20 adds concepts, which makes it possible to actually get reasonable errors.”

SUSE Lans 的 Jiri Slaby已经站出来支持 Linux 内核的 C++ 计划。Red Hat 的 David Howells 是最初发布相关内核补丁的人,他也表示支持这一讨论。

我们将关注这个 LKML 讨论的走向,以及在 2024 年是否最终有足够的动力来支持 Linux 内核中采用现代 C++ 代码。Linus Torvalds 过去一直强烈反对 C++,但我们想看看潮流是否最终扭转,他是否对最近的 C++ 标准更满意,或者他是否仍然坚持用 C。我们要知道,直到 2022 年,Linux 内核才开始从 C89 迁移到 C11。

新闻出处,“A 2024 Discussion Whether To Convert The Linux Kernel From C To Modern C++”: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss

关键词: Linux, C++

一种访问 Linux 内存信息的绝妙方法

Making use of dmidecode is the go-to way of being able to read various DIMM memory information on Linux systems like the model number, speed, and other attributes. But sadly using dmidecode is restricted to root due to needing to access /dev/mem. But it turns out there is another less reported way to receive much the same information.

dmidecode 是能够读取 Linux 系统上各种 DIMM 内存信息(如型号、速度和其他属性)的首选方法。但遗憾的是,由于需要访问 /dev/mem,使用 dmidecode 仅限于 root。但事实证明,还有另一种较少为人知道的方式来获取大致相同的信息。

来自 Redhat 的工程师 Hans de Goede 最近指出了另一种选择。在最新的 Linux 发行版的引导过程中,udev 会提取 DMI 信息并将其存储在 udev 数据库中。因此,在最近的 Linux 发行版上运行 udevadm info -e | grep -e MEMORY_DEVICE,以普通用户权限就可以访问 DIMM 内存设备信息。

新闻出处,“A Nifty Way To Access Linux Memory/RAM Information”: https://www.phoronix.com/news/Linux-DIMM-Details-As-Root

关键词: Linux, DIMM



tinylab wechat

Read Album:

Read Related:

Read Latest: