close
当前位置: 物联网在线 > 技术文库 > ios >

iOS 10.3的APFS系统

iOS 10.3的APFS系统

何为APFS

在iOS 10.3中,苹果新增了APFS新文件系统,最早在2016年WWDC大会上公布。APFS是Apple File System的简称,用于替代目前所使用的HFS+格式。APFS对HFS的所有变体进行了统一,这是Apple从底层代码开始从零打造的全新文件系统。与使用32位文件ID的HFS+不同,APFS可支持64位索引节点(Inode)编号,借此一个卷最多可存储超过900亿亿个文件。HFS+只能同时对整个存储设备的文件系统进行初始化,APFS提供了一种可扩展存储块分配程序(Extensible block allocator),可对数据结构进行延迟初始化(Lazy initialization),进而大幅改善大容量卷的性能。

APFS针对闪存/SSD存储进行优化(但依然可用于传统机械硬盘),提供了更强大的加密、写入时复制(Copy-on-write)元数据、空间分享、文件和目录克隆、快照、目录大小快速调整、原子级安全存储基元(Atomic safe-save primitives),以及改进的文件系统底层技术。此外APFS还包含其他改善和新功能,例如稀疏文件、改进的TRIM操作,内建对扩展属性的支持等。

安全与隐私是APFS的设计基础。Apple的很多设备和操作系统早已具备加密功能,OS X 10.7 Lion开始提供全磁盘加密功能;iOS 4开始可通过专用数据保护技术将每个文件使用一个专用密钥进行加密。APFS对这两种功能进行整合,为文件系统元数据提供了一种统一的加密模式。APFS支持三种模式的加密:不加密;适用于元数据和用户数据的单密钥加密;以及适用于元数据、文件,甚至文件中特定部分的多密钥加密。多密钥加密功能,内置有针对每个文件的密钥,其针对敏感元数据也都有独立的密钥,在确保可靠性的基础上优化性能。多密钥加密可确保哪怕设备物理安全受到威胁,依然可以保障用户数据的完整性。取决于具体硬件,APFS加密可使用AES-XTS或AES-CBC算法。

这种加密机制还实现了一个额外的功能:更为快速的数据擦除。通常情况下当用户从设备中删除文件后,可以通过市面上提供的很多(免费或收费的)反删除软件找回删掉的内容。为避免这种情况,以往如果需要删除包含机密信息的文件,或需要将存储过私密数据的设备退役给他人使用,必须首先使用抹掉功能擦除存储设备,并可能要将这一过程执行多遍。取决于存储设备容量,整个过程将耗费极多时间。对于使用APFS文件系统的存储设备,在启用加密功能后,安全擦除的过程将变得大为简便和快捷,不再需要耗费大量时间多次给存储设备填充随机数据,只需要删除加密所用的密钥即可。

APFS包含一个名为“空间共享”的新功能,借助该功能,多个文件系统可以共享同一个物理卷上的同一块底层可用空间。也就是说,设备上的一个APFS“容器”内部可以包含多个“卷”(文件系统)。HFS+需要为每个文件系统预先分配固定大小的容量,这种做法较为“僵硬”,而APFS的空间共享功能可以让用户在无需重分区的情况下动态、灵活地扩大或缩小卷容量。在这样的设计下,APFS容器内的每个卷都会显示同等的可用空间容量,而所显示容量会等同于该容器的可用存储空间总量。例如,假设有个容量100GB的APFS容器,其中包含已用10GB容量的卷A和已用20GB容量的卷B,卷A和卷B都会显示自己有70GB(100GB-10GB-20GB)的可用容量。

