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