愛伊米

超能課堂(281):常見檔案系統格式介紹

在現代計算機中,檔案系統(file system)是命名檔案及放置檔案的邏輯儲存和恢復的系統,是作業系統用於明確儲存裝置或分割槽上的檔案的方法和資料結構,也就是在儲存裝置上組織檔案的方法,管理和儲存檔案的軟體機構。我們日常見到的Windows、macOS、Linux甚至UNIX等作業系統,都有檔案系統。不同的作業系統間,可以使用的檔案系統格式也不一樣。在日常生活裡,可能會遇到在Windows裡插入隨身碟或行動硬碟可以隨意讀取和寫入,但到了Mac上卻發現不能把資料放進去。

超能課堂(281):常見檔案系統格式介紹

檔案系統格式有很多,其結構、邏輯、存取速度、體積大小、安全性和穩定性等都不一樣,同時面向的儲存介質也有不同。這個問題如果細究起來會非常複雜,涉及到很多計算機軟體方面的專業知識。接下來會介紹幾種不同系統下的常見檔案系統格式,包括了普通使用者最常用的Windows系統,還有部分使用者會使用的macOS系統,以及個別使用者會接觸到的Linux系統,讓大家有個大致的瞭解。

Windows

FAT

FAT全稱是File Allocation Table,即檔案配置表,是在1977年為了管理磁碟而發明的。比爾蓋茨是其中一位發明人,微軟擁有部分專利。經過多次適配逐漸使用在硬碟上,也被後來的MS-DOS以及Windows 9x作業系統所使用,是當時的檔案系統格式,使用了相當長的一段時間。

不過FAT有一個比較明顯的缺點,當檔案刪除後寫入新資料,不會將檔案整理成完整片段再寫入,使用者長期使用後會使檔案資料變得分散,最終會減慢讀寫速度。在過去Windows 9x作業系統時期,不少使用者每隔一段時間就會使用系統裡的工具進行碎片整理,以保證FAT檔案系統的效率。後來隨著硬碟容量的增大,硬碟進行碎片整理的時間會越來越長,FAT磁碟效率低的缺點更加明顯,已經變得有點不適應發展需要了。

FAT使用廣泛,幾乎被所有作業系統支援。雖然早已不是Windows作業系統的主流檔案系統格式了,但仍廣泛存在於軟盤、隨身碟和嵌入式裝置上,適用於不同作業系統之間交換資料。在日常使用中,使用者最容易接觸到的是FAT32,常見於隨身碟,不過會有單個檔案體積4GB的限制,隨著資料量的增大,往後使用率會慢慢降低。

NTFS

超能課堂(281):常見檔案系統格式介紹

NTFS全稱是New Technology File System,最早出現於1993年,使用Windows NT核心的作業系統開始提供支援。從Windows 2000開始,包括後來的Windows XP直到現在我們使用的Windows 10,預設檔案系統都是NTFS。

從Windows 9x時代過來的使用者都會記得,當年Windows系統崩潰是常有的事情,對於喜歡折騰的使用者來說,重灌系統是家常便飯了。到了Windows XP時期,除了介面的巨大變化,在使用上最讓人印象深刻的莫過於穩定性,重灌系統的機率大幅度減少。NTFS檔案系統具有錯誤預警功能、磁碟自我修復功能和日誌功能三個功能,相比原來的FAT檔案系統,NTFS檔案系統在安全性、易用性和穩定性上都有了質的飛躍。

NTFS系統是一個日誌檔案系統,是為網路和磁碟配額、檔案加密等管理安全特性設計的磁碟格式,提供長檔名、資料保護和恢復,能透過目錄和檔案許可實現安全性,並支援跨越分割槽。在NTFS系統中,除了寫入資訊,還會對操作進行記錄,當NTFS檔案系統在發生錯誤的時候,利用日誌功能可以修復資料,使得系統恢復變得更加容易。

在日常使用中,個別使用Mac的使用者可能會遇到不能正常使用NTFS檔案系統格式隨身碟的情況。這是因為在macOS系統裡,預設對NTFS檔案系統格式的隨身碟只能讀取,不能寫入、刪除或修改,需要額外的工具才可以。

exFAT

exFAT全稱是Extended File Allocation Table File System,意思是擴充套件FAT,即擴充套件檔案分配表。這是微軟專門為快閃記憶體裝置設計的檔案系統,在Windows Embeded 5。0開始提供支援,一方面可以解決NTFS不太適用於快閃記憶體的問題(不斷讀寫可能會影響使用壽命),另一方面是為了解決FAT32單個檔案體積4GB限制等問題。

