这次iOS升级主要是把文件系统升级成了苹果文件系统(APFS,Apple File System)。什么?你不知道文件系统是个什么东东?打个形象的比喻,如果每个人拥有的财富是文件的话,那么文件系统就是银行,银行记录了每个人的账户创建时间、账户类型、存款数额等,还负责财富在不同人之间的转移。
这个APFS用到苹果的各类操作系统中,包括watchOS,iOS,tvOS,macOS。它主要有三大特点:
- 通过统一的文件系统,实现不同苹果设备之间的数据平滑迁移;
- 为固态硬盘做了优化;
- 数据加密技术。
以前的HFS+文件系统用的也挺好的,为什么要改成APFS呢?因为你知道吗,HFS+已经是30岁高龄了,在技术领域,能服役30年的技术确实算是老寿星级别。HFS+诞生的时候,存储世界的王者是软盘和机械硬盘,CPU只有一个核心,用户数据都非常简单,既没有高清小电影,也没有各种App的海量文件,硬盘也没有如今这么大,摄影家冠希哥也没想着要给电脑里珍藏的照片加个密。
HFS+最终被抛弃还有一个原因是在那个没有计划生育的年代,它的兄弟姐妹太多了,针对不同的场合,娘亲苹果生出了不同的孩子,比如HFS+J,HFS标准版,HFSX等。大家各自成家,关起门来过日子,阻碍了财富的流通,最终阻碍生产力的发展。
新文件系统的技术特点有:
- 为固态硬盘做优化;
- 断电数据保护;
- 内部采用64位变量;
- 扩展性更好;
- 为苹果生态系统软件做优化;
- 低延迟;
- 兼容HFS;
- 原生加密支持。
下面阿呆来带你到APFS一游。
固态硬盘优化
苹果家大业大,什么都想自己做,比如iPhone里面的文件系统、FTL都是自己做。这样它就能让二者深度整合。苹果声明了以下支持:
- Trim:删除文件的同时,删除SSD上的数据,节约空间;
- 不会出现系统卡死:玩手机最怕的是系统卡死了,往往是由于后台应用占据了SSD或者内存、CPU资源。APFS解决了存储方面的稳定性,优先照顾用户能看到的应用,后台的只能等等。
加密
手机丢了,里面的大尺度私房照被人拿到怎么办?
APFS的加密功能异常强大,首先是秘钥的选择有很多种:
- 不加密;
- 所有数据一个秘钥;
- 不同的元数据、文件用不同秘钥,甚至同一个文件的不同部分也可以使用不同秘钥。
这种多秘钥有很多用途,比如电脑上不同用户使用不同秘钥。而手机上也是,尽管所有数据都是加密的,但是手机没解锁时,还是能做不少操作的,比如拍照、紧急电话等,这些应用相关的数据用其他方法加密。
加密还有一个作用是擦除数据相当快。本来需要物理擦除SSD上的数据,至少几分钟,但是加密后的数据,只需要修改秘钥,导致原来的秘钥作废,就能轻松搞定数据删除。阿呆相信苹果的这个功能肯定会给中情局留个后门。。。。。。比如把原来的秘钥藏在某个小角落里。
备份和镜像
手贱把珍藏多年的苍老师种子合集删了怎么办?
别怕,APFS有一种先进的镜像系统,就是用户对当前的数据做一个镜像,以后新的改动会写到新的地方,这样,你可以随时回到以前的某一个镜像找回曾经的记忆。同时,还可以把数据远程备份到云服务器上,比如iCloud。
APFS有个新功能是空间共享,就是同一个设备有很多个卷,不过这个看起来在电脑上的用处更大。一般我们电脑上都是分区,分区有不少缺点,比如分好之后空间就固定了,满了不能继续扩大,或者太大了不能收缩。卷就可以动态调整,不同的卷可以采用不同的管理策略。
Copy-on-Write
一般我们在电脑里复制一个文件,就会占用磁盘的空间。APFS采用了一种新技术,复制文件并不复制数据,只是记录一下地址而已。只有在有改动时,才会写新数据。
数据安全性
之前说,APFS复制文件并不复制数据,而是搞个链接。这样的结局是,万一数据丢了,两个文件都没了。不过别怕,因为APFS用了Copy-on-Write,数据修改的时候并不直接覆盖以前的版本,而是写到新的地方,这样降低了数据丢失的风险:刚改完文件,电池没电了,新数据丢了,至少可以回到旧的版本,而不是新旧混搭,四不像。
万一SSD返回错误的数据给你怎么办?即使数据拿不回来,至少用户要知道这个数据不对。比如写了个欠条10000,结果保存之后,读出来是20000,那不坑死爹了。。。。APFS的元数据使用了校验数据,就是把原始数据用公式算出一个值,下次读出来就把公式重新算一下,看看新算的结果和保存的旧结果是否一致。不一致那就意味着数据出错了,SSD还没发现。不过,苹果对他们的SSD还是很信任的,所以用户数据没有搞校验,毕竟SSD内部的纠错算法已经很强大了(攻城狮们埋下的Bug估计也找的差不多了)。
引用: