本文轉(zhuǎn)自快科技!
2016年6月14日,蘋果在 WWDC 上正式宣布了全新的文件格式——Apple File System(簡稱 APFS)。根據(jù) Apple 提供的初版開發(fā)者文檔介紹,APFS 的具體解釋是:針對閃存/SSD 存儲進行優(yōu)化,提供了更強大的加密、寫入時復(fù)制(Copy-on-write)元數(shù)據(jù)、空間分享、文件和目錄克隆、快照、目錄大小快速調(diào)整、原子級安全存儲基元(Atomic safe-save primitives),以及改進的文件系統(tǒng)底層技術(shù)。

現(xiàn)在,當(dāng)用戶升級iOS 10.3系統(tǒng)后,會將整個文件系統(tǒng)升級為 APFS,得益于這個新系統(tǒng),你會發(fā)現(xiàn)打開應(yīng)用、切換后臺應(yīng)用時感覺比之前流暢了,而設(shè)備內(nèi)的可用存儲空間也比以前變多了。
是的,蘋果這是做好了充分準(zhǔn)備,將讓APFS替代此前舊的文件系統(tǒng)HFS+。那么APFS文件系統(tǒng)究竟有什么革新之處呢,它將能夠為用戶們帶來怎樣的變化呢?
為什么要做更新
在詳解 APFS 之前,我們必須先從HFS+開始講講文件系統(tǒng)對蘋果的重要性。操作系統(tǒng)中負責(zé)管理和存儲文件信息的軟件機構(gòu)稱為文件管理系統(tǒng),簡稱文件系統(tǒng),也就是我們理解的在存儲設(shè)備上組織文件的方法。
HFS+文件系統(tǒng)是蘋果第三代文件系統(tǒng),最早期型號的Mac使用了名為MFS(Macintosh File System)的文件系統(tǒng),但很快蘋果又在1985年推出了 HFS 文件系統(tǒng),那時Mac 512K還是蘋果的旗艦級產(chǎn)品,這套系統(tǒng)存在了十幾年,直到1998年,蘋果在HFS的基礎(chǔ)上升級出了HFS+文件系統(tǒng),隨著擁有4GB硬盤的G3 PowerMacs一起到來。在那之后,家用電腦的存儲能力可以說增長了好幾千倍,為了對應(yīng)不同的設(shè)備,HFS+也被分成了多個競爭的方向,擁有不同的功能。
HFS+不僅作為Mac的文件系統(tǒng)標(biāo)準(zhǔn)從1998年沿用至今,而且同樣也是iPod及iOS設(shè)備的文件系統(tǒng)基礎(chǔ)。HFS+推出之時市面上仍以軟盤和HDD作為主要存儲設(shè)備,基本沒有為現(xiàn)在流行的閃存和SSD作優(yōu)化。算上原始的HFS基礎(chǔ),這套老舊的系統(tǒng)已經(jīng)使用了30年。

30年時間里,計算機硬件和軟件的發(fā)展日新月異,HFS+在應(yīng)付現(xiàn)代硬件和軟件都已經(jīng)力不從心,存在元數(shù)據(jù)以大字節(jié)序保存、單線程訪問、不支持稀疏文件、寫時復(fù)制等等一大堆缺點,不僅速度很慢,而且用久了之后會出現(xiàn)卡、崩潰之類的情況。是時候該出現(xiàn)一個全新的替代系統(tǒng)了。
APFS強在哪?
APFS在基本的文件系統(tǒng)設(shè)計上就遠比HFS+先進,HFS+為32位文件ID,而APFS支持64位索引節(jié)點,時間戳間距從HFS+的1秒降低至1納秒,配合著現(xiàn)代處理器和 SSD 遠低于1秒的文件操作時間,所以在低延遲性上足以讓用戶感受到某種使用體驗的飛躍。
APFS還原生支持SSD的FTL和Trim,所以性能上當(dāng)然更強、空間利用率更高,另外與HFS+固定形式的文件系統(tǒng)結(jié)構(gòu)不同,APFS是個具有擴展性的文件系統(tǒng),可以在未來增加更多新特性、API,為用戶提供更多樣化的服務(wù)。
通俗地說APFS幾大新特性:
一、解決了空間占用的不合理
這得益于APFS的兩大功能:文件克。–lones)和空間共享(Space Sharing),以及從克隆衍生的磁盤快照?寺「淖兞艘酝募到y(tǒng)復(fù)制文件時必須額外騰出空間來儲存這份復(fù)制文檔的問題,在 APFS 下,復(fù)制文件不會產(chǎn)生同等的空間占用,它只儲存有變化的數(shù)據(jù),然后快速地提取出來。這意味著文件的復(fù)制速度會變得很快,而無論你復(fù)制多少份文件,它都不需要額外騰出大量存儲空間來“安置”它們了。

