博客專欄

EEPW首頁 > 博客 > 超能課堂(281):常見文件系統(tǒng)格式介紹

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

發(fā)布人:超能網(wǎng) 時間:2021-07-23 來源:工程師 發(fā)布文章

在現(xiàn)代計算機中,文件系統(tǒng)(file system)是命名文件及放置文件的邏輯存儲和恢復(fù)的系統(tǒng),是操作系統(tǒng)用于明確存儲設(shè)備或分區(qū)上的文件的方法和數(shù)據(jù)結(jié)構(gòu),也就是在存儲設(shè)備上組織文件的方法,管理和存儲文件的軟件機構(gòu)。我們?nèi)粘R姷降腤indows、macOS、Linux甚至UNIX等操作系統(tǒng),都有文件系統(tǒng)。不同的操作系統(tǒng)間,可以使用的文件系統(tǒng)格式也不一樣。在日常生活里,可能會遇到在Windows里插入U盤或移動硬盤可以隨意讀取和寫入,但到了Mac上卻發(fā)現(xiàn)不能把資料放進去。

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

Windows

FAT

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

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

FAT使用廣泛,幾乎被所有操作系統(tǒng)支持。雖然早已不是Windows操作系統(tǒng)的主流文件系統(tǒng)格式了,但仍廣泛存在于軟盤、U盤和嵌入式設(shè)備上,適用于不同操作系統(tǒng)之間交換數(shù)據(jù)。在日常使用中,用戶最容易接觸到的是FAT32,常見于U盤,不過會有單個文件體積4GB的限制,隨著數(shù)據(jù)量的增大,往后使用率會慢慢降低。

NTFS

NTFS全稱是New Technology File System,最早出現(xiàn)于1993年,使用Windows NT內(nèi)核的操作系統(tǒng)開始提供支持。從Windows 2000開始,包括后來的Windows XP直到現(xiàn)在我們使用的Windows 10,默認文件系統(tǒng)都是NTFS。

從Windows 9x時代過來的用戶都會記得,當年Windows系統(tǒng)崩潰是常有的事情,對于喜歡折騰的用戶來說,重裝系統(tǒng)是家常便飯了。到了Windows XP時期,除了界面的巨大變化,在使用上最讓人印象深刻的莫過于穩(wěn)定性,重裝系統(tǒng)的機率大幅度減少。NTFS文件系統(tǒng)具有錯誤預(yù)警功能、磁盤自我修復(fù)功能和日志功能三個功能,相比原來的FAT文件系統(tǒng),NTFS文件系統(tǒng)在安全性、易用性和穩(wěn)定性上都有了質(zhì)的飛躍。

NTFS系統(tǒng)是一個日志文件系統(tǒng),是為網(wǎng)絡(luò)和磁盤配額、文件加密等管理安全特性設(shè)計的磁盤格式,提供長文件名、數(shù)據(jù)保護和恢復(fù),能通過目錄和文件許可實現(xiàn)安全性,并支持跨越分區(qū)。在NTFS系統(tǒng)中,除了寫入信息,還會對操作進行記錄,當NTFS文件系統(tǒng)在發(fā)生錯誤的時候,利用日志功能可以修復(fù)數(shù)據(jù),使得系統(tǒng)恢復(fù)變得更加容易。

在日常使用中,個別使用Mac的用戶可能會遇到不能正常使用NTFS文件系統(tǒng)格式U盤的情況。這是因為在macOS系統(tǒng)里,默認對NTFS文件系統(tǒng)格式的U盤只能讀取,不能寫入、刪除或修改,需要額外的工具才可以。

exFAT

exFAT全稱是Extended File Allocation Table File System,意思是擴展FAT,即擴展文件分配表。這是微軟專門為閃存設(shè)備設(shè)計的文件系統(tǒng),在Windows Embeded 5.0開始提供支持,一方面可以解決NTFS不太適用于閃存的問題(不斷讀寫可能會影響使用壽命),另一方面是為了解決FAT32單個文件體積4GB限制等問題。

如果用戶使用Windows 8及更高版本的操作系統(tǒng),可原生支持exFAT啟動,同時支持以特殊方式安裝在exFAT分區(qū)中。由于exFAT文件系統(tǒng)在Windows,Linux以及macOS上都能進行讀寫操作,而且支持大文件,這些特性讓exFAT使用在U盤上就非常適合了。雖然exFAT兼容性比起FAT32會差一些,但長遠來說使用率會越來越高。

macOS

HFS/HFS+

