Android是基于Linux內(nèi)核的操作系統(tǒng),但是,運(yùn)行在Android設(shè)備上的內(nèi)核其實(shí)與Google選擇的LTS版本Linux內(nèi)核有很大不同。
在到達(dá)每一臺Android設(shè)備前,內(nèi)核會(huì)經(jīng)歷三個(gè)階段的fork:Google會(huì)先選擇某個(gè)LTS(長期支持)版本的Linux內(nèi)核,打上Android操作系統(tǒng)的特定補(bǔ)丁,使其成為Android通用內(nèi)核;緊接著,通用內(nèi)核被交付給高通等SoC供應(yīng)商,打上硬件補(bǔ)??;最后,SoC內(nèi)核再被移交至設(shè)備制造商,打上設(shè)備特定的各類元件補(bǔ)丁,這也就構(gòu)成到每臺設(shè)備中的設(shè)備內(nèi)核。
這是一個(gè)極其漫長的過程,執(zhí)行多重fork并處理數(shù)百萬行代碼大大減慢了整個(gè)開發(fā)速度。因此,Android設(shè)備使用的內(nèi)核相較于Linux內(nèi)核主線要滯后兩到三年的時(shí)間。Google于10月份最新發(fā)布了Pixel 4,其Linux內(nèi)核則是2017年11月發(fā)布的4.14 LTS版本。并且由于過大的工作量,Android設(shè)備通常不獲取內(nèi)核更新,它將永遠(yuǎn)停留在4.14版本上。
再者,各種設(shè)備的內(nèi)核都不盡相同,一臺設(shè)備的特定內(nèi)核無法在其他設(shè)備上工作。于是,Google正試圖縮小各Android設(shè)備內(nèi)核與主線Linux內(nèi)核間的差距,讓設(shè)備內(nèi)核更接近上游內(nèi)核主線。
在今年的Linux Plumbers Conference上,Android內(nèi)核團(tuán)隊(duì)負(fù)責(zé)人Sandeep Patil表示,他們的目標(biāo)是從根本上找到Android運(yùn)行所需要的、但不必在給定的硬件上運(yùn)行的東西,然后將其引入上游并盡可能接近主線。
Google的打算是復(fù)制其早期工作Project Treble以模塊化Android。Project Treble用于在Android和HAL(硬件抽象層)之間創(chuàng)建穩(wěn)定的接口。與此類似,Google計(jì)劃穩(wěn)定Linux的內(nèi)核ABI,從而提供一個(gè)穩(wěn)定的寫入接口,使硬件供應(yīng)商可以輕松地插入代碼,最終消除特定的設(shè)備內(nèi)核。
Google的高級軟件工程師MatthiasM?nnich展示了一幅預(yù)想中的內(nèi)核體系結(jié)構(gòu)圖?!毕乱淮鶤ndroid設(shè)備“內(nèi)核將由通用內(nèi)核鏡像(Generic Kernel Image,GKI)和多個(gè)?GKI?模塊構(gòu)成,特定硬件的驅(qū)動(dòng)程序(可能是閉源驅(qū)動(dòng))將作為內(nèi)核模塊加載??傊谠撛O(shè)想中,所有東西都被模塊化了。
考慮到Android生態(tài)系統(tǒng)的技術(shù)壁壘和多樣性,這應(yīng)該不是一件容易的事情。無論如何,將Android設(shè)備內(nèi)核引入主線Linux內(nèi)核肯定會(huì)使包括Android用戶、手機(jī)制造商和Linux社區(qū)等在內(nèi)的不少人受益。不過Google的計(jì)劃剛剛開始,后續(xù)還有更多的工作要完成。
-
Android
+關(guān)注
關(guān)注
12文章
3945瀏覽量
127995 -
谷歌
+關(guān)注
關(guān)注
27文章
6202瀏覽量
106064 -
Linux
+關(guān)注
關(guān)注
87文章
11350瀏覽量
210477
發(fā)布評論請先 登錄
相關(guān)推薦
升級centos7內(nèi)核版本
騰訊云內(nèi)核團(tuán)隊(duì)修復(fù)Linux關(guān)鍵Bug
嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-Linux內(nèi)核移植之內(nèi)核簡介
飛凌嵌入式ElfBoard ELF 1板卡-Linux內(nèi)核移植之內(nèi)核簡介
嵌入式工程師都在找的【Linux內(nèi)核調(diào)試技術(shù)】建議收藏!
deepin社區(qū)亮相第19屆中國Linux內(nèi)核開發(fā)者大會(huì)
linux內(nèi)核中通用HID觸摸驅(qū)動(dòng)
![<b class='flag-5'>linux</b><b class='flag-5'>內(nèi)核</b>中通用HID觸摸驅(qū)動(dòng)](https://file1.elecfans.com/web1/M00/F3/DE/wKgZoWcgTz-ACXEeAAASg7zCCSA578.png)
詳解linux內(nèi)核的uevent機(jī)制
linux驅(qū)動(dòng)程序如何加載進(jìn)內(nèi)核
Linux內(nèi)核測試技術(shù)
![<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>測試技術(shù)](https://file1.elecfans.com/web2/M00/02/4E/wKgZoma68fmAMBkcAADMAfJtb9Y443.png)
Linux內(nèi)核中的頁面分配機(jī)制
![<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>中的頁面分配機(jī)制](https://file1.elecfans.com/web2/M00/01/F5/wKgaomazJ8-AL_POAAAOtG0PZQM563.png)
歡創(chuàng)播報(bào) 華為宣布鴻蒙內(nèi)核已超越Linux內(nèi)核
在全志V851SE開發(fā)板TinyVision上 使用 SyterKit 啟動(dòng) Linux 6.7 主線內(nèi)核
使用 PREEMPT_RT 在 Ubuntu 中構(gòu)建實(shí)時(shí) Linux 內(nèi)核
![使用 PREEMPT_RT 在 Ubuntu 中構(gòu)建實(shí)時(shí) <b class='flag-5'>Linux</b> <b class='flag-5'>內(nèi)核</b>](https://file.elecfans.com/web2/M00/9B/81/pYYBAGQiWjaAbkZoAACBrWp1TiE766.png)
評論