题图:from globeshotz
今天早上9点25分,二爷从微信上扔过一条信息:iOS10.3,升了没?那时我刚和泰稳·仁波切开完电话晨会,牙还没刷,怎么有空升级呢。我说没有,10.3 是那个采用了 APFS 的版本吧,你升级之后感觉快了吗?二爷说,似乎快了一丢丢。一丢丢显然不足以显示 APFS 的优势,我说你打开十几个 App,试着切换一下。
微信那边沉默了一段时间之后,二爷留着口水重新出现在了时间线上:太神奇了,几十个 App 打开,切换起来快如闪电,再也不用看微信的小人仰望星空了,你造,我小时候一个人很孤单,没人理,每天看星星于是产生了星空恐惧症……
你长大了不也没人理吗?我关掉了微信和絮絮叨叨的二爷,开车上班去了。
APFS 并不是新概念,这套全新的文件系统早在去年 WWDC 大会上就发布了,这是一套专门针对 SSD 硬盘优化的文件系统,旨在取代现有的 HFS+ 。说起 Apple 的文件系统,那将是一段漫长的历史,我曾经在 《MacTalk·人生元编程》里略有涉及,简单来说,APFS 的前任是 HFS,1986年出现在了 System3.0 系统上,于是有了文件夹的概念,文件可以分层次存储了。到了1998年,Apple 为 macOS 开发了 HFS+,是 HFS 的增强版,后来 iOS 团队为移动设备开发出了 HFS+ 的变体,应用在了 iPhone、iPad 等设备上,沿用至今。
这一次的 APFS 并不是对前任的修修补补,而是彻底的推倒重来。2014 年 Apple 的研发团队针对普遍使用 SSD 硬盘研发了全新的文件系统,这次他们起了一个非常清丽脱俗的名字,叫做 Apple File System,简称 APFS :)
相对于机械硬盘,SSD 最大的特点是什么呢?二爷说,SSD 不需要转啊,不会得眩晕症。是这样的,SSD 所有位置的读取速度都是一致的,文件也不需要连续存储,更不需要整理磁盘,也就是说,我们在设计文件系统的时候,再也不用考虑如何让文件更连续的存储在磁盘上以提高性能这个问题了。于是有了更多的创新。
APFS 设计了一种类似 Docker 镜像机制的写入时复制(Copy-on-write)功能,让输入输出统一起来,以最大限度提供存储性能和数据的可靠性。同样,与 Docker 的文件系统类似,APFS 提供了空间共享的特性,即磁盘上的多个物理卷共享底层可用空间。这样文件的操作就出现了很多全新的特性。
复制:在 APFS 系统里复制一个1G 的文件,只会创建一个新的标记,几乎不占空间,就像 Linux 里的软链接,但形态又不一样。当你修改这个复制过来的文件,系统会保留相同的部分,只存储发生变化的部分。这样复制就会「快如闪电」,节省空间并且增加机器的续航能力。
备份:APFS 设计了 Snapshot 技术,可以记录文件在某一时刻的状态,备份的时候同样是增量备份,而且增量是文件级别的,而不是系统级别的(增量是修改过文件的数量)。未来 macOS 的备份工具「时间机器」采用这样的技术,备份和恢复都会增速不少,而且占用空间更少。
由于完全是针对 SSD 设计的,所以这次 APFS 对磁盘的使用性能有了质的提升。另外的特性包括空间共享、加密和数据保护功能。APFS 对数据的写入只有两种状态,一种是成功,一种是失败,没有中间状态,所以不会出现文件崩溃或打不开的问题。
这次 iOS 10.3 全面启用了 APFS 系统,升级用户面临的是什么情况呢?
1、升级时间比较长,因为要替换文件系统,如果你担心原有的数据丢失,最好备份一下,我升了,没事。
2、目前我用到的所有软件都是兼容的,确实快了一丢丢,并不是脱胎换骨的快。这是因为 iOS 一直采用的当前 App 优先使用最佳资源的策略,没用 APFS 之前,App 本身也很流畅,当你正在使用当前的 App 时,iOS 会降低或 Kill 掉其他进程对资源的占用。这也就是我们常常吐槽的 iOS App 在切换时会不停的 Launch,Launch……现在不用了。
3、只要你打开过一个 App,基本上就别想再看见它的启动界面了,除非你手动关闭这个程序。现在切换几十个 App 流转自如,每个都丝般顺滑,仿佛有了一部新 iPhone……你感受一下。
4、升级之后,你会发现多了几 G 空间,这也是拜 APFS 所赐。
产品经理们常说,当你的程序慢一秒时,就会损失掉 xxxx 个用户云云,在操作系统级别,同样唯快不破。快和流畅,是这个时代最重要的用户体验,而给予这些特性的,依然来自真正的技术创新。
很快 macOS,watchOS,tvOS 将全面采用 Apple 自家的文件系统,混乱的文件系统时代即将结束。基础技术的进步仍旧是推动世界前行的力量。
今天 macOS 和 watchOS 也升级了,我一共更新了两台 Mac,一个 Pad,一个 iPhone 和一块表。你升了吗?
MacTalk 的自定义菜单(中间)增加了读者群入口,有兴趣的可以进来聊聊技术和产品。