LWN:内核5.4版本合并窗口——第二部分

2023-11-10 02:20

本文主要是介绍LWN:内核5.4版本合并窗口——第二部分,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

640
点击上方蓝色“ Linux News搬运工”关注我们~

5.4 Merge window, part 2

By Jonathan Corbet

译者按:本文有两个笑话,看得懂的才是真开发者。一个是"revert the revert of the revert patch";另一个是supervisor -> hypervisor -> ultravisor,LWN subscriber都在问,今后比ultravisor更强的是啥visor。欢迎点击阅读原文在LWN网站直接看原汁原味的。

5.4-rc1的发布比起按照往常的经验所做的预测来说,晚了一天。截止此时,已经有12554个patch set合入了mainline repository。其中有2900个是在上次的总结之后合入的。虽然看起来数量比较少,其实后半部分合并窗口中还是有很多有趣的改动。

在后半部分合并窗口内合入了如下改动:

Architecture-specific

  • PowerPC架构支持"ultravisor",这是一个软件运行的特权级别,需要依赖hypervisor。

Core kernel

  • 增加了IORING_OP_TIMEOUT,用在io_uring_subsystem里。这个作用是让调用它的进程能在timeout之后被唤醒。

Filesystems and block layer

  • dm-verity子系统可以使用kernel keyring里的可信秘钥来验证某个存储器volume的root hash。

  • 新增了一个dm-clone target,可以对只读设备复制一份。“dm-clone的主要用途是把一个远端的、高延迟的、只读的、归档用途的块设备复制成为一个可写入的、快速的、能进行快速低延迟I/O的主流设备。”

  • F2FS文件系统能支持忽略大小写的文件名查找。

  • 新增virtiofs文件系统,这样host OS就能把文件系统高效的export给guest OS。

  • (虽然尚未放入5.4不过值得提一下)三星决定贡献出sdfat文件系统。这其实就是exFAT的一个新版本实现,据说代码质量和功能都要比现有的exFAT代码好。所以刚合入staging tree的exFAT代码可能不久后就会被替代掉了。

Hardware support

  • Clock: Marvell Armada AP CPU时钟控制器, MediaTek MT6779时钟控制器,Ingenic JZ47xx TCU时钟和中断控制器,Amlogic Meson虚拟实时时钟。

  • Miscellaneous: Freescale FlexTimer alarm timers,Macronix raw NAND控制器,Creative SB0540红外接收器,Intel Merrifield Basin Cove power-management ICs,NXP IMX7ULP watchdog timers,Spreadtrum pulse-width modulators。

  • PCI: Amazon Annapurna Labs PCIe控制器和NVIDIA Tegra194 PCIe控制器。

Memory Management

  • 支持在read-only file-mapped虚拟内存区域使用transparent huge page。目前来说这个功能只用与可执行代码段。需要使用madvise()来打开这个功能。

  • 新增两个madvise()命令,能强制kernel回收指定page(内存页面)。MADV_COLD会把指定的page移到inactive list,基本上就是把它们标记为没人使用状态,可以在page reclaim的时候释放。另一个更强的变种API是MADV_PAGEOUT,这会让这些page立刻被释放回收。

  • 上次在我们讨论内存管理性能回退问题的时候,大家希望能够revert一个revert patch来修复性能问题,最终这个revert revert patch在5.3-rc5合入了。现在5.4周期里又把这个改动revert了,成为了revert revert revert patch,同时也合入了一些修复改动。这个revert the revert的patch在5.4版本合入了。想看看为什么Linus会绕过memory-management developer直接合入这些patch吗?可以看看这里:Linus Torvalds的理由

Security-related

  • 在integrity-measurement (IMA)子系统增加了验证文件上附加的签名的能力。目前文档还不完整。

  • 多年争论之后,kernel lockdown patch set终于以Linux security module(LSM)的形式合入了。

  • (可能就是这个原因导致了5.4-rc1延迟了一天)最后一刻,Torvalds决定合入一个熵采集(entropy-colleciton)机制来实现"jitter entropy"方式的随机数生成。他的目的是能修复boot-time entropy问题,因为这可能会导致系统在启动过程中某些情况下会hang。不过这可能不是最终解决方案:“我不保证我的patch能是最终解决方案。个人看来这个方案还是可以接受的,改动不是很危险,如果这个patch让某些较真的开发者感到不爽,然后能发个更好的方案出来,那就值得了。” Torvalds的意见是很明确的,他希望在5.4里面一定要能解决这个boot-time entropy 问题。

Internal kernel changes

  • build系统如果检测到在使用gold版本的链接器(ld),就会拒绝继续进行编译。因为目前gold版本链接器在编译kernel的时候会有一些问题。

  • 支持了kernel symbol namespace。这样就能对kernel export出来的几千个symbol进行一些管理了。

  • checkpatch.pl工具会对changelog里的无效commit ID报warning。

社区里面计划在接下来的7~8周能把5.4 kernel稳定下来,这样预计能在11月下旬正式发布5.4版本。

全文完

LWN文章遵循CC BY-SA 4.0许可协议。

极度欢迎将文章分享到朋友圈 
热烈欢迎转载以及基于现有协议修改再创作~

长按下面二维码关注:Linux News搬运工,希望每周的深度文章以及开源社区的各种新近言论,能够让大家满意~

640?wx_fmt=jpeg

这篇关于LWN:内核5.4版本合并窗口——第二部分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/379837

相关文章

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)

《JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)》本文介绍了如何在Windows系统上配置多版本JDK(以JDK8和JDK17为例),并通过图文结合的方式给大家讲解了详细步骤,具有... 目录第一步 下载安装JDK第二步 配置环境变量第三步 切换JDK版本并验证可能遇到的问题前提:公司常

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

Python实现合并与拆分多个PDF文档中的指定页

《Python实现合并与拆分多个PDF文档中的指定页》这篇文章主要为大家详细介绍了如何使用Python实现将多个PDF文档中的指定页合并生成新的PDF以及拆分PDF,感兴趣的小伙伴可以参考一下... 安装所需要的库pip install PyPDF2 -i https://pypi.tuna.tsingh

Mybatis从3.4.0版本到3.5.7版本的迭代方法实现

《Mybatis从3.4.0版本到3.5.7版本的迭代方法实现》本文主要介绍了Mybatis从3.4.0版本到3.5.7版本的迭代方法实现,包括主要的功能增强、不兼容的更改和修复的错误,具有一定的参考... 目录一、3.4.01、主要的功能增强2、selectCursor example3、不兼容的更改二、

pytorch+torchvision+python版本对应及环境安装

《pytorch+torchvision+python版本对应及环境安装》本文主要介绍了pytorch+torchvision+python版本对应及环境安装,安装过程中需要注意Numpy版本的降级,... 目录一、版本对应二、安装命令(pip)1. 版本2. 安装全过程3. 命令相关解释参考文章一、版本对