2017-07-28 67 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驱动程序进行安装,但我不希望这样做。)