2017-07-28 32 views

回答

1

爲什麼的Android使用的只讀分區ext4文件系統?

不是真的在這裏,可能的專家不會給一個明確的答案,但是,因爲你一定會知道,的Android很大程度上依靠的Linux和選擇可能已經的Linux -dictated。

great work通過Jonathan Levin其近來成爲free和我強烈建議你熟悉的狀態下*:

Android enforces no constraints as to the filesystem types,但的eMMC和MMC設備目前使用Linux的ext4文件系統(作爲薑餅,取代了舊版的YAFFS系統),因爲存儲層導出了一個塊設備,Ext4已經成爲Linux 2.6.27以來的默認文件系統,並且是經過充分測試的文件系統,儘管不是必須的閃存優化文件系統。 「


*第二章 - >分區方案 - >文件系統

而且ext4不使用日誌has better性能則ext2

    ext2  ext4, default ext4, no journal 
initial writes 13.0 MB/s  15.4 MB/s  15.7 MB/s 
rewrites   13.1 MB/s  15.6 MB/s  15.9 MB/s 
reads    15.2 MB/s  16.9 MB/s  17.2 MB/s 
re-reads   15.3 MB/s  16.9 MB/s  17.2 MB/s 
re-reads   15.3 MB/s  16.9 MB/s  17.2 MB/s 
2

我沒有真正的答案,但這裏有一些可能性。

ext4即使在只讀模式下也有改進,比如使用擴展區而不是塊圖,而不是ext2。這節省了元數據開銷。

系統分區可以在根設備上和系統更新期間(除了在Nougat +使用兩個系統分區進行無縫更新的設備上)重新讀寫。 ext4通常具有比ext2更好的分配行爲。

可以使用-O ^has_journal創建文件系統,這可以消除ext4的日誌開銷。 (見-j選項mkuserimg_mke2fs.sh。)

此外,鑑於ext4已在使用的讀寫用戶分區,我懷疑是避免ext2只是爲了減少不同的代碼總量的趨勢正在運行(並且需要測試)。一些端口未設置CONFIG_EXT2_FS來縮小內核。 (ext2文件系統仍然可以使用ext4驅動程序進行安裝,但我不希望這樣做。)