编注:

今天苹果正式推送了 macOS High Sierra。在新版本中,一个非常重要的变化是苹果将此前 iOS 10.3 中更新的新一代文件管理系统 APFS(Apple File System) 带到了 macOS。

这套针对 SSD 和闪存开发的文件系统,是对苹果目前这套用了近十年的 HFS+ 文件系统的一次升级,它响应速度更快,安全性上也有所增强。APFS 带来了哪些改变?苹果为什么要更新 APFS?这篇文章将为你一一详解。


APFS 带来了哪些改变?

目前在售的 Mac 和 iOS 设备都采用了基于闪存的 SSD 存储。相对于机械硬盘,SSD 没有可移动的磁头,能即时访问到硬盘内的任何一处,所以不再需要担心「磁盘碎片」带来的性能下降。但是,同价位下, SSD 容量要比机械硬盘小不少,所以需要尽可能节省空间。APFS 对 SSD 做出了大量针对性的技术创新,改变了传统的「复制」和「备份」的概念。

文件克隆(Clones),复制不再占空间

传统印象里,复制一个 100MB 的文件意味着要花费额外的 100MB 空间来存储第二份文件。但在 APFS 下,「复制」只会创造一个新的标记,并未占用更多空间,如果修改其中一个文件,APFS 会保留相同的部分,只存储发生变化的部分。复制的时间会变得极短,也更加节省电力。这意味着,你将一个大小为 1GB 的文件复制 10 次,在以前的 HFS+ 中,系统会存储 10 个不同的备份,共占用 10GB 硬盘空间。而在 APFS 中,即使你复制 100 次,该文件在你的设备里也只会占用 1GB 空间。

在 iOS 10.3 之前的系统中,由于沙盒机制的影响,在 A 应用中的文件如果要被 B 应用调用的话,需要再复制一遍,占用双倍的空间,而这一问题将在 APFS 中被彻底解决。

磁盘快照(Snapshot),备份轻松一瞬间

越来越多的人已经习惯给自己的文件和磁盘做备份,以便遇到问题时能找回备份。在 Clones 的原理之上,APFS 在备份方面设计了 Snapshot 技术,可以记录下文件在某刻的状态,因为这种备份同样是基于增量的,只有文件发生变化的那一部分会占用更多的空间,所以你大可以更频繁的去备份数据,而不用担心它们把你的磁盘占满。

同样,当这项技术被应用于 Time Machine 之后,备份的速度和效率都会更高。

空间共享(Space Sharing),再也不怕分区满

用 PC 的时候,很多人都有「C 盘满了」过的尴尬,在传统的分区模式下,单一分区空间不足时,其他分区的剩余空间是「远水解不了近渴」的。APFS 全新的 Space Sharing 技术将传统的分区虚拟为 Container(容器),只要几个容器在一个 APFS 磁盘下,那么每个都可以自由变大和缩小的(最大是磁盘的理论空间),任意一个缺乏空间的时候,整个 APFS 下的冗余空间任君调遣,再也不用担心下载的时候提示空间不足的尴尬了。

服务质量(I/O QoS),性能提升看得见

APFS 也提升了整个系统在 SSD 上的性能表现,APFS 提供了 Extensible block allocator 等技术,对于更大容量的 SSD 的做了优化。借助 I/O QoS(服务质量)技术,APFS 的延迟得到大幅改善,对数据的不同访问被划分到不同的优先级中, APFS 会优先处理对用户感知明显的操作,用户会明显感觉自己的设备变快了。

除了文件存储的新技术,APFS 的安全性也比 HFS+ 有所提升,这体现在两个方面:一个是加密层面,另一个是使用层面。

Encryption(加密技术),设备丢失也不怕

在之前的 Mac OS 以及 iOS 中都已经有了形式丰富的数据加密方式,此次 APFS 做了统一整合,提供了三种加密方式:

  1. 无加密
  2. 单密钥加密
  3. 多密钥加密

