如何评价 Apple File System (APFS)?

2016年6月20日 | By News | Filed in: 未分类.

Source: http://www.zhihu.com/question/47421264/answer/106061150?utm_campaign=rss&utm_medium=rss&utm_source=rss&utm_content=title

今天上午去听了 WWDC 关于 APFS 的讲座,具体信息可以去看 Apple 官网上的视频。讲座并没有涉及具体实现,除了 demo 外我也没有用过 APFS,所以对于具体性能/效果的估计肯定会有出入,但是对于这个回答的内容应该没有什么影响。

我觉得 APFS 最重要的改进在于三点:1. 为 SSD 而设计。2. 原生支持加密。3. 安全性(断电保护),并且解决了很多遗留问题。

可以说 APFS 很多特性之所以能存在,都是基于一个前提:Apple 平台中的 SSD 已经比较普及了。对于机械硬盘来说,我怀疑用 APFS 在一些情况下还不如用 HFS+。近几年 SSD 的普及可能才促使 Apple 现在推出了 APFS 预览版。

SSD 于 HDD 的最大区别是什么?在于 SSD 不需要旋转,所以不同位置的读取速度都是一样的,文件也不需要被连续存储。为此我们不需要磁盘整理了,但是更重要的是,我们在设计文件系统的时候,可以不用再思考「如何优化才能尽可能连续的保存文件?」抛弃了这个假设,文件系统设计师们就可以放心添加很多新功能。

以下内容为了方便非程序员理解,并没有使用例如 reference / cluster / atomic 这样的术语,也省略了一些细节。

修改时复制。大意就是说,如果你复制一个文件,只是创建了一个快捷方式,而非复制原文件本身。那么如果修改了文件怎么办?APFS 只会把修改的部分另找区域单独保存。也就是说,两个文件一样的部分还是只存在一份。

磁盘快照。和修改时复制的原理一样,磁盘快照不会占用额外的硬盘空间。对,你同时创建一百个,占用空间的增长也是可以忽略不计的。这个功能可以大幅简化本机上 Time Machine 的实现。

动态修改分区大小。为了读取连续性,再加上实现上比较简单不容易出错,HFS+ 中分区大小是固定的。想要修改分区大小,必须抹除整个分区再重新创建。而 APFS 在分区满了的时候,可以动态扩大分区。讲座中 Apple 并没有提及这个新特性,加上上面的「修改时复制」,可能会造成更多的磁盘碎片,而这些磁盘碎片对 HDD 硬盘性能有怎样的影响也是未知数。不过 SSD 并不需要担心磁盘碎片。

加密。APFS 是唯一原生支持多种加密级别的文件系统(从无加密,到磁盘加密,再到最高级别的文件分别加密)。APFS 同时也支持不同的加密方式。

文件操作安全。APFS 基本上所有操作都是绝对安全的。绝对安全是指:不会因为断电而损坏文件系统。一个操作要不然成功,要不然失败,不会有中间状态。对于以往文件系统来说,因为设计原因,替换文件夹的时候断电有几率出错。

向后兼容性。对于支持 APFS 的操作系统,APFS 可以让旧版本操作系统忽略新版本 APFS 的功能。

保存文件夹大小。打开一个大文件夹的时候,再不需要等很久才知道这个文件夹有多大了。因为 SDD 的特性,可以在几乎不损耗性能的情况下实现这个功能(需要规避 deadlock)。

更高精度和更大空间。这条没啥可说的,不具备这些,怎么敢号称新时代的文件系统?

兼容性。API和现有 API 兼容,增加了几个新的 API。

统一。现在 iOS,macOS 和其它 Apple 的 OS 都在用不同版本的 HFS+,更新到 APFS 之后就可以统一为一个了。小到 Apple Watch,大到 Mac Pro。这条也算是一个好消息。

来源:知乎 www.zhihu.com

作者:知乎用户(登录查看详情)

【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。
点击下载

此问题还有 8 个回答,查看全部。
延伸阅读:
为什么用 USB 拷文件的速度远低于理论值?

为什么单个大文件比总体积相同的多个小文件复制起来要快很多?


Comments are closed here.