谷歌将继续在主要 Linux 内核中为 Android 开发创新

在 Linux Plumbers 2021 会议上,谷歌谈到了其将 Android 平台过渡到使用常规 Linux 内核而不是使用自己版本的内核的举措所取得的成功,其中包括针对 Android 平台的特定更改。

开发过程中最重要的变化是决定在 2023 年之后切换到“上游优先”模式,这意味着 Android 平台所需的所有新内核功能将直接在主 Linux 内核中开发,而不是在自己的单独分支中开发(功能将首先提升到主内核,然后在 Android 中使用,反之则不然)。 还计划在 2023 年和 2024 年将 Android 通用内核分支中剩余的所有附加补丁转移到主内核。

在不久的将来,预计 12 月初发布的 Android 5.10 平台将提供“通用内核映像”(GKI) 内核组件,尽可能接近常规 XNUMX 内核。 对于这些版本,将提供定期更新版本,并将其发布在 ci.android.com 存储库中。 在 GKI 内核中,Android 平台特定的添加内容以及来自 OEM 的与硬件支持相关的处理程序都放置在单独的内核模块中。 这些模块不与主内核的版本绑定,可以单独开发,这大大简化了设备到新内核分支的维护和过渡。

谷歌将继续在主要 Linux 内核中为 Android 开发创新

设备制造商所需的接口以钩子的形式实现,它允许您在不更改代码的情况下更改内核的行为。 总的来说,android12-5.10 内核提供了 194 个常规钩子(类似于跟踪点)和 107 个专用钩子(允许您在非原子上下文中运行处理程序)。 在GKI内核中,禁止硬件制造商对主内核打特定的补丁,硬件支持组件只能由厂商以附加内核模块的形式提供,并且必须保证与主内核的兼容性。

让我们回想一下,Android 平台正在开发自己的内核分支 - Android 通用内核,在此基础上为每个设备形成单独的特定程序集。 Android 的每个分支都为制造商提供了多种设备内核布局选项。 例如,Android 11 提供了三种基本内核的选择 - 4.14、4.19 和 5.4,Android 12 将提供基本内核 4.19、5.4 和 5.10。 选项 5.10 被设计为通用内核映像,其中 OEM 所需的功能被转移到上游、放置在模块中或转移到 Android 通用内核。

在 GKI 出现之前,Android 内核经历了几个准备阶段:

  • 基于主要的LTS内核(3.18、4.4、4.9、4.14、4.19、5.4),创建了“Android Common Kernel”的一个分支,将Android专用的补丁转移到该分支中(之前的更改大小达到了几百万行) )。
  • 基于“Android通用内核”,高通、三星和联发科等芯片制造商形成了“SoC内核”,其中包括支持硬件的附加组件。
  • 基于 SoC 内核,设备制造商创建了设备内核,其中包括与支持附加设备、屏幕、摄像头、音响系统等相关的更改。

这种方法使消除漏洞的更新实施和向新内核分支的过渡变得非常复杂。 尽管谷歌定期发布其 Android 内核(Android 通用内核)的更新,但供应商通常缓慢地提供这些更新,或者通常在设备的整个生命周期中使用相同的内核。



来源: opennet.ru

添加评论