当前的安卓生态系统被数百种不一样版本的安卓所污染,每种版本都运行着 Linux 内核的不一样变体。每一个版本均针对不一样的手机和不一样的配置而设计。谷歌试图经过将主线 Linux 内核添加到安卓来解决该问题。html
在到达你的手机以前,你手机上的 Linux 内核经历了三个主要步骤。linux
首先,谷歌采用了 Linux 内核的 LTS(长期支持)版本,并添加了全部的安卓专用代码。这将成为“安卓通用内核”。android
而后,谷歌将此代码发送给建立可运行在手机的片上系统(SoC)的公司。这一般是高通公司。git
SoC 制造商添加了支持 CPU 和其余芯片的代码后,便会将该内核传递给实际的设备制造商,例如三星和摩托罗拉。而后,设备制造商添加代码以支持手机的其他部分,例如显示屏和摄像头。github
每一个步骤都须要一段时间才能完成,而且会致使该内核没法与其余任何设备一块儿使用。这也意味着内核会很是旧,一般是大约两年前的内核。例如,上个月交付的谷歌 Pixel 4 带有来自 2017 年 11 月的内核,并且它将永远不会获得更新。api
谷歌承诺会为较旧的设备建立安全补丁,这意味着他们会一直盯着大量的旧代码。安全
去年,谷歌宣布计划解决此问题。今年,他们在 2019 Linux Plumbers Conference 上展现了他们取得的进展。模块化
“咱们知道运行安卓须要什么,但不必定是在任何给定的硬件上。所以,咱们的目标是从根本上找出全部这些,而后将其交给上游,并尝试尽量接近主线。”google
Sandeep Patil,安卓内核团队负责人操作系统
他们确实炫耀了运行带有合适的 Linux 内核的小米 Poco F1。可是,有些东西彷佛没有工做,例如电池电量百分比一直留在 0%。
那么,谷歌计划如何使其工做呢?从他们的 Treble 项目计划中摘录。在 Treble 项目以前,与设备和安卓自己交互的底层代码是一大堆代码。Treble 项目将二者分开,并使它们模块化,以即可以更快地交付安卓更新,而且在更新时,这些低级代码能够保持不变。
谷歌但愿为内核带来一样的模块化。他们的计划“涉及稳定 Linux 的内核 ABI,并为 Linux 内核和硬件供应商提供稳定的接口来进行写入。谷歌但愿将 Linux 内核与其硬件支持脱钩。”
所以,这意味着谷歌将交付一个内核,而硬件驱动程序将做为内核模块加载。目前,这只是一个草案。仍然有不少技术问题有待解决。所以,这不会很快有结果。
开源社区不会对将专有代码放入内核的想法感到满意。Linux 内核准则指出,驱动程序必须具备 GPL 许可证才能包含在内核中。他们还指出,若是驱动程序的更改致使错误,应由致使该错误的人来解决。从长远来看,这意味着设备制造商的工做量将减小。
到目前为止,这只是一个草案。谷歌有很大的可能会开始进行该项目,除非他们意识到这将须要多少工做后才会放弃。看看谷歌已经放弃了多少个项目!
Android Police 指出谷歌正在开发其 Fuchsia 操做系统,这彷佛是为了有一天取代谷歌。
那么,问题是谷歌会尝试完成那些艰巨的任务,使安卓以主线 Linux 内核运行,仍是完成他们统一的安卓替代产品的工做?只有时间能够回答。
你对此话题有何见解?请在下面的评论中告诉咱们。