经过两个月的开发, Linus Torvalds展示了新版本的“ Linux Kernel 5.7” 其中的各种变化引人注目,例如 FS exFAT的新实现,一个用于创建UDP隧道的udeudp模块, 基于指针身份验证的ARM64保护,将BPF程序附加到LSM控制器的能力, Curve25519的新实现,分离式阻塞检测器,与PREEMPT_RT的BPF兼容性等等。
这个新版本采用了15033年开发人员的1961个修复程序,补丁大小为39MB(更改了受影响的11590个文件,添加了570560行代码,删除了297401行)。 41中引入的所有更改中,约5.7%与设备驱动程序有关,约16%的更改与更新硬件体系结构的特定代码有关。
Linux Kernel 5.7的新增功能
在这个新版本中 exFAT驱动程序的新实现,基于三星开发的当前“ sdfat”(2.x)代码库。 先前添加到内核的驱动程序基于过时的Samsung代码 (1.2.9版),其性能落后于新驱动程序约10%。
在XFS的情况下,改进了元数据验证和fsck执行 用于活动分区。 提出了一个用于重建btree结构的库,该库在将来将用于处理xfs_repair并实现无需卸除分区即可进行恢复的可能性。
在网络子系统方面, Netfilter包含的更改可显着加快处理大量nftable的速度,这需要验证子网,网络端口,协议和MAC地址的组合。
除此之外,强调的是 增加了对硬件加速机制的支持,以封装以太网帧 在802.11(Wi-Fi)中。
通过了三分之一的补丁程序,这些补丁程序将ioctl()ethtool工具转换为使用netlink接口。 新界面简化了添加扩展,改进了错误处理,允许您在状态更改时发送通知,简化了内核与用户空间之间的交互并减少了同步命名列表的数量。
用于虚拟化和安全性 指针身份验证的硬件实现已添加, 使用专门的说明 ARM64 CPU使用ROP技术防御攻击 在这种情况下,攻击者不会尝试将其代码存储在内存中,而是对已经存在于以返回控制指令结尾的加载库中的多条机器指令进行操作。
在SELinux中,“ checkreqprot”参数已被弃用, 允许您在处理规则时禁用内存保护检查(无论规则中指定的要求如何,都允许使用可执行内存区域)。 kernfs符号链接可以继承父目录的上下文。
添加了对EFI混合启动模式的支持, 它允许从运行在64位CPU上的32位固件加载64位内核,而无需使用专门的引导加载程序。
除此之外 能够识别和调试拆分锁的系统突出显示, 在访问内存中未对齐的数据时,会发生这种情况,原因是原子指令数据被两条CPU高速缓存行交叉。
这种锁定会导致性能显着下降(比原子操作(数据落在同一高速缓存行上)要慢1000个周期)。 根据启动参数“ split_lock_detect”,内核可以即时检测到此类锁定并发出警告,或者向导致崩溃的应用程序发送SIGBUS信号。
排出
最后 如果您想了解更多 关于此新版本的Linux内核,您可以查阅以下内容的完整列表: 在以下链接中进行更改。
关于新版本的可用性,您应该知道 现在可以下载和编译 从网站上 Linux内核官方网站, 对于某些发行版,如果是预编译版本,则某些版本已经可用。