據EDN電子技術設計報道,谷歌正在對Android 13做出一個有趣但可能引起爭議的決定,即部署由華為開發的文件系統。
據外媒Esper 稱,谷歌計劃在 Android 13 中加入增強型只讀文件系統 (EROFS),使其成為默認的只讀系統。該文件系統是高翔在華為擔任工程師時創建的,與現有文件系統相比,EROFS 具有顯著優勢,包括節省空間的壓縮和速度。這可能會使安卓手機更新速度更快,占用存儲空間更小,擁有更快的讀寫速度。
EROFS全稱為Enhanced Read-Only File System(可擴展的只讀文件系統),由華為開發,并被稱為超級文件系統。
早在 2018 年年中,EROFS 就在 4.14 版本的 Linux 內核的暫存區域中首次引入, 華為工程師高翔當時表示EROFS仍然處于早期發展階段特點改進壓縮模式比其他文件sstems追求不同的設計方法,主要關注性能和速度華為工程師保證EROFS將提供改進磁盤性能和速度相比其他只讀文件系統同時還節省了磁盤空間。
該文稱:文件系統是一種概述如何存儲和檢索數據的技術。有許多不同的種類文件系統,每個都有各自的優點,可以從中選擇。您可能聽說過exFAT、F2FS、ext4之類的文件系統。選擇一個文件系統而不是另一個文件系統會對存儲性能和穩定性產生深遠的影響,因此設備制造商不會輕易做出決定。大多數設備制造商都滿足于流行的、經過良好測試的文件系統,比如ext4,但這并不意味著公司不愿意嘗試替代方案。這正是華為在開源的Linux文件系統EROFS上所做的事情,該系統被稱為EROFS。值得一提的是,當時報道稱EROFS未來會被用于Android設備上,如今這一預測真的實現了。
經過一年的持續開發,高翔使 EROFS 文件系統驅動程序在 5.4 版本正式升為主線。他說,EROFS 已被證明足夠穩定,可以部署在超過 1000 萬臺運行基于 Android 的 EMUI 9.0.1 的華為設備中。華為甚至有足夠的信心將其作為 EMUI 9.1 的一個關鍵特性進行推廣。
盡管華為的 EROFS 內核驅動程序在 2019 年末成為 5.4 版主線 Linux 內核的一部分,但文件系統本身直到 2021 年年中才被其他 Android 設備制造商使用。
部分原因是內核版本要求,Android 設備傾向于運行較舊的 Linux 內核版本,因此如果 OEM想要在具有較舊 Linux 版本的設備上支持該功能,他們必須向后移植一些補丁。此外,OEM 必須在其 OTA 更新基礎架構中構建對 EROFS 的支持,因為Android的 A/B 更新守護進程 update_engine 尚不支持 EROFS 有效負載。不過,最終,OPPO 和小米等幾家著名的 Android OEM開始使用 EROFS 發布產品。
其他 OEM 將很快效仿華為、OPPO 和小米使用 EROFS,這在很大程度上要歸功于 Google。由于 EROFS 內核驅動程序在 Linux 內核 5.4 中進行了主線化,因此 Android Common Kernel 繼承了從開始的更改。(這是允許的,因為),因此每個 Android 13 啟動設備都將具有與 EROFS 兼容的內核。Google 還為 update_engine 帶來了,添加了用于構建 EROFS 映像的,并且最近使和墨魚AVD 成為可能與 EROFS。近幾個月來,EROFS 得到了 Google 的大力支持,原因最近也很清楚:他們計劃用它來替換 EXT4,至少對于 Android 的只讀分區是這樣。
上:通過 Linux 'mount' 命令顯示的 Pixel 6 Pro 的系統分區及其文件系統;左下:通過 DiskInfo 應用程序顯示的 Pixel 6 Pro 的系統分區及其文件系統;右下:Pixel 6 Pro 的用戶數據分區及其通過 DiskInfo 應用程序顯示的文件系統
如前所述,EROFS 提供了比現有解決方案更好的隨機讀/寫性能。此外,EROFS 還可以顯著節省存儲空間。例如,構建使用 EROFS 而不是 EXT4 的墨魚圖像可以節省大約 800MB 的空間。
隨著大小的減小,額外的空間可用于將更多的系統應用程序和文件打包到這些分區中。額外的空間也可以分配給用戶數據分區,以容納更多用戶的應用程序和文件。帶寬節省也不容忽視。當 OEM 必須將完整的 OTA 更新推送給數十萬甚至數百萬用戶時,尺寸減小確實會增加。
由于文件系統架構是一個復雜的主題,因此很難解釋它究竟是如何實現這些改進的。2019 年的論文摘要顯示:
智能手機通常具有有限的存儲和運行時內存。壓縮的只讀文件系統可以顯著減少只讀系統資源使用的存儲空間。然而,現有的壓縮只讀文件系統使用固定大小的輸入壓縮,這會導致顯著的 I/O 放大和不必要的計算。它們還會在解壓過程中消耗過多的運行時內存,并在運行時內存不足時降低性能。在本文中,我們描述了 EROFS,這是一種新的壓縮友好型只讀文件系統,它利用固定大小的輸出壓縮和內存高效的解壓縮來實現高性能,而幾乎沒有額外的內存開銷。我們還報告了我們在數千萬智能手機上部署 EROFS 的經驗。
論文中比較了 EROFS 與其他文件系統的性能的各種基準和指標(來源:EROFS: A Compression-friendly Readonly File System for Resource-scarce Devices)
更多技術細節可從高翔在USENIX或KubeCon + CloudNativeCon的演講,以及kernel.org 上 EROFS的文檔和自述文件中查看。