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

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

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

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

Windows

FAT

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

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

FAT使用廣泛,幾乎被所有作業系統支持。雖然早已不是Windows作業系統的主流文件系統格式了,但仍廣泛存在於軟盤、U盤和嵌入式設備上,適用於不同作業系統之間交換數據。在日常使用中,用戶最容易接觸到的是FAT32,常見於U盤,不過會有單個文件體積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文件系統格式U盤的情況。這是因為在macOS系統里,默認對NTFS文件系統格式的U盤只能讀取,不能寫入、刪除或修改,需要額外的工具才可以。

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使用在U盤上就非常適合了。雖然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還會繼續開發新的功能,包括元數據校驗和、一流的配額支持和大分配塊。

來源:超能網