在macOS和iOS中,以往我們重復(fù)調(diào)用應(yīng)用,或者應(yīng)用之間進行調(diào)用時,就會涉及到復(fù)制,復(fù)制一遍,就得騰出雙倍空間,復(fù)制幾遍,就要好幾倍空間。但升級為APFS系統(tǒng)后,不管怎樣調(diào)用,都只需額外占用 1 倍的空間,可以說徹底解決了應(yīng)用運行中很關(guān)鍵的存儲和讀取問題。
在克隆的原理基礎(chǔ)上,蘋果又進一步給APFS加入了相似的磁盤快照(Snapshot),解決了備份占用時間長、空間大的問題?煺蘸涂寺∫粯樱际侵挥形募l(fā)生變化的那一部分才會占用更多的空間,所以你大可以更頻繁的去備份數(shù)據(jù),而不用擔(dān)心它們把你的磁盤占滿,更不用擔(dān)心備份和恢復(fù)備份浪費掉漫長的時間了。
空間共享解決的可能是大家最為心塞的問題:系統(tǒng)盤已滿。傳統(tǒng)的硬盤分區(qū),會出現(xiàn)一個存儲盤被占得滿滿的,但別的存儲盤又很空的尷尬情況。而 APFS 則利用一項名為Space Sharing的新技術(shù),將存儲分區(qū)模擬成整體的“容器”,容器相對獨立,但是在需要的時候,又是歸于APFS的統(tǒng)籌之下,某一個出現(xiàn)容量不夠時,整個APFS下的冗余空間可以隨意調(diào)配,這意味著每個容器的空間可以根據(jù)操作系統(tǒng)的指令,自由收放大小,除非整個存儲盤已經(jīng)填滿,否則將再不會出現(xiàn)某個盤空間不足的情況。
二、讓文件處理速度變快
APFS能夠讓人感覺系統(tǒng)和應(yīng)用的響應(yīng)速度變快,除了前面的克隆功不可沒,還有I/O QoS。I/O QoS翻譯過來叫做“輸入輸出進程服務(wù)質(zhì)量”,也叫進程服務(wù)質(zhì)量。當(dāng)處理關(guān)鍵應(yīng)用和多媒體應(yīng)用時,多個輸入輸出路線會對操作網(wǎng)絡(luò)造成擁堵,QoS就是確保其中重要進程不受延遲或丟棄,同時保證網(wǎng)絡(luò)高速運行的技術(shù)。
APFS在借助各項新技術(shù)整體提升了與SSD的適配度的同時,也通過借助I/O QoS(服務(wù)質(zhì)量)改善文件操作延遲,對數(shù)據(jù)的不同訪問被劃分到不同的優(yōu)先級中,優(yōu)先處理那些對用戶來說是緊要的——感知明顯的操作,所以在使用中,用戶就會明顯地感覺到“快”。
以往NFS+在設(shè)計的時候,考慮到硬件性能的上下兼容,自帶元數(shù)據(jù)全局鎖,為照顧低頻處理器,所以一個單位時間內(nèi)只允許一個進程訪問文件系統(tǒng)。但到了如今多核處理器的年代,這顯然已經(jīng)造成了文件處理速度的瓶頸,于是APFS打開了這把“鎖”,相當(dāng)于給高性能多核處理器和SSD之間開放了一條更大的“高速公路”,路面更寬,對“交通”的管制也更規(guī)范合理了。
三、讓數(shù)據(jù)變得更加安全
數(shù)據(jù)安全有兩個方面,第一是它使用安全,可恢復(fù),不害怕崩潰、不害怕在讀取中丟失;第二個就是它的加密安全。
APFS比NFS+更先進的一個方面就是它對數(shù)據(jù)的保護上。首先APFS有崩潰保護機制(Crash Protection),用戶在編輯文件時,原有數(shù)據(jù)不會立刻被覆蓋掉,修改產(chǎn)生的變量會在文件系統(tǒng)用新的位置來保存,只有確定新數(shù)據(jù)已經(jīng)編輯完畢,才會最終完成覆蓋。即便是軟件崩潰或者發(fā)生斷電等意外,也可以最大程度確保數(shù)據(jù)等安全。
加密技術(shù)(Encryption)將原先的文件加密方式進行了整合,分為無加密、單密鑰加密、多密鑰加密三個模式。其中多密鑰加密允許用戶使用不同的密鑰分別給設(shè)備、文件、單個數(shù)據(jù)進行加密,這個不僅是系統(tǒng)級的也是硬件級的,意味著即便是別人獲得了你的硬件解鎖方法,依然無法獲取里面的數(shù)據(jù)。
iOS 10.3你能感受到的變化
升級iOS 10.3的同學(xué)們,同時iOS的文件系統(tǒng)也升級到了APFS,這個升級甚至不需要你做任何額外操作,數(shù)據(jù)也依舊全部保留完整(當(dāng)然做備份這個習(xí)慣還是要的)。
大家議論不已的升級之后可用空間有不同程度的增加,就是因為APFS改善了文件存儲機制,同名文件在iOS系統(tǒng)中只會占用一份空間。一些大容量App的調(diào)用也不像以前那樣,必須有1倍多的冗余空間才能完成,自然就為設(shè)備存儲釋放了更多的空間。

