InfoQ 重磅内容产品《中国卓越技术团队访谈录》上新啦! 了解详情
写点什么

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

  • 2017 年 3 月 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 年 3 月 31 日 19:004589
用户头像

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

关注

评论

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

基于深度学习的两种信源信道联合编码

华为云开发者联盟

深度学习 通信 编码 信源编码 信道编码

网络连接之协议栈

Kylin

协议栈 3月日更 21天挑战 网络连接

Gas费用持续攀升!NA公链NAC公链如何破解高额Gas费用的困局?

区块链第一资讯

一段java代码执行旅程

华为云开发者联盟

JVM class 指令 java代码 java栈

电子证照上链--助推智慧政务

13530558032

初识Golang之声明函数

Kylin

3月日更 21天挑战 Go 语言

能源绿色管控:天然气站启动数字化转型,工业企业该如何突围?

一只数据鲸鱼

物联网 数据可视化 智慧城市 能源管理 天然气

【LeetCode】删除排序链表中的重复元素 IIJava题解

Albert

算法 LeetCode 3月日更

推荐 2 款必备的 Django 开发神器

星安果

Python django Web 后端

如何正确使用Python临时文件

华为云开发者联盟

Python 安全 临时文件 tempfile 库函数

通俗讲解分布式锁,看完不懂算我输

Java小咖秀

Java 分布式 多线程 并发

QCon全球软件开发大会:推动创新,实现技术落地

博文视点Broadview

低代码是什么?低代码价值主要体现在哪?

优秀

低代码

Python基础之:Python中的模块

程序那些事

Python Python3 程序那些事

华为云PB级数据库GaussDB(for Redis)揭秘第六期:Feed流场景中的应用

华为云开发者联盟

数据库 redis 华为云 GaussDB Feed流

主数据建设的挑战与发展

EAWorld

镜像仓库学习笔记

lenka

3月日更

分布式锁的实现方案

360技术

异步机制和CPU架构对 Redis 性能的影响

escray

redis 学习 极客时间 3月日更 Redis 核心技术与实战

搞懂 ZooKeeper 集群的数据同步

HelloGitHub

Java zookeeper ZooKeeper原理

区块链BaaS应用平台搭建,助力企业运用区块链解决业务问题

13828808769

区块链 区块链+ 区块链发展 #区块链#

Worktile 前端工程化之路

PingCode研发中心

大前端

​Autonomous Dream Works的独创力杰作EGGNetwork EFTalk

币圈那点事

Golang号称最快的Json解析器速度可达5623ns/op

happlyfox

学习 3月日更 Go 语言

Datadog 能成为最大的云监控厂商吗

睿象云

运维 运维平台 Datadog 云监控

看东鹏饮料如何从150亿条数据中洞察先机 | 精选案例

亚马逊云科技 (Amazon Web Services)

设计与思考,关于资源和生命周期

程序员架构进阶

设计实践 生命周期 28天写作 3月日更 池化技术

Rust从0到1-基础概念-数据类型

rust 数据类型

区块链六大应用场景,推动政府信息化发展

13828808769

区块链+ #区块链#

智慧公安信息化管理系统,重点人员管控系统的搭建

13828808769

智慧交通

区块链中药溯源--区块链为中医药溯源认证

13530558032

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