安卓|鸿蒙的“基因”要渗入安卓的血液里

安卓|鸿蒙的“基因”要渗入安卓的血液里

文章图片

安卓|鸿蒙的“基因”要渗入安卓的血液里

文章图片

安卓|鸿蒙的“基因”要渗入安卓的血液里

文章图片

安卓|鸿蒙的“基因”要渗入安卓的血液里

文章图片

安卓|鸿蒙的“基因”要渗入安卓的血液里

文章图片

安卓|鸿蒙的“基因”要渗入安卓的血液里

自2012年向Linux内核社区贡献第一个补丁以来 , 华为在这十年间不断增加对Linux 社区的投入 , 从1个补丁/1个开发者参与到1434个补丁/95个开发者参与 , 从0个Maintainer到26个Maintainer 。 作为Linux的开发者和使用者 , 华为在使用代码的同时也在丰富并修改过往的错误代码内容 。
尽管因为美国制裁的原因 , 目前华为已经无法正常使用Android系统 , 华为软件团队的主要精力也已经转移到鸿蒙生态的开发上 , 但是他们对于Linux社区作出的贡献 , 他们在ARM 64架构、ACPI子系统、文件系统、和代码重构方面的改良依然在散发着光芒 , 甚至对同样采用Linux内核的Android 13原生系统产生了深远的影响 。
近日 , 根据XDA Developers前任主编、外网博客Esper高级技术编辑Mishaal Rahman报道 , 谷歌正在对Android 13原生系统作出一个有趣且可能引起争议的决定 , 即在Android 13中部署由华为开发的增强型只读文件系统 , 使其成为默认的只读文件系统 。

(图源:Esper@Mishaal Rahman)
消息一出 , 就像是一石激起千层浪 , 整个社交媒体即刻沸腾起来 。 Android 13原生系统居然要用华为开发的文件系统 , 莫非是谷歌要向华为低头了?诸如此类的言论不胜枚举 。 借此机会 , 我们就来好好研究一下这个EROFS文件系统 , 顺便分析一个谷歌这个操作对其他安卓厂商可能带来的影响 。
更快、更省、更安全什么是EROFS?
所谓EROFS , 指的是是华为为Linux内核设计的Enhanced Read-Only File System(增强式只读文件系统) , 该系统旨在提供一种解决方案 , 通过对硬件资源有限的设备(例如Android等智能手机)需要高性能只读要求的场景使用透明压缩来节省存储空间 , 并通过就地解压缩以实现更高的顺序读取 。
2018年5月 , 前华为工程师高翔首次在Linux 4.14版内核的暂存区域中引入EROFS系统 。 按照高翔当时的说法 , EROFS更多地关注性能 , 而不是仅仅关注尽可能多地节省存储空间 。 当时公布的测试数据显示 , EROFS随机数据读取速度对比ext4有明显优势 , 最高提升超过500%。

(图源:华为论坛)
2019年4月 , 在华为P30系列国内发布会上 , 华为终于宣布了EROFS超级文件系统的到来 。 在官方宣传中 , 华为表示EROFS超级文件系统不仅可以将随机读取速度平均提高20%至200% , 同时还能节省超过2%的系统存储空间 , 甚至能让你的手机文件变得更加安全 。

(图源:Twitter@EMUI)
问题来了 , 一个简单的文件系统 , 究竟是怎么给手机带来这么大提升的?简单地说 , 这里面的玄机在于「压缩」和「只读」这两个关键词 。
首先 , 由于Android系统是基于Linux内核开发的 , 所以理所当然地沿用了Linux的主流文件管理系统Ext4 。 因为当时的储存介质普遍还是机械硬盘(HDD)的原因 , 这个诞生自2006年的文件系统 , 并没有针对闪存作太多的优化 , 更不可能支持系统文件压缩算法 。
作为对比 , 华为研发的EROFS是一个压缩文件系统 , 可以通过改进的fixed-sized output压缩算法 , 将需要读写的数据压缩为固定大小的文件块 , 这样每次读写文件需要读取的数据量更少 , 可以解决传统文件系统「读写问题」带来的损耗 , 降低IO读取量 , 从而提升读取速度 。

(图源:CSDN@P2_62476)
在华为P30系列发布会上 , 华为表示 , 比起安卓Linux内核的EXT4文件系统 , EROFS 的随机读性能平均提升达20% , 在4%的压缩率时 , 性能提升甚至可以达到288% 。

(图源:华为P30发布会)
除了提升手机的读取速度之外 , EROFS文件系统还能节省存储空间 。 一般来说 , 系统文件是以压缩后的形式存储在ROM上 , 借助EROFS文件系统的压缩算法 , 智能手机的系统文件可以进一步压缩 。 华为表示 , 以一款128GB ROM的手机为例 , EROFS 可以减少2GB的空间占用 , 让你多存储1000张照片或者500首歌曲 , 同时系统升级包的大小同样得以压缩 , 平均升级时间缩短约20% 。