现代化的文件系统往往会通过压缩和去重(Deduplication)等方式减小文件占用的空间量。压缩很好理解,去重是指找出大量文件中相同的数据块,并只将这样的块存储一次,在访问文件时,会根据实际情况动态“拼装”出最终的文件。这样的功能最适合保存大量用户文件或大量虚拟机映像的服务器环境。APFS可以用恒定的速度对多个文件和目录创建副本。举例来说,如果要在同一个文件系统(或同一个容器)内部复制文件,实际上并不需要为数据创建副本,只需要对文件的元数据进行适当的更新就可以让磁盘上存储的数据实现“共享”,此时相同的文件“实际体积”不变,但产生了两个副本,对任何一个副本进行改动则需要为其分配新的存储空间(这种方式也叫做“写入时复制”)。APFS中复制的文件实际上只是对文件创建了轻量级克隆,实际数据并没有重复保存,底层设备的故障会导致所有“副本”受损。

APFS专门针对闪存进行了优化。SSD虽然可以模拟传统机械硬盘的“块”,但底层技术与机械硬盘截然不同。SSD底层的管理工作是由一种名为闪存转换层(FTL,Flash Translation Layer)的软件负责处理的。FTL与文件系统极为类似,可以在块地址和介质内部的位置之间创建虚拟映射(转换)。整个堆栈,包括SSD、FTL,以及文件系统都由Apple控制,可以更有针对性地对不同组件进行优化。


(责任编辑:ioter)

用户喜欢...

基于GRPS技术的AMR系统

基于GRPS技术的AMR系统 自动抄表系统(AMR)在当今世界都很常见,并且它们仍在继续发展。为了解决数据收集和集中化的难题,通用分组无线服务(GPRS)将是应用的几种选择之一。 AMR系统的体...


实现5G新型无线电大规模MIMO系统

大规模MIMO依赖于使用大量天线,是实现必要改进的关键技术,以证明从4G到5G无线网络的演进是合理的。 正在定义第五代(5G)无线接入网络,以满足2020年及以后的容量需求的持续增长,并解决...


电机控制系统 - 波德图和稳定性

什么是控制系统?控制系统将其系统的未来状态改变为更理想的结果。我们经常使用 反馈控制系统 (也称为 闭环控制 ),其中命令的结果被反馈到控制系统中。特别是我们正在寻找命令和所...


带有分布式锁相环的相控阵的系统级LO相位噪声模型

对于数字波束成形相控阵,要生成LO,通常会考虑的实现方法是向分布于天线阵列中的一系列锁相环分配常用基准频率。对于这些分布式锁相环,目前文献中还没有充分记录用于评估组合相位噪...


5G NR通信系统中的模型DCI消息编码,PDCCH处理和信息恢复

该示例描述了用于5G新无线电通信系统的下行链路控制信息(DCI)处理。从随机DCI消息开始,它对消息编码进行建模,然后在发送端上进行物理下行链路控制信道(PDCCH)处理。相应的接收器组...


设计位置跟踪系统快速使用GNSS模块

资产跟踪是一项重大业务。随时了解贵重物品的高精度,可提高生产率,增强安全性并降低成本。然而,资产跟踪仅限于高价值物品,因为高质量的全球导航卫星系统(GNSS)接收器可能难以设...


农业物联网 系统开发案例

联合国预测,到2050年世界人口将达到近100亿,高于目前居住在全球的近80亿人。如果这些预测成立,我们的星球将很快每天再喂食2,000,000,000个口。获得营养丰富且价格合理的食品,如水果,蔬...


设计高精度工业传感系统前端

工业和过程控制应用程序收集大量精确的温度,压力和应变数据,用于上游决策。设计人员面临的挑战是这些应用需要多个高精度通道,以保持频域的高精度。 本文讨论了精确,高性能工业传...


集成开发体验(IDEX)是构建安全物联网系统的完整开发平台

集成开发体验(IDEX)是构建安全物联网系统的完整开发平台。 SLN-IOT-GPI IDEX包括一个模块化物联网网关和一个模块化边缘节点,这两个节点都经过了ZigBee和Thread连接的测试和验证,以及通过Wi-Fi进...


360º磁位置传感器系统方案

旨在使标准尺寸的步进电机与非接触式旋转位置传感器相匹配。磁体支架的旋转由旋转位置传感器检测,焊接在PCB板上。 AS5145是一款无接触磁性旋转编码器,可在360度的整圈内进行精确的角度...