淺談Linux內(nèi)核領(lǐng)域中發(fā)生的情況
我們通常不會描述Linux內(nèi)核領(lǐng)域中發(fā)生的事情,但務(wù)必要注意每個(gè)新內(nèi)核版本的工作方式,因?yàn)镚oogle要求每個(gè)新內(nèi)核都具有最低版本的Linux內(nèi)核。 版本的Android。 最近的決定將LTS的發(fā)布時(shí)間從2年延長到6年,這將在減少安全補(bǔ)丁的分散方面起重要作用,因?yàn)樵O(shè)備制造商在向后遷移安全補(bǔ)丁方面做得很少。 此外,主要核心通常會為移動設(shè)備合并新功能。
例如,最近發(fā)布了內(nèi)核的下一個(gè)LTS版本的第一個(gè)Release Candidate構(gòu)建 -Linux內(nèi)核5.0 RC1。穩(wěn)定版還剩下一兩個(gè)月的時(shí)間,但是我們已經(jīng)可以看到即將發(fā)布的版本中的內(nèi)容。我將重點(diǎn)介紹一些與移動設(shè)備相關(guān)的更新,但是如果您對開源開發(fā)和Linux內(nèi)核完全感興趣,建議您查看完整的變更日志。
ARM big.LITTLE EAS支持
自從最初的Pixel發(fā)行以來,能源意識調(diào)度已成為Android設(shè)備上的一件事。EAS是Google Pixel設(shè)備通常比競爭對手更搶眼的原因之一。高通已經(jīng)發(fā)布了支持的Snapdragon 845內(nèi)核,因此具有此SoC(或更高版本)的任何設(shè)備都將支持EAS。雖然,直到現(xiàn)在Linux還沒有上游支持Energy Aware Scheduling。從理論上講,上游支持應(yīng)該使芯片和設(shè)備制造商更容易在其設(shè)備中實(shí)施該技術(shù)。但是對于最終用戶來說,上游支持的意義并不大。
鐵線蕨支持
Speck是國家安全局(NSA)開發(fā)的加密算法,在低端硬件上效果很好。Google 打算增加對斑點(diǎn)的支持,因?yàn)樗鼮镾oC缺乏硬件加速加密擴(kuò)展的廉價(jià)設(shè)備提供數(shù)據(jù)加密支持。Speck的采用由于與NSA的關(guān)系而受到廣泛批評。在Linux內(nèi)核4.20中已刪除了對斑點(diǎn)的支持,而其替代品Adiantum在帶有EXT4 / F2FS文件系統(tǒng)的低端硬件上的性能同樣好(甚至更好)。
F2FS和EXT4修復(fù)
閃存文件系統(tǒng)或F2FS被廣泛用于 Android設(shè)備中。例如,Google Pixel 3和Pixel 3 XL正式 支持F2FS。顯然,F(xiàn)2FS的原始開發(fā)者Jaegeuk Kim向Linux存儲庫發(fā)送了合并請求,要求對文件系統(tǒng)進(jìn)行大量修復(fù)。這些更改將解決加密問題和空閑時(shí)間管理以及垃圾收集修復(fù)。您可以在此拉取請求中看到所有詳細(xì)信息??傮w而言,修復(fù)F2FS可提高支持或?qū)⒅С炙腁ndroid智能手機(jī)的穩(wěn)定性和可靠性。
同樣,流行的EXT4文件系統(tǒng)已經(jīng)收到了十幾個(gè)補(bǔ)丁。EXT4在許多Android設(shè)備上使用,例如最新的OnePlus設(shè)備(包括OnePlus 5T, OnePlus 6和OnePlus 6T)。
新的ARM硬件支持
GNU / Linux發(fā)行版可以說是在基于ARM的硬件上運(yùn)行的最佳操作系統(tǒng)。他們基于開源模型提供可靠的多任務(wù)處理。ARM處理器經(jīng)過專門設(shè)計(jì),可以一次執(zhí)行很多任務(wù)。這就是為什么操作系統(tǒng)與硬件保持同步很重要的原因。如您所知,大多數(shù)Android智能手機(jī)和平板電腦都使用具有ARM體系結(jié)構(gòu)的芯片組。基于RISC的芯片非常適合運(yùn)行日常任務(wù)(您在智能手機(jī)上執(zhí)行的任務(wù)。Linux內(nèi)核5.0增加了對許多新ARM硬件的支持。以下是其中的一些功能:
Tegra X2
特格拉·澤維爾(Tegra Xavier)
全志F1C100
高通QCS404
全志T3
恩智浦Layerscape LX2160
除了對特定ARM硬件的通用兼容性支持之外,Linux內(nèi)核5.0還改進(jìn)了電源管理。
BinderFS支持
Android使用Binder在系統(tǒng)中不同進(jìn)程之間交換參數(shù)。應(yīng)用程序,活動和流程使用Binder啟動和管理流程。Android上的安全性高度取決于UID權(quán)限。活頁夾使用雙向IPC調(diào)用檢查應(yīng)用程序提供的UID,以確認(rèn)它可以訪問要使用的功能。BinderFS是Binder的更新版本,但是它更加專業(yè)并且與系統(tǒng)兼容。對于最終用戶而言,對BinderFS的支持不會有太大變化,但從長遠(yuǎn)來看,它將為開發(fā)人員解決一些實(shí)現(xiàn)問題。這是相關(guān)的提交。
能源模型管理框架
另一個(gè)補(bǔ)充是對能源模型管理框架的支持。此更改主要針對ARM和內(nèi)核開發(fā)人員。它提供了來自不同來源(例如設(shè)備樹或驅(qū)動程序)的標(biāo)準(zhǔn)化能源使用信息的新層。能耗和報(bào)告由硬件和軟件處理的方式有所不同。能源模型管理框架將提供一個(gè)標(biāo)準(zhǔn)API,內(nèi)核中的另一個(gè)驅(qū)動程序可以使用該API來訪問有關(guān)能耗的信息。從理論上講,這將使軟件工程師和開發(fā)人員更輕松地從硬件中獲取相關(guān)信息。您可以在commit中閱讀有關(guān)此框架的更多信息。
ARM64指針身份驗(yàn)證支持
每個(gè)相關(guān)的硬件和軟件解決方案,尤其是在移動設(shè)備上,都需要強(qiáng)大的安全協(xié)議。這就是Linux內(nèi)核5.0在ARM64指針身份驗(yàn)證的支持下提供的功能。由于大多數(shù)智能手機(jī)都具有基于ARM64的芯片組,因此至關(guān)重要的是,攻擊者不能利用Linux內(nèi)核中用于訪問內(nèi)存地址的指針。新的身份驗(yàn)證協(xié)議將指針與秘密密鑰進(jìn)行比較。指針身份驗(yàn)證將嘗試避免面向返回的編程(ROP)和其他類型的攻擊。