在上一屆 Linux Plumbers 2019 大會上,Google
一旦專案準備就緒,供應商將被要求提供基於主要 Linux 核心的基礎核心。 供應商將僅以附加核心模組的形式提供硬體支援元件,而不對核心應用補丁。 模組需要在核心符號命名空間層級與主核心相容。 所有影響主核心的變更都會被提升到上游。 為了保持與 LTS 分支內專有模組的兼容性,建議以穩定的形式維護核心 API 和 ABI,這將保持模組與每個公共核心分支的更新的兼容性。
在一年的時間裡,PSI(壓力失速信息)子系統用於分析獲取各種資源(CPU、內存、I/O)的等待時間信息,以及用於進程間通信的 BinderFS 偽文件系統等功能機制從Android內核版本轉移到了Linux主內核,Binder和節能任務調度器EAS(Energy Aware Scheduling)。 未來,Android計畫從特定的SchedTune調度程序轉移到ARM開發的新的UtilClamp子系統,基於cgroups2和標準核心機制。
讓我們回想一下,到目前為止,Android 平台的核心已經經歷了幾個準備階段:
- 基於主要的 LTS 核心(3.18、4.4、4.9 和 4.14),創建了“Android Common Kernel”的一個分支,將 Android 特定的補丁轉移到其中(之前更改的大小達到了幾百萬行,但最近更改已減少到數千行程式碼)。
- 基於“Android通用內核”,高通等晶片製造商形成了“SoC內核”,其中包括支援硬體的附加元件。
- 基於 SoC 內核,設備製造商創建了設備內核,其中包括與支援附加設備、螢幕、相機、音響系統等相關的變更。
本質上,每個設備都有自己的內核,不能在其他設備上使用。 該方案使消除漏洞的更新實施以及向新核心分支的過渡變得非常複雜。 例如,4 月發布的最新 Pixel 4.14 智慧型手機搭載了兩年前發布的 Linux 核心 XNUMX。 在某種程度上,Google試圖透過推廣該系統來簡化維護
來源: opennet.ru