在上一届 Linux Plumbers 2019 大会上,Google
一旦项目准备就绪,供应商将被要求提供基于主要 Linux 内核的基础内核。 供应商将仅以附加内核模块的形式提供硬件支持组件,而不对内核应用补丁。 模块需要在内核符号命名空间级别与主内核兼容。 所有影响主核心的变更都会被提升到上游。 为了保持与 LTS 分支内专有模块的兼容性,建议以稳定的形式维护内核 API 和 ABI,这将保持模块与每个公共内核分支的更新的兼容性。
在一年的时间里,PSI(压力失速信息)子系统用于分析获取各种资源(CPU、内存、I/O)的等待时间信息,以及用于进程间通信的 BinderFS 伪文件系统等功能机制从Android内核版本转移到了Linux主内核,Binder和节能任务调度器EAS(Energy Aware Scheduling)。 未来,Android计划从特定的SchedTune调度程序转移到ARM开发的新的UtilClamp子系统,基于cgroups2和标准内核机制。
让我们回想一下,到目前为止,Android 平台的内核已经经历了几个准备阶段:
- 基于主要的 LTS 内核(3.18、4.4、4.9 和 4.14),创建了“Android Common Kernel”的一个分支,将 Android 特定的补丁转移到其中(之前更改的大小达到了几百万行,但最近更改已减少到数千行代码)。
- 基于“Android通用内核”,高通等芯片制造商形成了“SoC内核”,其中包括支持硬件的附加组件。
- 基于 SoC 内核,设备制造商创建了设备内核,其中包括与支持附加设备、屏幕、摄像头、音响系统等相关的更改。
本质上,每个设备都有自己的内核,不能在其他设备上使用。 该方案使消除漏洞的更新实施以及向新内核分支的过渡变得非常复杂。 例如,4 月份发布的最新 Pixel 4.14 智能手机搭载了两年前发布的 Linux 内核 XNUMX。 在某种程度上,谷歌试图通过推广该系统来简化维护
来源: opennet.ru