写点什么

Apple 为 iOS 和 macOS 提供全新文件系统 APFS

  • 2016-06-29
  • 本文字数:1199 字

    阅读完需:约 4 分钟

Apple 在 WWDC 2016 大会上还发布了一个名为 APFS 的全新文件系统,一经发布就引起了大量开发者的关注。根据 Apple 提供的初版开发者文档介绍,APFS:

针对闪存 /SSD 存储进行优化,提供了更强大的加密、写入时复制(Copy-on-write)元数据、空间分享、文件和目录克隆、快照、目录大小快速调整、原子级安全存储基元(Atomic safe-save primitives),以及改进的文件系统底层技术。

与 HFS+ 的简单对比

根据 Apple 的介绍,APFS 支持 HFS+ 的全部功能,并在下列几方面有所改进:

  • 与使用 32 位文件 ID 的 HFS+ 不同,APFS 可支持 64 位索引节点(Inode)编号,借此一个卷最多可存储超过 900 亿亿个文件。
  • HFS+ 只能同时对整个存储设备的文件系统进行初始化,APFS 提供了一种可扩展存储块分配程序(Extensible block allocator),借此可对数据结构进行延迟初始化(Lazy initialization),进而大幅改善大容量卷的性能。
  • APFS 支持三种模式的加密:不加密、单密钥加密,以及多密钥加密,并可管理每个文件所用的密钥和元数据密钥。

在 HFS+ 的基础上 APFS 还提供了其他改善和新功能,包括稀疏文件(Sparse file)、改进的 TRIM 操作,内建对扩展属性的支持等。

APFS 的新功能

APFS 还包含多个与 ZFS 以及 HAMMER 等现代化文件系统相似的高级功能,多年前 Apple 曾尝试将其移植到 OS X:

  • 为确保发生崩溃等故障后文件不受损,APFS 提供了一种全新的写入时复制(Copy-on-write)机制。
  • 空间分享(Space sharing)技术使得共享物理卷上的多个文件系统可以灵活扩展,而无需进行硬性分区操作。
  • 克隆功能使得用户能够为文件和目录创建副本,在对这些副本进行更改前,副本完全不占用额外的存储空间,并且修改后也只需要在磁盘上存储改动过的文件块。通过强制使用 copyItemAtURL:toURL:error: copyItemAtPath:toPath:error: NSFileManager 方法,这一过程对用户来说是完全透明的。
  • 快照是指为整个文件系统创建的只读实例,可用于实现差异备份。但目前开发者还无法使用 API 管理快照。
  • 原子化存储(Atomic save)可通过一笔事务将一批文件或目录以整体方式统一更名。这种全新行为是通过强制实施 moveItemAtURL:toURL:error: moveItemAtPath:toPath:error: NSFileManager 方法以透明的方式实现的。

使用 APFS

APFS 目前以开发者预览版的方式通过 macOS 10.12 发布,该版本还提供了一个操作这一全新文件系统的新版 hdutil 命令。用户可以使用下列命令创建 APFS 分区:

$ hdiutil create -fs APFS -size 1GB foo.sparseimage由于是开发者预览版,Apple 也提醒了开发者在使用 APFS 时可能遇到故障和数据丢失等情况。此外 APFS 还存在一些局限,例如:

  • 无法用于启动磁盘。
  • 文件和目录名称大小写敏感。
  • 无法用于 Time Machine、FileVault 或 Fusion 驱动器。

按照计划 APFS 将于 2017 年正式发布,最终将取代 Apple 已沿用超过 30 年的 HFS+ 文件系统。

查看英文原文: A Look at APFS, Apple’s New File System for iOS and macOS

2016-06-29 19:005883
用户头像

发布了 283 篇内容, 共 118.7 次阅读, 收获喜欢 63 次。

关注

评论

发布
暂无评论
发现更多内容

FlyFish|前端数据可视化开发避坑指南(一)

云智慧AIOps社区

JavaScript 前端 node,js 数据可视化工具

跨平台应用开发进阶(七) :uni-app 自定义 showToast

No Silver Bullet

uni-app 5月月更 吐司弹窗 跨终端

墨菲安全受邀与腾讯安全共话软件供应链安全治理

墨菲安全

程序员 腾讯安全 墨菲安全 软件供应链

大数据培训在 Presto 中使用哈希改善动态集群缓存命中率

@零度

Authing 渠道合作伙伴火热招募中!

Authing

网络效应 Idaas 合作网络

音视频开发进阶课程|第一期:音频要素

ZEGO即构

RTC 音视频开发 音视频课程 音视频基础入门

web前端培训学习中常见问题:竞态条件

@零度

前端开发

观测云产品更新|优化观测云商业版注册流程;新增场景仪表板用户视图模版库;新增场景自定义查看器日志来源及筛选联动等

观测云

可观测性 可观测

跨平台应用开发进阶(八) :uni-app 实现Android原生APP-云打包集成极光推送(JG-JPUSH)详细教程

No Silver Bullet

uni-app 极光推送 5月月更 云打包

技术人的推荐书单

Authing

身份云 科技书单

kafka集群搭建

阿呆

Kafk

七、云原生日志审计

穿过生命散发芬芳

日志 5月月更

MySQL缓存策略分析

C++后台开发

MySQL 数据库 后端开发 Linux服务器开发 C++后台开发

AgentTesla病毒解析:利用钓鱼邮件窃取终端隐私数据

火绒安全

数据 终端安全 病毒 隐私安全

java培训Redis缓存设计

@零度

redis JAVA开发

科创人·智慧芽技术副总裁屠昶旸:技术之路是挑战之路,不愿在大厂空耗岁月

科创人

解读分布式调度平台Airflow在华为云MRS中的实践

华为云开发者联盟

Python spark airflow 华为云MRS 大数据集群

郑重声明

Authing

身份云 Idaas

当姿态估计算法遇上《本草纲目》,看“刘畊宏男孩”如何驱动虚拟人

阿里云CloudImagine

计算机视觉 虚拟人 人体姿态

谈谈10年编程经历

非凸科技

程序员 编程语言 招聘 工程师 代码

森园区Web版大更新,多端同步互通,效果模版更新

ThingJS数字孪生引擎

netty系列之:kequeue传输协议详解

程序那些事

Java Netty 程序那些事 5月月更

关于 WordPress 你了解多少?

海拥(haiyong.site)

WordPress 5月月更

如何在30分钟完成表格增删改查的前后端框架搭建

葡萄城技术团队

前端 前后端 系统搭建 表格系统

520特别企划 | Z世代进入婚恋市场,婚恋交友行业会有什么变化?​

易观分析

Z世代

先是IPV6,再是WI-FI7你都清楚这是什么吗?

郑州埃文科技

ipv6 IP地址

所谓测试报告

FunTester

不会这3个ChartBuilder使用技巧,怎么开发优秀的数字孪生可视化项目?

ThingJS数字孪生引擎

Istio + SkyWalking + Spring Boot 实战 -Zadig 自测模式搞定开发者子环境

Zadig

DevOps 云原生 自动化测试 CI/CD

英特尔庄秉翰:推动5G释放数字经济潜能,拥抱“银发时代”美好生活

科技之家

Tech Talk 活动预告丨云原生 DevOps 的 Kubernetes 技巧

亚马逊云科技 (Amazon Web Services)

云原生

Apple为iOS和macOS提供全新文件系统APFS_移动_Sergio De Simone_InfoQ精选文章