谷歌爲安卓添加主線 Linux 內核支持

當前的安卓生態系統被數百種不一樣版本的安卓所污染,每種版本都運行着 Linux 內核的不一樣變體。每一個版本均針對不一樣的手機和不一樣的配置而設計。谷歌試圖經過將主線 Linux 內核添加到安卓來解決該問題。html

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

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

首先,谷歌採用了 Linux 內核的 LTS(長期支持)版本,並添加了全部的安卓專用代碼。這將成爲「安卓通用內核」。android

而後,谷歌將此代碼發送給建立可運行在手機的片上系統(SoC)的公司。這一般是高通公司。git

SoC 製造商添加了支持 CPU 和其餘芯片的代碼後,便會將該內核傳遞給實際的設備製造商,例如三星和摩托羅拉。而後,設備製造商添加代碼以支持手機的其他部分,例如顯示屏和攝像頭。github

每一個步驟都須要一段時間才能完成,而且會致使該內核沒法與其餘任何設備一塊兒使用。這也意味着內核會很是舊,一般是大約兩年前的內核。例如,上個月交付的谷歌 Pixel 4 帶有來自 2017 年 11 月的內核,並且它將永遠不會獲得更新。api

谷歌承諾會爲較舊的設備建立安全補丁,這意味着他們會一直盯着大量的舊代碼。安全

未來

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

「咱們知道運行安卓須要什麼,但不必定是在任何給定的硬件上。所以,咱們的目標是從根本上找出全部這些,而後將其交給上游,並嘗試儘量接近主線。」google

Sandeep Patil,安卓內核團隊負責人操作系統

他們確實炫耀了運行帶有合適的 Linux 內核的小米 Poco F1。可是,有些東西彷佛沒有工做,例如電池電量百分比一直留在 0%。

那麼,谷歌計劃如何使其工做呢?從他們的 Treble 項目計劃中摘錄。在 Treble 項目以前,與設備和安卓自己交互的底層代碼是一大堆代碼。Treble 項目將二者分開,並使它們模塊化,以即可以更快地交付安卓更新,而且在更新時,這些低級代碼能夠保持不變。

谷歌但願爲內核帶來一樣的模塊化。他們的計劃「涉及穩定 Linux 的內核 ABI,併爲 Linux 內核和硬件供應商提供穩定的接口來進行寫入。谷歌但願將 Linux 內核與其硬件支持脫鉤。」

所以,這意味着谷歌將交付一個內核,而硬件驅動程序將做爲內核模塊加載。目前,這只是一個草案。仍然有不少技術問題有待解決。所以,這不會很快有結果。

來自開源的反對意見

開源社區不會對將專有代碼放入內核的想法感到滿意。Linux 內核準則指出,驅動程序必須具備 GPL 許可證才能包含在內核中。他們還指出,若是驅動程序的更改致使錯誤,應由致使該錯誤的人來解決。從長遠來看,這意味着設備製造商的工做量將減小。

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

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

Android Police 指出谷歌正在開發其 Fuchsia 操做系統,這彷佛是爲了有一天取代谷歌。

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

你對此話題有何見解?請在下面的評論中告訴咱們。


via: itsfoss.com/mainline-li…

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

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

相關文章
相關標籤/搜索