看起来最不值得升级的 macOS

    摘要

    备份的时候同样是增量备份,而且增量是文件级别的,而不是系统级别的(增量是修改过文件的数量).macOS 的备份工具「时间机…

    题图:by globe_people from Instagram

    新一代的 Mac 操作系统 macOS High Sierra 已经发布了,很多朋友问我,这一代 macOS 值不值得升级。我的回复是,这是一代看起来最不值得升级的 macOS,因为可见的功能改进非常少,大的交互上的功能改良或者新功能可以说没有。

    最近每年 macOS 的更新差不多符合一个规律,一年大的功能改进,一年大的性能优化,交替进行。今年的 macOS 就是后者,或者说,这次 macOS 最大的更新是更换了使用长达三十年的文件系统 HFS+,新的文件系统叫做 APFS,其实就是 Apple File System 的意思。在 APFS 之前,开发者们一直难以置信,苹果快马轻裘的 Mac 为什么一直在使用三十年前开发的文件系统呢?

    APFS 并不是新概念,这套全新的文件系统早在2016 WWDC 大会上就首次亮相,并且在今年年初开始应用于移动设备操作系统 iOS 和 watchOS 上。这是一套专门针对 SSD 固态硬盘创造的文件系统,旨在取代现有的 HFS+ 。说起 Apple 的文件系统,那将是一段漫长的历史,简单来说,APFS 的前任的前任是 HFS,1986年出现在了 System3.0 系统上,于是有了文件夹的概念,文件可以分层次存储了。到了1998年,Apple 为 macOS 开发了 HFS+,是 HFS 的增强版,也是 APFS 的前任,沿用至今。后来 iOS 团队为移动设备开发出了 HFS+ 的变体,用在了 iPhone、iPad 等设备上。

    时至今日,苹果全系列产品的操作系统,统一开始采用 APFS 系统,整个世界清净了。

    APFS 并不是对以前文件系统的修修补补,而是推倒重来。相对于机械硬盘,SSD 最大的特点是什么呢?二爷说,SSD 不需要转啊,不会得眩晕症。二爷总算说对了一回,SSD 所有位置的读取速度都是一致的,文件也不需要连续存储,更不需要整理磁盘,也就是说,我们在设计文件系统的时候,再也不用考虑如何让文件更连续的存储在磁盘上以提高性能这个问题了。于是有了更多的创新。

    APFS 有什么特点呢?以前我总结过,今天写个加强版。

    Apple File System 是一个64位的文件系统,单卷上支持的文件数量是 9 quintillion。quintillion 是个多大的单位呢?十的十八次方,或者一百万的三次方。总之,比二爷在胸前那么一划拉肯定要大的多的多的多。APFS 设计了一种类似 Docker 镜像机制的写入时复制(Copy-on-write)功能,让输入输出统一起来,以最大限度提供存储性能和数据的可靠性。同样,与 Docker 的文件系统类似,APFS 提供了空间共享的特性,即磁盘上的多个物理卷共享底层可用空间。这样文件的操作就出现了很多全新的特性。

    APFS 文件系统提供了克隆、快照、空间共享、快速文件大小计算、原子级别的安全存储等功能。

    by click_vision from Instagram

    Clones

    克隆技术实现了硬盘同一卷(volume)内文件的复制瞬间完成,并且不占用额外的数据空间。你在 APFS 系统里复制一个 5G 的文件,只会创建一个新的标记,几乎不占空间,就像 Linux 里的软链接,但形态又不一样。当你修改这个复制过来的文件,系统会保留相同的部分,只存储发生变化的部分。这样复制就会「瞬间发生」,节省空间并且增加机器的续航能力。升级了的读者可以试试。

    比如修改 Keynote,一个为了演讲准备的 Keynote 往往几百 M 甚至上 G,以前每次修改都要完全复制一份,改完保存。现在每个文件的版本只会保存修改过的部分,而不是完全复制的一个新文件。

    Snapshots

    快照是系统某个时间点的一个只读实例,利用快照功能可以更好的实现备份和恢复功能。快照可以记录文件在某一时刻的状态,备份的时候同样是增量备份,而且增量是文件级别的,而不是系统级别的(增量是修改过文件的数量)。macOS 的备份工具「时间机器」采用快照技术,备份和恢复都会增速不少,而且占用空间更少。

    Space Sharing

    空间共享技术允许多个文件系统共享同一个物理卷的同一块底层可用空间,该功能可以让用户在无需重新分区的情况下动态的扩大或缩小卷容量。举个官方提供的例子,假设有个容量 100GB 的 APFS 容器,其中包含已用 10GB 容量的卷 A 和已用 20GB 容量的卷 B,卷 A 和卷 B 都会显示自己有 70G 的可用空间(100-10-20)。

    Encryption

    安全和隐私是 APFS 构建的基础,这次新的文件系统提供了三种模式的加密功能:

    不加密
    单密钥加密
    适用于文件数据和敏感元数据的多密钥加密

    多密钥加密可以确保在设备受到物理伤害的情况下,依然可以保证数据的完整性。根据硬件特性,APFS 使用了 AES-XTS 或 AES-CBC 算法。

    总之,非常安全。

    Crash Protection

    APSF 使用了基于 copy-on-write 的元数据 scheme 来实现文件的崩溃保护。APFS 对数据的写入只有两种状态,一种是成功,一种是失败,没有中间状态,所以不会出现文件崩溃或打不开的问题。

    Sparse Files

    Sparse Files 技术可以让文件系统更好的使用磁盘上的 empty blocks。具体表现就是,一个文件的逻辑大小会比它实际占用的物理空间大,也就是说,更新了这一版本的 macOS,你的文件系统会凭空多出几个 G 或几十个 G 不等。

    Fast Directory Sizing

    以前我们想看一个文件夹下的文件占用了多少硬盘空间,需要点右键打开「显示简介」,如果文件比较多比较碎比较大,那么界面上就会长时间显示「正在计算大小」,过一会告诉你算完了,大小是108G。在 APFS 里,无论你打开的文件夹下的文件有多少有多大,这个 size 都是瞬间出来的,快得让人不寒而栗,简直就像没有计算一样……

    Atomic Safe-Save

    这个功能主要是保证了Bundle 和文件夹操作的一致性,对于普通用户来说,基本上是无感的。


    在未来可见的十年,macOS 都会运行在这样一个文件系统之上,从这个角度而言,这个「看起来最不值得升级的 macOS」其实是你必须要升级的系统,否则,未来所有的新特性,你可能都会失之交臂。

    升级注意事项:

    1、一定要备份系统和数据,我使用的是系统自带的时间机器。

    2、如果你是开发者,记得升级 homebrew 并下载最新的 XCode。

    3、如果你是 Vim 重度用户,记得重新 git pull YouCompleteMe 和重新编译。

    4、系统升级完之后会重新做索引和数据,等一会就快起来了,给它一点时间。

    5、更新失败不要怕,重启试试,或者使用 command r 重启试试。

    至于这一版 macOS 的其他功能改进,就和官网描述的一模一样,大家自己去看吧,我就不复述了。

    现在,iOS,macOS,watchOS,tvOS 开始全面采用 Apple 自家的文件系统,混乱的文件系统时代终于结束了。

    你升级了吗?


    近期文章列表:

    学会用大概率的方式获取成功

    你的第一门编程语言

    后端工程师的危机

    给 iOS 用户一个赞赏的通道

    avatar
    • 本文由 发表于 2018年12月24日
    Mac 软件推荐(续)之程序猿篇 mac软件下载

    Mac 软件推荐(续)之程序猿篇

    在前面一篇文章“Mac 软件推荐(续) -- !程序猿篇” (文章取名装X失败, 悲伤)中, 我已经介绍了一些大众化的软件, 当然作为程序猿的你也应该参考参考(没看过前文的必须补上啊).本篇文章将介绍...
    匿名

    发表评论

    匿名网友 填写信息