LWN:5.13合并窗口第一部分!
共 3348字,需浏览 7分钟
·
2021-05-14 01:40
关注了就能看到更多这么棒的文章哦~
The first half of the 5.13 merge window
By Jonathan Corbet
April 30, 2021
DeepL assisted translation
https://lwn.net/Articles/854536/
截至目前,在 5.13 开发周期中已经有超过 7800 个 non-merge commit 合入了 mainline 仓库。看来 5.13 确实会比上一个版本内容更加多。到目前为止已经合并的成果在内核的各个子系统都有分布,请继续阅读到目前为止已经合入内容的总结。
Architecture-specific
一些支持苹果 M1 处理器的准备工作已经被合并了。
Core kernel
增加了一个新的 "misc" cgroup,旨在处理简单的资源(也就是可以用一个直接的计数来管理的)。它的第一个用途是管理用于 AMD 安全加密虚拟化(SEV,secure encrypted virtualization)机制的 address-space ID。可以在这个文档提交中找到更多信息。
io_uring 的轮询操作现在有了 "multishot" 模式。通常情况下,跟其他任何 io_uring 操作一样,一旦一个 poll 操作触发了 completion event,就会从 ring 中移除。而 multishot poll 则会保持繁忙状态(active),也就是可以提交一次来产生多个 completion event,这是一个独特的功能。
Filesystems and block I/O
EROFS 文件系统新增 "big pcluster" 对于压缩性能提供了显著改进。
新增 rasize=SMB3,这个 mount 选项会增加 readahead 窗口大小,可以改善某些工作场景下的性能。
Hardware support
Graphics :支持了通用的 USB 方式连接的显示器、Chipone ICN6211 MIPI-DSI/RGB converter bridges,Lontium LT8912B DSI/HDMI bridge。
Hardware monitoring : 英飞凌 IR36021 电源控制器、ST STPDDC60 multicell 控制器、NZXT Kraken X42/X51/X62/X72 液冷、BluTek BPA-RS600 电源、FSP/3Y-Power 电源以及 Maxim MAX15301 稳压器。
Industrial I/O :博世 BMI088 加速度计,德州仪器 ADS131E04、ADS131E06 和 ADS131E08 模数转换器,以及 ChromeOS EC MKBP 距离传感器。
杂项 :新丰 WPCM450 中断控制器、瑞萨 79RC3243x 中断控制器、微软 Surface 分离系统、微软 Surface 电源、微软 Surface 电池、研华 ACPI 软件按钮、技嘉 WMI 温度传感器、博通 NVRAM 控制器。Synopsys DesignWare xData PCIe 控制器、Microchip Sparx5 SerDes 以太网 PHY、Marvell CP110 UTMI USB PHY、Qualcomm SDM660 和 SM8350 interconnects、基于 Broadcom 8250 的串口、Xilinx USB 控制器、Apple 中断控制器、鲲鹏 SoC 上的 HiSilicon SPI 控制器、NXP i.MX8 QXP/QM JPEG 编码器/解码器、Rohm BD71817、BD9576MUF 和 BD9573MUF 电源管理 IC、Actions Semi ATC260x 电源管理 IC、Netronix 嵌入式控制器、Rockchip RK3568 时钟控制器和 MediaTek MT7621 时钟控制器。
许多旧的驱动程序已经被删除,包括 wimax 设备、谷歌 "gasket" 驱动框架、"sysace"和 "umem" block driver,以及一些旧的串口驱动程序。
还值得注意的是,"comedi" data-acquisition 驱动程序在驻扎了 13 年并且合入了超过 8700 个补丁之后,已经从 staging tree 中毕业。
Security-related
内核的 "trusted keys" 机制已经变得更加通用,允许可信密钥来自可信平台模块(trusted platform module)以外的其他来源,毕竟可信平台模块并不是所有系统都具有的。具体来说,在可信执行环境(TEE,trusted execution environment)中运行的代码也可以提供可信密钥,这是通过一个新增 trusted.source 命令行参数来控制的。更多的信息可以在这个文档补丁中找到。
内核现在能够管理 ASN.1 格式的可信密钥。
直到现在,如果 UEFI 安全启动黑名单中的证书是 EFI_CERT_X509_GUID 格式,内核会忽略这些证书;这可能会导致系统使用被撤销的密钥启动。这个问题被称为 CVE-2020-26541,已经在 5.13 版本中被修复(后面可能会做对其他 kernel 版本的 backport)。还有一个新的内核配置选项,允许在启动时撤销已经预先加载的证书。
内核的加密层(cryptographic layer)现在可以执行椭圆曲线数字签名算法(ECDSA)验证。
内核现在可以在每次系统调用时对内核堆栈的确切位置进行随机化处理,这会使得恶意攻击更难利用相关漏洞;详情见此提交。
对 Clang 的 control-flow integrity 机制的支持已经合并了。从这个提交开始:
通过 CONFIG_CFI_CLANG,编译器在每次间接函数调用之前都会注入一个运行时检查,以确保目标是一个具有正确的静态类型的有效函数。这限制了可以调用的目标地址,使攻击者更难利用那些通过修改存放在内存中的函数指针的漏洞。
CFI 目前只适用于 arm64 架构,但 x86 支持正在进行中。
SELinux security module 安全模块可以使用内核的完整性检测架构(IMA,integrity measurement architecture)来验证,确保其策略没有被篡改过。这个提交包含了一些关于如何使用这一功能的信息。
Internal kernel changes
来自实时抢占库(realtime preemption tree)的软件中断处理代码已经进入了 mainline。在实时模式下,所有的软件中断都在内核线程中处理,这样就可以跟其他普通线程一样被更高优先级的进程抢占掉。
有一个新的 helper library 来处理 network filesystems 所需的许多常见功能;更多信息请看这个文档补丁。
printk()中使用的 logbuf_lock 已经被移除,使内核离 lockless 的 printk()实现又近了一步。
快速查看了一下,目前在 linux-next 中有将近 6400 个提交还没有被拉入主线;这表明 5.13 的合并窗口还远未结束。按照通常的时间表来推算,合并窗口可望在 5 月 9 日关闭,5.13 版本将在 6 月底或 7 月初发布。像往常一样,一旦合并窗口关闭,LWN 将介绍后半程的内容,敬请关注。
全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。
长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~