似乎Google一直在努力更新和上游Linux内核,而Linux内核是每部Android手机的核心。在今年的Linux Plumbers Conference上,该公司是主要的Linux开发人员大会的重要参与者 。Google 花费了大量时间讨论如何使Android与通用Linux内核一起使用,而不是现在使用的高度定制版本。它甚至显示了运行主线Linux内核的Android手机。
但首先,了解一些有关Android当前内核混乱的背景。当前,在“主线” Linux内核和出厂的Android设备之间发生了三大分支(请注意,此处的“主线”与Google自己的“ Project Mainline ”无关)“)。首先,Google使用LTS(长期支持)Linux内核,并将其转变为“ Android Common内核”,即应用了所有Android OS特定补丁程序的Linux内核。AndroidCommon交付给SoC供应商(通常是高通公司(Qualcomm)进行了第一轮针对硬件的扩展,首先针对特定型号的SoC,然后将该“ SoC内核”发送给设备制造商,以获取更多支持所有其他硬件的特定于硬件的代码,例如显示器,摄像头,扬声器,usb端口以及任何其他硬件,这就是“设备内核”,它实际上是设备上附带的。
Android用户很高兴!Linux内核LTS版本现已发布6年了
这是一个极其漫长的旅程,导致每个设备都交付数百万行树外内核代码。每个运输设备的内核都是不同的,并且是特定于设备的-基本上,一部手机的设备内核都无法在另一部手机上工作。设备的主线内核版本在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年历史了。谷歌'六年的支持。
去年,在2018年Linux Plumbers Conference上,Google宣布了对使Android内核更接近主线Linux的初步调查。今年,它分享了到目前为止的更多细节,但肯定仍在进行中。“今天,我们不知道如何才能被添加到内核的[具体] Android设备上运行,” Android的内核团队主管桑迪普·帕蒂尔告诉组在2019年LPC“我们知道需要什么来运行的Android但不一定要在任何给定的硬件上使用。因此,我们的目标是从根本上找到所有这些内容,然后将其上游,并尝试尽可能接近主线。”
谷歌表示:“与[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显示了一个标有“ Android Next Generation”的图,该图显示了此提议的内核体系结构。Google会附带一个“通用内核映像(GKI)”以及几个将在内核中公开此稳定API / ABI的“ GKI模块”。特定于硬件的驱动程序(可能是封闭源代码驱动程序)将作为内核模块加载。因此,所有东西都被模块化了,成为了附加包装,而不是叉子之上的东西。
目前,Google仅建议内核ABI对于单个LTS版本是稳定的。因此,这不允许设备将Linux内核的一个版本升级到另一个版本-它仅允许单个通用内核映像跨多个设备工作,而不是我们今天拥有的特定于设备的内核派生。它肯定会允许更轻松的安全更新,并希望它将更快地将新的LTS版本推向市场。
如果我们说这绝对是Android和Linux内核即将发生的变化,那将为时过早 。仍然有很多问题需要解决(无论是技术上还是政治上,我都可以想象得到),其中一些演讲更像是Google演讲者和Linux工程师(其中很多也是Google员工!)之间的公共头脑风暴会议。 。谷歌已经连续第二年参加LPC大会,并提出了在Android中使用主线Linux内核的想法,并且由于Android是地球上最大的Linux发行版之一,对于大家一起努力吧?
帕蒂尔对人群说:“我们还有很长的路要走,我们知道,但是我们是从起点开始的。” “去年,我谈到了它的存在。这一次,我们实际上有很多问题需要讨论。”
本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.sosokankan.com/article/1481110.html