如果使用者使用Windows 8及更高版本的作業系統,可原生支援exFAT啟動,同時支援以特殊方式安裝在exFAT分割槽中。由於exFAT檔案系統在Windows,Linux以及macOS上都能進行讀寫操作,而且支援大檔案,這些特性讓exFAT使用在隨身碟上就非常適合了。雖然exFAT相容性比起FAT32會差一些,但長遠來說使用率會越來越高。

macOS

超能課堂(281):常見檔案系統格式介紹

HFS/HFS+

HFS全稱是Hierarchical File System,即分層檔案系統,也稱Mac OS 標準格式。這是由蘋果開發可用於軟盤、磁碟和光碟的檔案系統格式,首次出現在1985年。HFS用於取代更為老舊的MFS(Macintosh File System),即Macintosh 檔案系統。很長時間內,HFS都是Mac專有的主要檔案系統,也是蘋果Open Firmware所支援的最基本的檔案系統。

HFS+稱為Mac OS 擴充套件格式,是蘋果在1998年釋出(首見於Mac OS 8。1)的Mac專有大容量硬碟檔案系統,以改善HFS對磁碟空間的地址定位效率低下的問題,並加以改進。HFS+使用了相當長的時間,差不多有20年的時間,一直到macOS 10。12。不過HFS+是一個飽受爭議的檔案系統格式,Linux之父Linus Benedict Torvalds曾稱HFS+是有史以來最爛的檔案系統,原話是:

“Quite frankly, HFS+ is probably the worst filesystem ever。 Christ what shit it is。”

當然,Linus的吐槽能力在業內是很出名的,值得一提的經典事件不止一兩次。

APFS

APFS全稱Apple File System,即Apple 檔案系統。隨著2017年蘋果推出macOS10。13,APFS取代了 HFS+,成為Mac電腦所使用的預設檔案系統。新的檔案系統具有強加密、空間共享、磁碟快照、快速目錄大小統計等特性,以及改進的檔案系統基礎,優化了SSD效能。

隨著計算機技術的發展,CPU多核心、記憶體和硬碟的容量不斷增大、儲存介質從HDD逐漸轉向SSD等,硬體的改變需要軟體的配合,而HFS+已不能適應新時代硬體的發展節奏了。APFS不但適用於快閃記憶體/SSD儲存,還可以與HDD和外接直連儲存裝置的低版本系統配合使用。值得一提的是,APFS的開發和設計是從2014年開始的,而且是從零開始構建,前後僅用了三年的時間,可以說非常高效。

Linux

超能課堂(281):常見檔案系統格式介紹

Ext2/Ext3

Ext2全稱Second Extended Filesystem,是Linux核心所使用的檔案系統,首次出現於1993年,是許多早期Linux發行版預設的檔案系統。Ext2可以說的Linux系統中使用最多的一種檔案系統,其存取檔案的效能極好,CPU佔用率極低,既可以用在磁碟這樣的標準儲存裝置,也能用在磁碟等移動儲存裝置上。

Ext3全稱Third Extended Filesystem,這也是不少Linux發行版預設的檔案系統,首次出現於1999年。Ext3屬於一種日誌檔案系統,是對Ext2的擴充套件,併兼容Ext2,兩者共享相同的工具集,而且兩種檔案系統之間進行轉換非常容易。簡單來說,Ext3就是Ext2基礎上加入日誌功能,實現了三個級別的日誌記錄方式,包括日記(journal))、順序(ordered)和回寫(writeback)。

在Ext3檔案系統裡,會將整個磁碟的寫入動作完整記錄在磁碟的某個區域上,詳細記錄每個細節,以便有需要的時候可以回溯追蹤。即使在某個過程被中斷,系統可以根據記錄重整,動作會非常迅速。

Ext4

Ext4全稱Fourth Extended Filesystem,是在Ext3基礎上新的高階功能,首次釋出於2006年。由於改動導致Ext3變得不穩定,最終從Ext3中剝離並單獨發展。經過了一段時間的不斷改進,Ext4才變得穩定,成為現今大部分Linux發行版預設的檔案系統。

在功能上,Ext4和Ext3非常相似,但支援大檔案系統,提高了對碎片的抵抗力,有更高的效能以及更好的時間戳。由於在Ext4開發過程中仍依賴於不少舊技術,存在一定的侷限性,但在Linux下一代檔案系統誕生前還會不斷改進,以適應現階段硬體的發展需要。未來一段時間內,Ext4還會繼續開發新的功能,包括元資料校驗和、一流的配額支援和大分配塊。