macOS 26 Tahoe 引入全新的磁盘映像格式
@广陵止息:不知道大家有没有尝鲜最新的 macOS 26 Tahoe,不知道大家对新的 UI 设计有什么看法。除了看得见的变化,macOS 26 Tahoe 在底层也做了不少的变化,其中最重要的就是引入了一个名为 ASIF 的全新磁盘映像文件格式。
磁盘映像是一种把整个磁盘(和/或分区)打包成一个文件的技术,借助磁盘映像,我们可以将硬盘或 U 盘中的全部内容完整复制,并封装成一个大文件,这种文件就叫磁盘映像文件。在 macOS 中,我们安装软件时常用的 .dmg
文件就是一种这种文件就叫磁盘映像文件格式,此外 Windows 安装文件 .iso
、Android 刷机文件 .img
,同样也属于磁盘映像的范畴。
磁盘映像不仅适用于软件分发和系统备份,还是虚拟化技术的重要组成部分。虚拟机运行时需要一个虚拟硬盘,用于存储操作系统和用户数据,而使用磁盘映像模拟真实硬盘,是最便捷且可靠的方案。虽然 Apple 自 2020 年起在 macOS 中引入了全新的虚拟化 API——Virtualization.framework,可在 ARM 架构的 Mac 上高效创建 ARM64 架构的 Linux 和 macOS 系统。
但 macOS 在虚拟化磁盘方面的表现一直不够理想,Apple 对 Mac 内置硬盘的速度一向都赞不绝口,但 macOS 常用的虚拟机磁盘映像格式 RAW(UDSP)加密后的写入速度只有区区 100MB/s,和最常见的机械硬盘一样。所以 Apple 在今年引入了新的磁盘映像格式 ASIF。Apple 目前还没有完整揭露 ASIF 的相关技术细节,目前对 ASIF 的描述如下:
ASIF 磁盘映像
Apple Sparse Image Format(ASIF)文件在主机之间或磁盘之间传输时更高效,因为其内部结构不依赖于主机文件系统的功能。ASIF 文件在文件系统中所占的空间与磁盘映像中实际存储的数据量成正比。
但我们从描述中可以知道 ASIF 本质上还是一个稀疏磁盘映像格式。不同于常规的磁盘映像格式,稀疏磁盘映像格式是一种动态扩展的磁盘映像格式。
传统的标准磁盘映像(比如.dmg
文件)采用的是预先分配的模式。也就是创建映像时,无论其中是否存有数据,它都会立即在您的硬盘上占据其设定的全部容量。例如,一个 80GB 的标准磁盘映像,即使里面只存了 1GB 的文件,它在物理硬盘上也会占用 80GB 的空间。
而稀疏磁盘映像格式采用的是一种更为灵活的按需分配机制。虽然创建时可以指定较大的「虚拟空间」(例如 100 GB),但它在物理磁盘上只占用了实际存储的数据大小(例如你只写了 2 GB,就只占 2 GB 多一点),随着写入更多数据文件会自动增大。 在 macOS 26 Tahoe 上创建 ASIF 的方式有两种,一个是在「磁盘工具」里使用 GUI 创建,另一种则是直接在终端里调用:
diskutil image create blank --format ASIF --size 尺寸 --volumeName 卷名称 卷路径
在首次创建完成后,100GB 的 ASIF 磁盘映像应该占用不到 1GB 的空间,写入数据再删除以后 ASIF 磁盘映像应该会变大,也符合稀疏磁盘映像格式的特性,后续也许需要借助 macOS 内置的 hdiutil 去压缩 ASIF 磁盘映像来释放空间。在速度方面,ASIF 和其他磁盘映像格式的数据 hoakley 的测试结果如下:

可以看到 ASIF 不管是在加密情况还是非加密情况都比之前虚拟机常用的磁盘映像格式来的都快,而 Apple 也建议开发者将虚拟机的虚拟硬盘从传统的 RAW(UDSP)切换到为 ASIF,以提升主机之间或磁盘之间的文件传输效率。也许大家今年秋天开始,Parallels Desktop 中虚拟机的性能又能提升一节了。
Let’s Encrypt 开始针对 IP 地址签发证书
@PlatyHsu:有自托管经验的朋友肯定对 Let’s Encrypt 不会陌生,它提供的免费、自动化域名证书,让个人用户搭建自定义域名服务变得非常方便。7 月 1 日,按照年初时提出的时间表,Let’s Encrypt 宣布成功签发其首张 IP 地址证书,并计划年底向所有用户开放。换句话说,以后如果你有一个公网 IP,就可以直接为这个 IP 签发 TLS 证书,而不用先为它绑定一个域名,再为域名申请证书。
这听起来很方便,不过网上评论也不是一片支持,而是提出了一些合理的担忧。主要的担心集中在 IP 地址证书的安全性上。我们知道,之所以要签发 TLS 证书,主要是为了验证连接目标的真实性,即服务器是否是它声称所是。为此,签发过程中要通过一些验证机制(称为 challenge)来验明正身,例如要求在 DNS 响应中加入特定记录,或者启动一个临时的 HTTP 服务,从而证明申请者对地址的管理权。
但 IP 地址的「所有权」概念却远比域名模糊。就家庭网络而言,多数用户获得的是动态 IP,可能随时变更;即使是云主机的静态 IP,同样是租用的,不能保证稳定。设想你为一个 IP 地址申请了证书,而几天后这个 IP 轮替到了其他人手中,那么这个人就可以搭建声称是属于你的服务,并凭借证书为客户端所采信。
当然 Let’s Encrypt 也意识到了这点,提出了应对方案:只对 IP 地址签发短期证书,有效期仅为六天。Let’s Encrypt 认为,这就缩短了因 IP 地址重分配而可能产生的安全风险窗口,将滥用风险控制在可接受的范围内。
此外,尽管博客文章中列举了「连接 NAS 和物联网设备」之类的用途,IP 地址证书对构成 Let’s Encrypt 用户群主力的个人用户作用仍是比较有限的。