谷歌试图将Android设备内核统一至Linux内核主线
在科技世界的深度探索中,Android操作系统展现了一个与众不同的内核发展历程。这款基于Lux内核的操作系统,在其抵达每一台设备用户手中之前,所经历的内核蜕变令人瞩目。
Google在选取某个LTS(长期支持)版本的Lux内核作为基础后,为其精心打上了Android操作系统的独特补丁,使其转化为Android通用内核。这一进程才刚刚开始,而高通等SoC供应商紧接着为这一通用内核注入硬件特色补丁,使其转化为适应特定设备的内核。这些努力使得每台Android设备都拥有独特的内核,这些内核是专为特定硬件和性能需求量身定制的。
这个过程并非一帆风顺。多重fork以及处理数百万行代码大大减缓了整个开发速度。Android设备使用的内核版本往往比Lux内核主线滞后两到三年。以Google最新发布的Pixel 4为例,其搭载的Lux内核版本还停留在2017年的4.14 LTS。由于技术复杂性和工作量过大,Android设备通常无法获取内核更新,这意味着它们将永远停留在这一版本。
值得注意的是,每台设备的内核都是独一无二的,无法跨设备通用。为了缩小这一差距,Google正努力让Android设备内核更接近上游的Lux内核主线。在今年的Lux Plumbers Conference上,Android内核团队负责人Sandeep Patil明确表示了他们的目标:从根本上找到Android运行所需但不必特定于硬件的元素,并将其引入上游内核,以尽可能地接近主线。
Google的野心在于通过复制其早期的Project Treble项目来模块化Android系统。该项目在Android和硬件抽象层(HAL)之间创建了稳定的接口。在此基础上,Google计划稳定Lux内核的ABI(应用程序二进制接口),为硬件供应商提供一个稳定的写入接口,从而简化特定设备内核的生成。
Google的高级软件工程师Matthias Männich描绘了一幅理想中的内核架构蓝图。他设想“下一代Android设备”的内核将由通用内核镜像(GKI)和多个GKI模块组成,特定硬件的驱动程序(可能是闭源驱动)将作为内核模块加载。在这个设想中,所有的元素都被精细地模块化,以应对Android生态系统多样性和技术壁垒的挑战。
尽管这是一个雄心勃勃的计划,但如果成功实施,将极大地惠及Android用户、手机制造商和Lux社区等各方。这仅仅是个开始,Google仍有许多工作要完成。我们期待着这一计划能在未来带来实质性的进展和变革。