升級 iOS 10.3之后,不少用戶反饋開機速度變快,打開、切換應(yīng)用感覺更快,是因為 APFS 在應(yīng)用運行中通過進程分配調(diào)整優(yōu)先級,分層次分批次地運行,而反饋到iOS設(shè)備屏幕上,你會看到應(yīng)用很快被打開,其實 APFS 還在分配其他文件一一啟動,只不過在那個瞬間對用戶來說,就已經(jīng)是打開應(yīng)用了。當(dāng)然,各位感興趣的話也可以試一試SHSH備份,看看是不是備份速度也有了提升。
此外,iOS 10.3在數(shù)據(jù)安全性上也有了增強。這不僅對用戶很重要,其實對開發(fā)者同樣重要,這意味著更可靠的數(shù)據(jù)保存,更可靠的 API 調(diào)用,還能對用戶數(shù)據(jù)進行比較方便的備份了。
APFS還擴大了巨型文件的支持以及時間的準(zhǔn)確度,對于需要精準(zhǔn)時間支持的數(shù)據(jù),APFS有了實現(xiàn)基礎(chǔ)。支持的單一文件大小上限從現(xiàn)在的8 exabyte大幅增加到2^63 bytes,App的體積限制得到開放了。
不過也需要提醒大家,您設(shè)備上的32位應(yīng)用可能過一段時間就無法適應(yīng)iOS了,開發(fā)者必須更新將App更到64位。
更快的時代 這只是序幕
APFS是不是蘋果在軟件層面的殺手锏?我們說:是的。盡管它現(xiàn)在剛剛在iOS設(shè)備上得到應(yīng)用,我們也能感受到它對文件管理系統(tǒng)的一系列技術(shù)革新,從HFS+到APFS,必定是飛躍式發(fā)展。

未來,APFS將通用于iOS、macOS、watchOS和tvOS這四個蘋果主要的操作系統(tǒng)中,結(jié)束蘋果此前所說的“混亂”局面,讓蘋果產(chǎn)品實現(xiàn)文件系統(tǒng)的一致,實現(xiàn)代碼的一致,從而讓四大系統(tǒng)的更新維護、跨系聯(lián)動、應(yīng)用開發(fā)、新技術(shù)同步上,都實現(xiàn)真正的統(tǒng)一。
從筆者今天升級iOS 10.3的過程來看,APFS對HFS+的替代兼容很安全,沒有發(fā)生數(shù)據(jù)丟失,也沒有發(fā)生App無法訪問的情況。但macOS上涉及到磁盤分區(qū)還有更復(fù)雜的問題,我們還要進一步看APFS針對更多設(shè)備的表現(xiàn)。而APFS也需要一段磨合時間,才能讓大家看到更多的進化成果。
無論如何,這是一個必須更快的時代,APFS既是這個時代呼之欲出的產(chǎn)物,也是推動蘋果設(shè)備變快甚至未來可能更多設(shè)備變快的技術(shù)助力。嘗試和享受新科技,這就是升級iOS 10.3的理由,這只是開始。
