浅谈Linux内核领域中发生的情况
扫描二维码
随时随地手机看文章
我们通常不会描述Linux内核领域中发生的事情,但务必要注意每个新内核版本的工作方式,因为Google要求每个新内核都具有最低版本的Linux内核。 版本的Android。 最近的决定将LTS的发布时间从2年延长到6年,这将在减少安全补丁的分散方面起重要作用,因为设备制造商在向后迁移安全补丁方面做得很少。 此外,主要核心通常会为移动设备合并新功能。
例如,最近发布了内核的下一个LTS版本的第一个Release Candidate构建 -Linux内核5.0 RC1。稳定版还剩下一两个月的时间,但是我们已经可以看到即将发布的版本中的内容。我将重点介绍一些与移动设备相关的更新,但是如果您对开源开发和Linux内核完全感兴趣,建议您查看完整的变更日志。
ARM big.LITTLE EAS支持
自从最初的Pixel发行以来,能源意识调度已成为Android设备上的一件事。EAS是Google Pixel设备通常比竞争对手更抢眼的原因之一。高通已经发布了支持的Snapdragon 845内核,因此具有此SoC(或更高版本)的任何设备都将支持EAS。虽然,直到现在Linux还没有上游支持Energy Aware Scheduling。从理论上讲,上游支持应该使芯片和设备制造商更容易在其设备中实施该技术。但是对于最终用户来说,上游支持的意义并不大。
铁线蕨支持
Speck是国家安全局(NSA)开发的加密算法,在低端硬件上效果很好。Google 打算增加对斑点的支持,因为它为SoC缺乏硬件加速加密扩展的廉价设备提供数据加密支持。Speck的采用由于与NSA的关系而受到广泛批评。在Linux内核4.20中已删除了对斑点的支持,而其替代品Adiantum在带有EXT4 / F2FS文件系统的低端硬件上的性能同样好(甚至更好)。
F2FS和EXT4修复
闪存文件系统或F2FS被广泛用于 Android设备中。例如,Google Pixel 3和Pixel 3 XL正式 支持F2FS。显然,F2FS的原始开发者Jaegeuk Kim向Linux存储库发送了合并请求,要求对文件系统进行大量修复。这些更改将解决加密问题和空闲时间管理以及垃圾收集修复。您可以在此拉取请求中看到所有详细信息。总体而言,修复F2FS可提高支持或将支持它的Android智能手机的稳定性和可靠性。
同样,流行的EXT4文件系统已经收到了十几个补丁。EXT4在许多Android设备上使用,例如最新的OnePlus设备(包括OnePlus 5T, OnePlus 6和OnePlus 6T)。
新的ARM硬件支持
GNU / Linux发行版可以说是在基于ARM的硬件上运行的最佳操作系统。他们基于开源模型提供可靠的多任务处理。ARM处理器经过专门设计,可以一次执行很多任务。这就是为什么操作系统与硬件保持同步很重要的原因。如您所知,大多数Android智能手机和平板电脑都使用具有ARM体系结构的芯片组。基于RISC的芯片非常适合运行日常任务(您在智能手机上执行的任务。Linux内核5.0增加了对许多新ARM硬件的支持。以下是其中的一些功能:
Tegra X2
特格拉·泽维尔(Tegra Xavier)
全志F1C100
高通QCS404
全志T3
恩智浦Layerscape LX2160
除了对特定ARM硬件的通用兼容性支持之外,Linux内核5.0还改进了电源管理。
BinderFS支持
Android使用Binder在系统中不同进程之间交换参数。应用程序,活动和流程使用Binder启动和管理流程。Android上的安全性高度取决于UID权限。活页夹使用双向IPC调用检查应用程序提供的UID,以确认它可以访问要使用的功能。BinderFS是Binder的更新版本,但是它更加专业并且与系统兼容。对于最终用户而言,对BinderFS的支持不会有太大变化,但从长远来看,它将为开发人员解决一些实现问题。这是相关的提交。
能源模型管理框架
另一个补充是对能源模型管理框架的支持。此更改主要针对ARM和内核开发人员。它提供了来自不同来源(例如设备树或驱动程序)的标准化能源使用信息的新层。能耗和报告由硬件和软件处理的方式有所不同。能源模型管理框架将提供一个标准API,内核中的另一个驱动程序可以使用该API来访问有关能耗的信息。从理论上讲,这将使软件工程师和开发人员更轻松地从硬件中获取相关信息。您可以在commit中阅读有关此框架的更多信息。
ARM64指针身份验证支持
每个相关的硬件和软件解决方案,尤其是在移动设备上,都需要强大的安全协议。这就是Linux内核5.0在ARM64指针身份验证的支持下提供的功能。由于大多数智能手机都具有基于ARM64的芯片组,因此至关重要的是,攻击者不能利用Linux内核中用于访问内存地址的指针。新的身份验证协议将指针与秘密密钥进行比较。指针身份验证将尝试避免面向返回的编程(ROP)和其他类型的攻击。