大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

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:006047
用户头像

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

关注

评论

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

利用Kafka,实时挖掘企业数据的价值

NineData

MySQL oracle kafka NineData 数据管道

智源研究院与百度达成战略合作 共建AI产研协同生态

智源研究院

阿里巴巴商品详情API返回值中的商品标签与关键词

技术冰糖葫芦

api 货币化 API 接口 API 测试 pinduoduo API

微信技术总监谈架构:微信之道——大道至简(演讲全文)

JackJiang

即时通讯;IM;网络编程

mac苹果电脑奈飞客户端:Netflix Mac 激活版

你的猪会飞吗

Netflix Mac激活版 Netflix客户端 Netflix mac版破解版下载

【YashanDB知识库】如何配置jdbc驱动使getDatabaseProductName()返回Oracle

YashanDB

yashandb 崖山数据库 yashandb知识库

云资源高效运维就用云管平台!

行云管家

云计算 云管平台 云资源

Elmedia Video Player Pro for Mac 视频播放软件 v8.19

Rose

架构师日记-从数据库发展历程到数据结构设计探析

京东科技开发者

基于Sentinel自研组件的系统限流、降级、负载保护最佳实践探索

京东科技开发者

FxFactory 8 Pro 视觉特效处理包 mac软件最新版 v8.0.18激活版

Rose

优秀的可视化代码编辑器:Blocs for mac v5.2.6激活版

Rose

这样的SQL太吓人了

江南一点雨

API 蔓延问题出现的六大迹象

NGINX开源社区

读书笔记 程序员 个人成长 最佳实践 API Gateway

【YashanDB知识库】客户端字符集与数据库字符集兼容问题

YashanDB

yashandb 崖山数据库 yashandb知识库

三明市等保测评机构有几家?在哪里?

行云管家

等保 等保测评 三明企业

NLP技术在营业选址中的实践与探索

鲸品堂

大模型 企业号2024年9月PK榜

Native SQLite Manager v1.28.1 Mac极简SQLite数据库管理器

Rose

如何用Rust编写一个ChatGPT桌面应用(保姆级教程)

京东科技开发者

USBclean for Mac(USB专杀工具)v4.0激活版

Rose

声网发布 aPaaS 灵动会议:RTE + AI,打造下一代会议产品

ToB行业头条

如何更高效传输非结构化数据?Zilliz 推出全新数据迁移服务

Zilliz

AI 数据迁移 向量数据库

【YashanDB知识库】YAS-04110 invalid variant name

YashanDB

yashandb 崖山数据库 yashandb知识库

支持离线模式:iOS 移动应用程序的关键策略和优势

哦豁完蛋了

ios

【YashanDB知识库】查询YashanDB表空间使用率

YashanDB

yashandb 崖山数据库 yashandb知识库

MacOS上的触控板和鼠标增强工具:Middle

Rose

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