Google概述了在Android中支持主线Linux内核的计划

似乎Google一直在努力更新和上游Linux内核,而Linux内核是每部Android手机的核心。该公司是今年的Linux Plumbers Conference的重要参与者,这是Linux顶级开发人员的年度会议.Google花费了大量时间讨论如何使Android与通用Linux内核一起使用,而不是现在使用的高度定制版本。它甚至显示了运行主线Linux内核的Android手机。

但是首先,要了解一些有关Android当前内核混乱的背景信息。当前,在“主线” Linux内核和出厂的Android设备之间发生了三大分支(请注意,此处的“主线”与Google自己的“项目主线”无关)。首先,谷歌采用LTS(长期支持)Linux内核,并将其转变为“ Android通用内核”,即应用了所有特定于Android OS的补丁程序的Linux内核。 Android Common交付给SoC供应商(通常是Qualcomm),在该供应商中它获得了第一轮特定于硬件的添加,首先关注的是特定型号的SoC。然后,此“ SoC内核”将发送给设备制造商,以获取更多硬件特定的代码,这些代码支持其他所有硬件,例如显示器,摄像头,扬声器,usb端口以及任何其他硬件。这就是“设备内核”,它实际上是设备上附带的。

这是一个极其漫长的旅程,导致每个设备都交付数百万行树外内核代码。每个运输设备的内核都是不同的,并且是特定于设备的-基本上,一部手机的设备内核都无法在另一部手机上工作。设备的主线内核版本在SoC最初开发的初期就已锁定,因此,对于全新的设备,通常会使用已经使用了两年的Linux内核。即使是Google的最新产品
还有,最棒的设备
,Pixel 4,于2019年10月发布,带有Linux内核4.14,这是自2017年11月起发布的LTS。它也将永远停留在内核4.14上。 Android设备无法获得内核更新,这可能要归功于仅生产单个设备内核所需的大量工作,以及需要合作才能完成的工作。由于从未进行内核更新,这意味着每个新的Android版本通常都必须支持LTS内核版本的最近三年(Android 10的最低版本为4.9,2016年版本)。 Google承诺通过安全补丁支持较旧版本的Android,这意味着该公司仍在支持3.18内核,该内核已经有5年历史了。到目前为止,Google为此提供的创可贴解决方案一直是与Linux社区合作,并更长久地支持主线Linux LTS版本,现在它们可以
六年的支持

去年,在2018年Linux Plumbers Conference上,Google宣布了对使Android内核更接近主线Linux的初步调查。今年,它分享了到目前为止的更多细节,但肯定仍在进行中。 “今天,我们不知道要添加到内核上才能在(特定的)Android设备上运行,需要什么,” Android内核团队负责人Sandeep Patil在LPC 2019上告诉该小组。“我们知道运行Android需要什么。但不一定要在任何给定的硬件上使用。因此,我们的目标是从根本上找到所有这些内容,然后将其上游,并尝试尽可能接近主线。”

谷歌表示:“与(Linux)LTS(4.14.0)相比,Android通用内核具有355个更改,32,266个插入和1,546个删除(截至2018年2月)。”每年这里都在取得进展,但是请记住,此后还有两个分支。谷歌表示:“与(Linux)LTS(4.14.0)相比,Android通用内核具有355个更改,32,266个插入和1,546个删除(截至2018年2月)。”每年这里都在取得进展,但是请记住,此后还有两个分支。

尽管仍有许多工作要做,以获取更广泛的Android生态系统和各种设备配置,但​​对于特定型号的设备,事情似乎进展顺利。 Linaro Consumer Group的主管Tom Gall展示了一个小米Poco F1,它实际上在通常的Android OS下运行主线Linux内核。盖尔告诉听众:“有很多重要的道具要给Google内核团队,尤其是将其代码上传到上游,以便我们可以使用主线内核启动设备。”

除了计划尽可能多地上传内核代码之外,Google还希望复制其早期的模块化Android项目Treble的工作。正如Treble在Android操作系统和设备HAL(硬件抽象层)之间创建稳定的接口一样,Google提出的使Android更接近主线Linux的建议(这还没有一个愚蠢的“项目”名称吗?)涉及稳定Linux中的Linux。 -kernel ABI,并具有稳定的接口,供Linux内核和硬件供应商写入。 Google希望将Linux内核与其硬件支持脱钩。

Linux社区一直反对稳定接口的想法,建议如果您希望能够快速更新内核,请开源驱动程序并将其放入主内核树中,在该树中进行任何更改照顾你。但是,对于许多硬件公司来说,开源驱动程序绝对是破坏交易的因素,并且没有任何倡导或产品降级能够改变这种情况。 Google坚持支持5年的Linux版本这一事实表明该模型无法正常工作。

Google而不是一堆分叉,而是将新内核想象为一系列模块。放大/而不是一堆分叉,谷歌将新内核想象成一系列模块.MatthiasMännich

Google的高级软件工程师MatthiasMännich显示了一个标有“ Android Next Generation”的图,该图显示了此提议的内核体系结构。 Google会附带一个“通用内核映像(GKI)”以及几个“ GKI模块”,以在内核中公开此稳定的API / ABI。特定于硬件的驱动程序(可能是封闭源代码驱动程序)将作为内核模块加载。因此,所有东西都被模块化了,成为了附加盘点,而不是分叉之上的东西。

目前,Google仅建议内核ABI对于单个LTS版本是稳定的。因此,这将不允许设备将Linux内核的一个版本升级到另一个版本-它仅允许单个通用内核映像跨多个设备工作,而不是我们今天拥有的特定于设备的内核派生。它肯定会允许更轻松的安全更新,并希望它将更快地将新的LTS版本推向市场。

如果我们说这绝对是Android和Linux内核的变化,那将为时过早。仍然有很多问题需要解决(无论是技术上还是政治上,我都可以想象得到),其中一些演讲更像是Google演讲者和Linux工程师(其中很多也是Google员工)之间的公共头脑风暴会议。 。谷歌已经连续第二年参加LPC大会,并提出了在Android中使用主线Linux内核的想法,而且由于Android是地球上最大的Linux发行版,对所有人来说都有意义一起工作吧?

帕蒂尔告诉人群:“我们还有很长的路要走,我们知道这一点,但是我们是从起点开始的。'' “去年,我谈到了它的存在。这一次,我们实际上有很多问题需要讨论。”

清单图片由Eric Adeleye / Flickr

资讯来源:由0x资讯编译自ARSTECHNICA,版权归作者Ron Amadeo所有,未经许可,不得转载
提示:投资有风险,入市需谨慎,本资讯不作为投资理财建议。请理性投资,切实提高风险防范意识;如有发现的违法犯罪线索,可积极向有关部门举报反映。
你可能还喜欢