华为如何推出EROFS文件系统?
很高兴看到并回答这个问题!
华为EROFS文件系统专利压缩算法确保性能提升
EROFS文件系统(扩展的只读文件系统)是华为最近发布的一个新的Linux文件系统。它是一个基于ROM的只读文件系统,已包含在核心主线的4.19分支中。该文件系统以其为基础 “随机读写速度翻倍 “宣传引起了业内外的广泛关注。有两个方向可以解释为什么文件系统能达到这样的效果。
一般来说,4K是内存中最小的读写单位。为了找到读写单位,需要寻址。例如,一组数据的大小约为5K,压缩后的数据将占用3.5K的空间。当3K数据是一个单元时,我们可以通过读写完成一个操作。但是,如果3K中的前1.5K数据在之一个存储单元中,而最后2K数据在另一个存储单元中,我们至少需要读写两次,这将导致性能下降。
Erofs超级文件系统可以压缩系统空间,提高随机读写速度。rofs超级文件系统的诞生还有很长的路要走。我们使用的操作系统是基于Linux的,所以我们首先使用的是Linux标准文件系统ext4。Ext4的存储结构不适用于手机闪存。在Linux内核中使用的压缩只读文件系统squashfs中,每个4K数据都被压缩。不同的数据有不同的压缩比。有些数据可以压缩到很小,有些数据很难压缩。许多数据不会被压缩到这个大小。
虽然这些数据块比4K小,但可以说这些数据块根本无法与4K单元对齐,读写时会有很多额外的消耗。2016年,华为推出了优化的f2fs文件系统,取代了传统的ext4文件系统,提高了文件阅读和写作的流畅性。但目前操作系统中只读文件的系统分区是ext4。2018年,华为率先采用erfs超级文件系统,即Linux只读文件系统。在专利压缩算法的支持下,系统分区的随机读取性能平均提高20%,系统空间占用率降低14%。例如,对于128K文件,squashfs将输入一个固定大小(如32K),即将每32K数据压缩成一个不确定大小,例如12K。然后,为了读取文件中的任何4K数据,至少读取完整的12K压缩数据,然后解压读取4K。这种额外的8K读取称为 “读放大问题”。
erofs文件管理系统基本上只读,不能以可写的形式挂载。这相当于建造一堵不可逾越的墙,以保护系统分区的安全。erofs目录条目的每个条目都有12个字节。文件名也放在目录条目之后,以节省存储空间。只需将inode数量*32+超级块偏移=paddr,由于inode结构的位置没有保留,因此可以获得分区物理存储位置的inode结构,从而降低dirent结构的大小。
近年来,华为的黑色技术不断增加,这与研发是分不开的。D.华为的投资成本。自2011年以来,华为的R&D支出一直超过10%,近年来甚至超过14%,而苹果在2019年首次超过6%。2020年,R&D预算将增加到1421亿元,超过微软、苹果、英特尔等科技巨头。
前面的路还需要双脚走,夕阳不够一肩挑,希望华为以后能给我们带来更精彩的产品!
以上是我的一些观点和答案。这可能不是你想要的,但我真诚地希望它能帮助你!如果你不知道,你也可以关注我的头条新闻“每日精彩技术”。我会尽力帮助你!
码字不容易,如果觉得写的还可以,请点赞!