多密钥模式的意思是,你可以用密钥 A 给设备加密,然后再用额外的密钥 B 给部分数据加密,即便哪天你的电脑硬件不幸落入歹人之手,对方也只是开了锁 A,只要没有密钥 B,这部分数据就永远是安全的。这项技术也解决了一个长期以来的问题,以往我们更换设备的时候都被嘱咐要反复往磁盘里存储几遍无关数据,担心个人隐私被不法之徒恢复,而以后只要把密钥删除,就不用反复写数据了。

Crash Protection(崩溃保护),数据读取低风险

正在编辑文档,写着写着断电了,文件打不开了怎么办?APFS 引入了 Copy-on-Write 机制,编辑文件时原有数据并不会被当即修改,修改会在一个新的位置完成,只有确定新的数据已经编辑完成,旧的数据才会被删除。

同样,当现有设备升级到 APFS 的过程中,会先在磁盘的空余区间先完成数据的转换,然后再覆盖旧有数据。即便系统升级过程中软件崩溃或者意外的跌落事故等,也可以最大程度确保数据的安全。

苹果为什么要更新 APFS?

在 APFS 之前。苹果的文件管理系统历经三代变化,最早期型号的 Mac 使用了名为 MFS(Macintosh File System)的文件系统,但没过多久,苹果发现 Mac 用户生成的文件数量和复杂程度都在与日俱增,于是在 1985 年推出了 HFS 文件系统,这也成为今后几十年 Mac 文件系统的基础。1998年,苹果在 HFS 的基础上,升级出了 HFS+(又称 OS X Extended)文件系统。HFS+ 仍然是迄今为止 Mac 的文件系统标准,同样也是 iPod 及 iOS 设备的文件系统基础。

在计算机领域,一项使用 30 年的技术绝对不是而立之年,而是垂垂老矣,30 年的时间,苹果已经从一家计算机生产商变成了一个蓬勃生长的生态,APFS 的出现,也是为了为整个生态做好依托。

支持最新软硬件技术

在 WWDC 2016 发布 APFS 时,苹果直言 HFS+ 和它的前任 HFS 当时完全是针对软盘和机械硬盘设计,考虑的还是 KB 和 MB 级的文件规模。而今天,早已是属于 SSD 和 TB 乃至 PB 级数据的时代了,存储硬件领域的创新呼唤新的文件系统的到来。而 HFS+ 当年为了照顾其余硬件的设计,譬如元数据有全局锁,同一时间只有一个进程可以访问更新文件系统等为当年低频 CPU 做的优化,反而成了当下多核高性能处理器的累赘。


同时,移动互联网的发展让设备的使用场景和形态发生了巨大变化,移动使用中常见的意外 Bug、断电等都对数据的安全性提出了新要求,层出不穷的网络安全事件也对数据加密提升了标准。

协调统一生态系统

对苹果而言,APFS 还担负着统一生态的责任。在 iOS 10.3 之前,尽管 iOS 设备同样使用 HFS+ 文件系统,但在不同的设备的执行方式和功能都有区别,Mac 产品和 iOS 产品线之间在代码上不尽相同,这种混乱的状态也给开发者制造了麻烦。


同样在 WWDC 上,苹果用了「结束混乱」的字眼,APFS 将在从 Apple Watch 到 Mac Pro 之间所有不同体积和用途的产品上保持一致,代码将完全统一,从苹果维护更新和开发者调用 API 的角度都更为方便,也可以保证新技术能被不同设备一致享用。

无论如何,苹果使用 APFS 已成定局。苹果官方表示 APFS 对 HFS+ 的兼容性非常好,用户不会遭遇到程序不能使用等问题,唯一需要注意的是 APFS 分区将不能被之前版本的 Mac OS 支持,所以如果你把移动存储介质格式化为 APFS 格式的话,在朋友的旧版系统中可能会无法读取。一个属于 APFS 的新时代即将到来,是时候向它张开双臂拥抱未来了。


刚刚升级了 macOS 10.13?来看看有哪些值得了解的新功能:

升级 macOS 后先看这 6 点新变化,告诉你 High Sierra 到底 High 在哪 >