HFS全稱是Hierarchical File System,即分層文件系統(tǒng),也稱Mac OS 標準格式。這是由蘋果開發(fā)可用于軟盤、磁盤和光盤的文件系統(tǒng)格式,首次出現(xiàn)在1985年。HFS用于取代更為老舊的MFS(Macintosh File System),即Macintosh 文件系統(tǒng)。很長時間內(nèi),HFS都是Mac專有的主要文件系統(tǒng),也是蘋果Open Firmware所支持的最基本的文件系統(tǒng)。

HFS+稱為Mac OS 擴展格式,是蘋果在1998年發(fā)布(首見于Mac OS 8.1)的Mac專有大容量硬盤文件系統(tǒng),以改善HFS對磁盤空間的地址定位效率低下的問題,并加以改進。HFS+使用了相當長的時間,差不多有20年的時間,一直到macOS 10.12。不過HFS+是一個飽受爭議的文件系統(tǒng)格式,Linux之父Linus Benedict Torvalds曾稱HFS+是有史以來最爛的文件系統(tǒng),原話是:

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

當然,Linus的吐槽能力在業(yè)內(nèi)是很出名的,值得一提的經(jīng)典事件不止一兩次。

APFS

APFS全稱Apple File System,即Apple 文件系統(tǒng)。隨著2017年蘋果推出macOS10.13,APFS取代了 HFS+,成為Mac電腦所使用的默認文件系統(tǒng)。新的文件系統(tǒng)具有強加密、空間共享、磁盤快照、快速目錄大小統(tǒng)計等特性,以及改進的文件系統(tǒng)基礎(chǔ),優(yōu)化了SSD性能。

隨著計算機技術(shù)的發(fā)展,CPU多核心、內(nèi)存和硬盤的容量不斷增大、存儲介質(zhì)從HDD逐漸轉(zhuǎn)向SSD等,硬件的改變需要軟件的配合,而HFS+已不能適應(yīng)新時代硬件的發(fā)展節(jié)奏了。APFS不但適用于閃存/SSD存儲,還可以與HDD和外置直連儲存設(shè)備的低版本系統(tǒng)配合使用。值得一提的是,APFS的開發(fā)和設(shè)計是從2014年開始的,而且是從零開始構(gòu)建,前后僅用了三年的時間,可以說非常高效。

Linux

Ext2/Ext3

Ext2全稱Second Extended Filesystem,是Linux內(nèi)核所使用的文件系統(tǒng),首次出現(xiàn)于1993年,是許多早期Linux發(fā)行版默認的文件系統(tǒng)。Ext2可以說的Linux系統(tǒng)中使用最多的一種文件系統(tǒng),其存取文件的性能極好,CPU占用率極低,既可以用在磁盤這樣的標準存儲設(shè)備,也能用在磁盤等移動存儲設(shè)備上。

Ext3全稱Third Extended Filesystem,這也是不少Linux發(fā)行版默認的文件系統(tǒng),首次出現(xiàn)于1999年。Ext3屬于一種日志文件系統(tǒng),是對Ext2的擴展,并兼容Ext2,兩者共享相同的工具集,而且兩種文件系統(tǒng)之間進行轉(zhuǎn)換非常容易。簡單來說,Ext3就是Ext2基礎(chǔ)上加入日志功能,實現(xiàn)了三個級別的日志記錄方式,包括日記(journal))、順序(ordered)和回寫(writeback)。

在Ext3文件系統(tǒng)里,會將整個磁盤的寫入動作完整記錄在磁盤的某個區(qū)域上,詳細記錄每個細節(jié),以便有需要的時候可以回溯追蹤。即使在某個過程被中斷,系統(tǒng)可以根據(jù)記錄重整,動作會非常迅速。

Ext4

Ext4全稱Fourth Extended Filesystem,是在Ext3基礎(chǔ)上新的高級功能,首次發(fā)布于2006年。由于改動導(dǎo)致Ext3變得不穩(wěn)定,最終從Ext3中剝離并單獨發(fā)展。經(jīng)過了一段時間的不斷改進,Ext4才變得穩(wěn)定,成為現(xiàn)今大部分Linux發(fā)行版默認的文件系統(tǒng)。

在功能上,Ext4和Ext3非常相似,但支持大文件系統(tǒng),提高了對碎片的抵抗力,有更高的性能以及更好的時間戳。由于在Ext4開發(fā)過程中仍依賴于不少舊技術(shù),存在一定的局限性,但在Linux下一代文件系統(tǒng)誕生前還會不斷改進,以適應(yīng)現(xiàn)階段硬件的發(fā)展需要。未來一段時間內(nèi),Ext4還會繼續(xù)開發(fā)新的功能,包括元數(shù)據(jù)校驗和、一流的配額支持和大分配塊。

*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: 系統(tǒng)

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