谷歌為安卓新增主線 Linux 核心支援

5 贊 回覆發表於2019-11-27

當前的安卓生態系統被數百種不同版本的安卓所汙染,每種版本都執行著 Linux 核心的不同變體。每個版本均針對不同的手機和不同的配置而設計。谷歌試圖通過將主線 Linux 核心新增到安卓來解決該問題。

當前在安卓中是如何處理 Linux 核心的

在到達你的手機之前,你手機上的 Linux 核心經歷了三個主要步驟

首先,谷歌採用了 Linux 核心的 LTS(長期支援)版本,並新增了所有的安卓專用程式碼。這將成為“安卓通用核心”。

然後,谷歌將此程式碼傳送給建立可執行在手機的片上系統(SoC)的公司。這通常是高通公司。

SoC 製造商新增了支援 CPU 和其他晶片的程式碼後,便會將該核心傳遞給實際的裝置製造商,例如三星和摩托羅拉。然後,裝置製造商新增程式碼以支援手機的其餘部分,例如螢幕和攝像頭。

每個步驟都需要一段時間才能完成,並且會導致該核心無法與其他任何裝置一起使用。這也意味著核心會非常舊,通常是大約兩年前的核心。例如,上個月交付的谷歌 Pixel 4 帶有來自 2017 年 11 月的核心,而且它將永遠不會得到更新。

谷歌承諾會為較舊的裝置建立安全補丁,這意味著他們會一直盯著大量的舊程式碼。

將來

去年,谷歌宣佈計劃解決此問題。今年,他們在 2019 Linux Plumbers Conference 上展示了他們取得的進展。

“我們知道執行安卓需要什麼,但不一定是在任何給定的硬體上。因此,我們的目標是從根本上找出所有這些,然後將其交給上游,並嘗試儘可能接近主線。”

Sandeep Patil,安卓核心團隊負責人

他們確實炫耀了執行帶有合適的 Linux 核心的小米 Poco F1。但是,有些東西似乎沒有工作,例如電池電量百分比一直留在 0%。

那麼,谷歌計劃如何使其工作呢?從他們的 Treble 專案計劃中摘錄。在 Treble 專案之前,與裝置和安卓本身互動的底層程式碼是一大堆程式碼。Treble 專案將兩者分開,並使它們模組化,以便可以更快地交付安卓更新,並且在更新時,這些低階程式碼可以保持不變。

谷歌希望為核心帶來同樣的模組化。他們的計劃“涉及穩定 Linux 的核心 ABI,併為 Linux 核心和硬體供應商提供穩定的介面來進行寫入。谷歌希望將 Linux 核心與其硬體支援脫鉤。”

因此,這意味著谷歌將交付一個核心,而硬體驅動程式將作為核心模組載入。目前,這只是一個草案。仍然有很多技術問題有待解決。因此,這不會很快有結果。

來自開源的反對意見

開源社群不會對將專有程式碼放入核心的想法感到滿意。Linux 核心準則指出,驅動程式必須具有 GPL 許可證才能包含在核心中。他們還指出,如果驅動程式的更改導致錯誤,應由導致該錯誤的人來解決。從長遠來看,這意味著裝置製造商的工作量將減少。

關於將主線核心包含到安卓中的最終想法

到目前為止,這只是一個草案。谷歌有很大的可能會開始進行該專案,除非他們意識到這將需要多少工作後才會放棄。看看谷歌已經放棄了多少個專案!

Android Police 指出谷歌正在開發其 Fuchsia 作業系統,這似乎是為了有一天取代谷歌。

那麼,問題是谷歌會嘗試完成那些艱鉅的任務,使安卓以主線 Linux 核心執行,還是完成他們統一的安卓替代產品的工作?只有時間可以回答。

你對此話題有何看法?請在下面的評論中告訴我們。


via: https://itsfoss.com/mainline-linux-kernel-android/

作者:John Paul 選題:lujun9972 譯者:wxy 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

谷歌為安卓新增主線 Linux 核心支援

訂閱“Linux 中國”官方小程式來檢視

相關文章