我们已经讨论过
Linux内核4.18中所做的创新。 今天,我们将讨论4.20中引入的内容以及对下一版本的简要回顾。
很有可能将其称为“ 5.0”。
/摄影: Gregory“ Slobirdr” Smith CC BY-SA内核的最新版本于去年12月发布。 该更新可在
官方网站上下载。 此版本
是添加的代码行数的记录保持者-它们的数量增加了35.4万。仅在Linux版本4.13(2017年9月)中添加了更多代码。
主要更新包括 :新驱动程序,增强的安全性以及使用阵列的更改。
新驱动程序和新硬件
Linux 4.20增加了
对 AMD Picasso和Raven 2
混合处理器 ,高通
Snapdragon 835芯片系统以及基于AMD Zen架构的中文Hygon Dhyana CPU的支持。 这将扩大可以运行Linux的设备的数量。
AMD Zen 2架构的代码也
已经开始工作,但是在将来的版本中将进行重大更改。 更改还影响了英特尔Icelake芯片-开发人员增加了对
DSI控制器的支持以及控制处理器电源模式的功能。
添加了一个代码,该代码负责与AMD Vega 20一起使用,尽管至少在GPU发布之前(其发布计划于
2019年第一季度 )将继续得到改进。
所做的更改还影响了VKMS(虚拟内核模式设置)驱动程序,该驱动程序已在以前的内核版本中
添加 。 它模拟最简单的虚拟输出设备,并用于在没有监视器的机器上组织
X服务器或任何其他图形子系统的工作。 同时,它提供了使用现有GPU的能力。 在Linux内核4.20中,VKMS
获得了 GEM和游标支持。
此外,新内核
还可以与Apple Magic Trackpad 2触控板和Xbox控制器一起使用。
阵列变更
从内核中删除了
可变长度数组 (VLA),其大小是在执行阶段确定的,而不是编译代码。 它们放慢了速度,并可能影响操作系统的安全性。 长期以来,一直
要求 Linus Torvalds摆脱VLA,他本人也
积极批评使用可变长度数组
的决定。 在内核4.20中,大多数文件最终都被驱逐了。
还实现了XArray数据结构,
他们试图早于4.17实现。 这是一种抽象数据类型,其行为类似于大型指针数组。 与
动态数组不同,使用XArray时,无需更改内存控制单元中的任何内容即可扩展结构。 但是目前,只有内核页面缓存和
memremap被转换为
XArray 。
安全更新
Speck块密码已从Linux 4.20中删除,因为有人怀疑其实施
中存在后门。
他们还引入了
STACKLEAK功能(4.19中未提供),该功能可保护Linux用户免受多种类型的漏洞的侵害。
特别是,它减少了从内核堆栈到用户空间的对攻击者有用的信息量。 STACKLEAK还阻止了对未初始化变量的大量攻击,并提供了监视内核堆栈“溢出”的工具。
回到Linux 4.20,他们添加了 STIBP(单线程间接分支预测器)补丁,该补丁可防止Spectre类型的攻击。 它们旨在解决与推测性计算的实现相关的现代处理器的硬件漏洞。
社区对Linux内核4.20的看法
Hacker News的居民
指出 ,Linux一直在驱动程序和支持的硬件数量方面遇到困难。 更新4.20帮助部分解决了此问题,从而扩大了可用于工作的体系结构的范围。 但是,许多用户担心以下事实:随着向新内核的过渡,操作系统开始运行得更慢。
“回归”的原因是为了
防止 Spectre产生额外的代码。 STIBP修补程序默认情况下处于激活状态,并
导致使用SMT /超线程的系统出现“刹车”。 在某些情况下,性能可能会降低50%。 Linus Torvalds已经
提出了应用户要求而非自动启动功能
的问题 。 但是到目前为止,还没有做任何事情。
正如balsoft在评论中指出的那样,由于STIBP而导致Linux性能下降是从内核版本4.19.4和4.14.83删除此代码的原因。 因此,我们有理由相信,将来的开发人员将发布4.20版内核,而没有可抵御Spectre攻击的补丁。
/照片hackNY.org CC BY-SA他们将“教”什么5.0
如果您按照
Torvalds的
方法通过一个人的手指数
来编号发布 ,则版本21
不应为 。 因此,2019年将是Linux内核5.0诞生的一年。
即将发布的版本的改进包括对新硬件和其他设备的支持。 也许,用户将有机会连接Cougar 700K游戏键盘并与Intel的
Chameleon96 -FPGA一起工作。
有关Y2038问题和其他安全性问题以及图形,混合和中央处理器的新驱动程序,将继续进行。 期待已久的WireGuard VPN隧道也将进入内核 。
在下一个版本中,
将出现 I3C子系统,他们没有时间在4.20中添加它。 它体现了
I2C和SPI的优势
,适用于IoT。
第一个公司IaaS博客:
我们的电报IaaS博客: