apple新姿勢,看完我又撿起了我的16GiPhone
Apple 現在面臨著一個抉擇:繼續維護渾身「補丁」早已過了「而立之年」的 HFS+ 文件系統,還是全新開發一套文件系統。顯然,相比於前者高昂的維護成本,後者來得更划算一些。
在去年的 WWDC 上,蘋果在深思熟慮之後做出了這個抉擇,發布了全新設計的文件系統:APFS( Apple File System )。
這意味著使用了 20 年的 HFS+ 文件系統將被逐步替代。我們知道,HFS 的歷史已經有30多年,誕生在軟盤和機械硬碟時代,很多特性已經不適用如今大多數企業和用戶所需要的一些基本功能,比如:納秒級時間戳、校驗、稀疏文件等。從 Snow Leopard 開始,Apple 就有轉向 ZFS(最為先進的文件系統之一)的想法。但是由於後來 Sun 被 Oracle 收購,該項目後來就擱置了。直到今年,Apple 終於又將新的文件系統提上日程。
下面,差評君從開發者的角度,通過 Sierra 中的一些文檔、開發者網站中提供的資料和一些實例,來與大家聊一聊 APFS 存在的意義和它與 HFS+ 的區別。這篇文章主要面向對於 macOS 內部文件系統機制感興趣的朋友們,對於 Mac 新手和無硬體基礎的讀者們來說可能不是很友好。
對於一部我們手中完整的 Mac 產品來說,它的組成部分大致可以分成三層:1、處在最底層的 Hardware 層;2、底層之上的 Core OS 「 Darwin 」 層;3、頂層圖形用戶界面的 GUI 部分,即 「 Aqua 」 層。就上面提到的這幾部分的層級關係,我們可以畫一張圖表示一下:
我們要討論的APFS 和 HFS+ 文件格式屬於第二層,即 「 Darwin 」 核心系統層中最底部 Mach 層嵌套的 BSD 系統中的 File Systems 部分。
這套類 Unix 的 BSD 系統由加州大學伯克利分校在 1977 年至 1995 年開發,在之前 NeXT 公司成功開發了由 Mach3 、BSD 以及 I/O Kit 的混合內核之後,Apple 將其很好地移植到了 macOS 上,這部分從 2000 年的 Mac OS X 和 iOS 的基礎 「 Darwin 」 發布後就一直沿用至今。
對於 File System ,我們知道它向上服務 Application 和 Users ,向下服務 Storage Device Diver 和 Device 。正是這樣的層級關係,差評君在試圖尋找系統目錄下的 File System 描述文件時,無意間發現了這個 apfs.fs 的彩蛋包( path :: /System/Library/Filesystems/apfs.fs ),通過創建時間我們可以知道它是在 2017 年 6 月 21 日被添加進來的。
當然,我們按常理也可以判斷出來:新文件格式的開發一定不會脫離舊有的文件格式環境。換句話說,APFS 的開發是要依賴於 HFS+ 的文件格式下才可以實現的。正是因為這種原因,APFS 一定會繼承 HFS+ 的全部功能。
打開文件包,我們可以從 Resource 文件夾下看到有關 APFS 格式的一些指令現在已經封裝好已經可以通過 Terminal 調用了。我們嘗試打開一個 newfs_apfs.fs ,可以發現其中的概述部分還處於缺失狀態,可見截止到 2017 年 6 月 21 日,這個文件系統從去年開始就一直處在緊鑼密鼓地開發之中,至少這個文件呈現給用戶的就是這個樣子。
我們接著這個文件,還可以從中窺見一些端倪:新的 APFS 格式可以為文件添加密碼。作為文件系統安全性保障的加密功能是 WWDC 上特彆強調的,同時也是不同於 HFS+ 格式的一大改動。相較於 HFS+ 的全盤加密,APFS 則提供了統一密鑰加密,針對敏感元數據單獨密鑰加密和多密鑰加密的功能,這樣哪怕用戶設備物理安全受到威脅,依然可以保障數據的完整性。
下面差評君就簡單地說一說經過半天的測試,這套 APFS 文件系統的表現。
首先我們需要創建一個 APFS 文件格式環境,由於在 10.12.6 版本下似乎關閉了 disktuil 後 createContainer 指令的調用,所以現在網上的方法都已經失效了。不過,通過瀏覽開發者文檔,差評君發現可以通過 Terminal 結合 hdiutil 相關命令來進行環境的創建,這裡創建的過程就不贅述了。最終我們生成了一個 30GB 大小的 Apple 稀疏磁碟映像 Media ,掛載到了外置優盤中。通過 diskutil 相關命令,我們可以檢驗到的確生成了 APFS 的 Container 和一個名稱為 I_am_APFS 的 APFS 卷宗。
我們通過 diskutil apfs list 命令列出當前系統中所有的APFS 卷宗信息:
可以看到的是,這裡與目前普通 HFS+ 宗卷不太相同。首先,一個 GPT 分區,如 disk4 被標示為一個 APFS Container,這其實是將整個分區作為一個邏輯分區區域。通過 APFS Physical Store 也可以看到這一點。然後,該分區上有一個名為 I_am_APFS 的宗卷,設備名稱為 disk4s1。
在測試時我們以大家最常用的複製操作為例:
採用控制變數的方法,在同一塊優盤中同時生成了 APFS 和 HFS+ 兩種格式的 Container 。下面我們用一部1.5 GB 的 mkv 文件進行數據傳輸速度測試:
通過測試,這部視頻拷貝至 APFS 格式系統內和 HFS+ 格式系統內分別用了 20 秒和 10 秒。為什麼 HFS+ 速度反而會比 APFS 快了一倍?由於我們使用的是第三方外置存儲設備,對於 APFS 的支持不是很好,這也說明了另一個問題:蘋果新的文件系統如何被第三方廠商支持,這種轉型一定是需要時間的,而時間的長短或許取決於在 APFS 正式推出後對用戶體驗的改善情況的好壞。
由於改變了存儲邏輯,在複製文件時無論多少份都幾乎只佔用一份的空間大小。新複製的文件通過地址索引鏈接的方法指向原始文件,或者說它們更像是一種並行的關係。比如在 APFS 格式下將 1.5 GB 的電影複製十份,佔用的大小依舊是 1.5 GB 。這種機制更像是現在網盤廠商在維護硬碟空間時常用的查重機制,而 APFS 或許使用了一種與網盤廠商校驗 MD5 不同的方法來進行查重。
我們通過開發者文檔可以了解到,這套 APFS 文件系統對大小寫敏感。這也就意味著有許多軟體在新文件系統下將無法安裝使用,典型代表就是 Adobe 全系列軟體。
另外,由於APFS 不支持目錄硬鏈接,所以它現在不兼容 Time Machine 功能,希望以後能夠針對 Time Machine 提供更高效的序列化機制。
總結一下,現在這套脫胎換骨的 APFS 已經具備與 BSD HAMMER、Linux btrfs,或 OpenZFS 等現代化文件系統不相上下的功能和特性。對於 APFS 在下一個系統版本 「 High Sierra 」 中的表現,讓我們拭目以待。
其實不止 macOS ,下一版本的 iOS 11 也很有可能搭載 APFS 文件系統,這對使用小容量存儲設備的用戶來說是一個利好消息。
點擊展開全文
※窮吃雞,富快遞,不信不行!
※吃著蛋糕看著MV,我差點被洗腦了。。
※撩妹的正確姿勢竟然是送這個!
※噓!讓你3分鐘帥過吳彥祖的秘密,我就跟你講。。
※我是如何成為一個噴子的
TAG:差評 |
※新一季的 Stella McCartney x adidas 跑鞋來了!男生看完都想要!
※打賭看完這篇你就會帶娃去MOMA I Keith Haring:The Boy Who Just Kept Drawing
※蘋果iOS11.3突發新公告 看完之後你還敢買iPhone8和iPhoneX嗎?
※糾結iPhoneX和三星S9plus?看完你就知道該買哪個了
※beatbox | 看完這個視頻你會後悔沒學Beatbox
※拿到錄取卻又愁學費,Business Insider:盤點2017年全美最貴大學TOP10,看完我心塞了
※看完就出發——獅城-新加坡Singapore
※從Valentino到Armani,看完這些明星婚紗,我都想結婚了!
※iPhone 6s要升級iOS 嗎?跑分看完你就知道了
※iPhone X和三星note8看完才知道買哪個
※學不學吳恩達deeplearning.ai課程,看完這篇你就知道了
※學不學吳恩達 deeplearning.ai 課程,看完這篇你就知道了
※看完了這一季時裝周 我pick了這些作為「dream bag」!
※iPhoneX和三星Note8看完才知道買哪個
※Air Jordan 3 "Tinker" 下周發售,看完美國店鋪地圖心就涼了……
※Angelababy,她的魅力有多高,看完這些你就清楚了!
※看完下列這3點你就會對iphone8心動
※Air Jordan 3 "Tinker" 下周登場,看完美國店鋪地圖心就涼了……
※Air Jordan 3 「Tinker"下周發售,看完美國店鋪地圖心就涼了……
※華為Mate10價格跳水,iPhone8目前降到什麼價格?看完我呆了!