当前的 Android 生态系统被数百个不同版本的 Android 污染,每个版本都运行不同的 Linux 内核变体。 每个版本都是为不同的手机设计的,并且具有不同的配置。 谷歌一直在努力通过将主线 Linux 内核添加到 Android 来解决这个问题。
Linux 内核目前在 Android 中是如何处理的
在它到达您之前,您手机上的 Linux 内核会通过 三个主要步骤.
首先,Google 采用 Linux 内核的 LTS(长期支持)版本并添加所有 Android 特定代码。 这成为“Android 通用内核”。
然后,谷歌将此代码发送给创建运行您手机的片上系统 (SoC) 的公司。 这通常是高通。
一旦 SoC 制造商完成添加代码以支持 CPU 和其他芯片,内核就会传递给实际的设备制造商,例如三星或摩托罗拉。 然后,设备制造商添加代码以支持手机的其余部分,例如显示屏和摄像头。
这些步骤中的每一个都需要一段时间才能完成,并导致内核无法与任何其他设备一起使用。 这也意味着内核非常旧,通常大约两年。 例如,上个月发货的 Google Pixel 4 有一个 2017 年 11 月的内核,永远不会更新。
谷歌已承诺为旧设备创建安全补丁,这意味着他们必须密切关注大量旧代码的大杂烩。
未来
去年,谷歌宣布 计划 来解决这个烂摊子。 今年他们在 2019 Linux Plumbers Conference 上透露了他们取得的进展。
“我们知道运行 Android 需要什么,但不一定在任何给定的硬件上运行。 所以我们的目标是基本上找出所有这些,然后上游并尝试成为 close 尽可能主线。”
桑迪普·帕蒂尔, Android 内核团队负责人
他们确实展示了小米 Poco F1,它运行 Android 并带有适当的 Linux 内核。 然而,它有些东西并没有 似乎在工作,例如卡在0%的电池百分比。
那么,谷歌计划如何实现这一目标呢? 通过从他们的 高音计划 剧本。 在 Project Treble 之前,与设备和 Android 本身交互的低级代码是一大堆代码。 Project Treble 将两者分开并使它们模块化,以便 Android 更新可以更快地发布,并且低级代码可以在更新之间保持不变。
谷歌希望为内核带来同样的模块化。 他们的 计划 “涉及稳定 Linux 的内核 ABI 并为 Linux 内核和硬件供应商提供一个稳定的接口来写入。 谷歌希望将 Linux 内核与其硬件支持分离。”
所以这意味着谷歌将发布一个内核,硬件驱动程序将作为内核模块加载。 目前,这只是一个提议。 还有不少技术问题需要解决。 所以,这不会很快发生。
来自开源的反对
开源社区不会对将专有代码放入内核的想法感到满意。 这 Linux 内核指南 声明驱动程序必须具有 GPL 许可证才能包含在内核中。 他们还指出,如果驱动程序的更改导致错误,将由创建错误的人解决。 从长远来看,这意味着设备制造商的工作量会减少。
关于将主线内核包含到 Andorid 的最终想法
到目前为止,这只是一个提议。 谷歌很有可能会开始着手这个项目,但一旦他们意识到这需要做多少工作就放弃它。 看看谷歌有多少项目 已经放弃.
安卓警察 提到谷歌正在开发其 Fuchsia 操作系统,这似乎是一个很好的观点,它似乎有朝一日取代 Android 的目标。
那么,问题是谷歌将尝试完成哪一项艰巨的任务,让 Android 运行在主线 Linux 内核上,还是完成他们统一的 Android 替代品的工作? 只有时间才能回答这个问题。
你对这个话题有什么看法? 请在下面的评论中告诉我们。
如果您觉得这篇文章很有趣,请花一点时间在社交媒体、黑客新闻或 红迪网.