写点什么

Apple 静悄悄地升级了数百万 iOS 设备的文件系统

  • 2017-03-31
  • 本文字数:1003 字

    阅读完需:约 3 分钟

随着 iOS 10.3 的正式发布,数百万设备即将升级为使用Apple 的全新文件系统 APFS 。然而根据多方评论,这是一次大胆,同时暗藏一定风险的举措。

APFS 亮相于去年 WWDC,InfoQ 也对其进行了报道,该文件系统将取代最初伴随Mac OS 8.1问世,沿用将近20 年的老旧HFS+ 文件系统。APFS 增加了与 ZFS HAMMER 类似的大量新功能,包括对加密、写入时复制、灵活的分区、快照、原子化保存等功能提供了更好的支持。

与曾经安装过 iOS 10.3 测试版的开发者类似,在自己设备上安装 10.3 正式版的用户也会面临一个极为漫长的升级过程,似乎是因为要对文件系统进行转换,截至撰写本文时尚未听说这一过程出现过什么重大已知问题。

有趣的是,这是APFS 首次正式登场,之前该文件系统仅通过开发者预览的形式出现在macOS Sierra 中,并且包含诸多局限,例如无法将APFS 格式的磁盘用作启动磁盘。因此Apple 决定通过推送文件系统转换操作让上千万设备同时使用该文件系统,这一决定让人有些吃惊,毕竟这会导致任何潜在的问题被无限放大。正如Ars Technica 的Andrew Cunningham所说,考虑到Apple 实际上控制着整个iOS 平台,对于该平台所用硬件和分区架构的所有细节了然于胸,这一举措似乎显得很合理。此外iOS 设备封闭的本质也使得未越狱用户基本不可能破坏掉设备的存储系统,这也让转换的效果更为可控。

然而这并不意味着升级到APFS 的所有用户都不会遇到任何非预期的后果。macOS 和iOS 开发者Michael Tsai 在他的博客中写到,一些因素导致APFS 与HFS+ 之间存在一些固有的冲突,例如APFS 并不会对Unicode 文件名进行标准化,并且APFS 允许同一个目录下使用多个同名文件,而仅名称字符的大小写有所差异。InfoQ 也将密切关注此类问题,如果有任何有趣的发现将在第一时间报道。

尽管技术上可以做到使用对用户来说完全透明的方式升级文件系统,但Reddit 用户 applishish 介绍说,迁移工作实际上并未实际移动数据,而是直接将 APFS 元数据写入 HFS+ 的可用空间。这种方法的优势在于,如果转换过程中出现任何错误,用户依然具备一个可用的 HFS+ 分区。在同一个帖子中,Reddit 用户 1337Gandalf 称,Apple 的此番举措让人回想起 Microsoft 在推广 Windows XP 时应对 FAT32 卷升级未 NTFS 文件系统时的做法,不过当时用户可以自行选择是否要在升级系统的过程中同时升级到NTFS 文件系统。

阅读英文原文 Apple Quietly Upgrades the File System of Millions of iOS Devices

2017-03-31 19:004883
用户头像

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

关注

评论

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

详解CAN总线:CAN节点硬件构成方案

不脱发的程序猿

嵌入式 汽车电子 CAN总线 CAN节点硬件构成方案 CAN节点

遭不住了!Alibaba开源内网“M9”级别高并发编程全彩版进阶手册

程序知音

Java 架构 并发编程 多线程与高并发 后端技术

详解CAN总线:CAN协议分层结构及功能

不脱发的程序猿

CAN总线 CAN协议 CAN协议分层结构及功能

重磅来袭!腾讯T7手写高并发实战手册,GitHub热度一直不下

Geek_0c76c3

Java 数据库 spring 开源 架构

阿里高工内产的 SpringBoot 实战派手册仅发布一天霸榜Github

Geek_0c76c3

Java 数据库 开源 架构 开发

抽丝剥茧看时间序列预测

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

大厂“毕业”半月,面试数十家公司,凭借这份面试总结涨获7家Offer,成功入职

程序员小毕

spring 程序员 程序人生 JVM Java 面试

Shell编程学习(二)

Studying_swz

Shell 脚本 9月月更

详解CAN总线:CAN总线报文格式—数据帧

不脱发的程序猿

汽车电子 CAN总线 CAN协议 CAN总线报文格式 CAN数据帧

OceanBase存储层代码解读(四):宏块的垃圾回收和坏块检查

OceanBase 数据库

Alibaba架构师内部最新发布SpringCloud开发手册,Github限时开源

Geek_0c76c3

Java 数据库 spring 开源 架构

Shell编程学习(一)

Studying_swz

Shell 初阶 9月月更

架构师的十八般武艺:可观测性

agnostic

可观测性

[架构实战] 课后作业

爱学习的麦子

MyBatisPlus学习

Geek_6689b6

入门 MyBatisPlus 9月月更

Github爆火!阿里最新发布的《高并发核心编程笔记》PDF文档

Geek_0c76c3

Java 数据库 开源 架构 开发

架构师的十八般武艺:安全架构

agnostic

安全架构

VS Code settings.json 10 个高(装)阶(杯)配置!

掘金安东尼

9月月更

名震GitHub!字节跳动内部顶级数据结构刷题学习笔记根本停不下来

程序知音

Java 数据结构 算法 后端开发 数据结构与算法

【编程实践】出行无忧,利用Python爬取天气预报

迷彩

爬虫 爬虫教程 9月月更 Scarpy

模块二

早安

极客时间架构师训练营

竟拿到阿里45K高薪offer!只因他刷了这份阿里微服务天花板手册

Geek_0c76c3

Java 数据库 开源 架构 面经

详解CAN总线:标准数据帧和扩展数据帧

不脱发的程序猿

汽车电子 通信协议 CAN总线 CAN协议 标准数据帧和扩展数据帧

邓荣伟:稳定支撑每秒百万笔支付请求,支付宝数据库架构的过去、现在与未来

OceanBase 数据库

[架构实战]学习笔记

爱学习的麦子

架构营第一期作业

许四多

评判优秀程序员标准:“高并发”,竟被一份Github万星笔记讲清楚了

Geek_0c76c3

Java 数据库 架构 开发 面经

架构实战营模块1作业

陌生流云

架构实战营

20 条 Chrome DevTools 使用建议,盲猜这几个你不知道~

掘金安东尼

前端 9月月更

吃透阿里大佬分享的这份Java面试神技,3个月斩获8家offer

Geek_0c76c3

Java 数据库 开源 架构 开发

架构实战营模块八作业

zhihai.tu

Apple静悄悄地升级了数百万iOS设备的文件系统_移动_Sergio De Simone_InfoQ精选文章