文件系統(tǒng)
概述
空閑空間示例:每簇4,096字節(jié)的NTFS文件系統(tǒng),每個文件5字節(jié),共100,000個文件,邏輯字節(jié)總共500,000字節(jié),但由于一個文件需獨占整數(shù)倍個簇(最后一簇無論是否占滿,仍會獨占一整個簇),實際占用磁盤空間409,600,000字節(jié)(每個文件5字節(jié)獨占一個簇)
文件系統(tǒng)是一種用于向用戶提供底層數(shù)據(jù)訪問的機制。它將設(shè)備中的空間劃分為特定大小的塊(或者稱為簇),一般每塊512字節(jié)。數(shù)據(jù)存儲在這些塊中,大小被修正為占用整數(shù)個塊。由文件系統(tǒng)軟件來負責將這些塊組織為文件和目錄,并記錄哪些塊被分配給了哪個文件,以及哪些塊沒有被使用。
不過,文件系統(tǒng)并不一定只在特定存儲設(shè)備上出現(xiàn)。它是數(shù)據(jù)的組織者和提供者,至于它的底層,可以是磁盤,也可以是其它動態(tài)生成數(shù)據(jù)的設(shè)備(比如網(wǎng)絡(luò)設(shè)備)。
文件名
在文件系統(tǒng)中,文件名是用于定位存儲位置。大多數(shù)的文件系統(tǒng)對文件名的長度有限制。在一些文件系統(tǒng)中,文件名是大小寫不敏感(如“FOO”和“foo”指的是同一個文件);在另一些文件系統(tǒng)中則大小寫敏感。大多現(xiàn)今的文件系統(tǒng)允許文件名包含非常多的Unicode字符集的字符。然而在大多數(shù)文件系統(tǒng)的界面中,會限制某些特殊字符出現(xiàn)在文件名中。(文件系統(tǒng)可能會用這些特殊字符來表示一個設(shè)備、設(shè)備類型、目錄前綴、或文件類型)然而,這些特殊的字符會允許存在于用雙引號內(nèi)的文件名。方便起見,一般不建議在文件名中包含特殊字符。
元數(shù)據(jù)(Metadata)
其它文件保存信息常常伴隨著文件自身保存在文件系統(tǒng)中。文件長度可能是分配給這個文件的區(qū)塊數(shù),也可能是這個文件實際的字節(jié)數(shù)。文件最后修改時間也許記錄在文件的時間戳中。有的文件系統(tǒng)還保存文件的創(chuàng)建時間,最后訪問時間及屬性修改時間。(不過大多數(shù)早期的文件系統(tǒng)不記錄文件的時間信息)其它信息還包括文件設(shè)備類型(如:區(qū)塊數(shù),字符集,套接口,子目錄等等),文件所有者的ID,組ID,還有訪問權(quán)限(如:只讀,可執(zhí)行等等)。
安全訪問
針對基本文件系統(tǒng)操作的安全訪問可以通過訪問控制列表或 capabilities ( 英語 : capability (computers) ) 實現(xiàn)。研究表明訪問控制列表難以保證安全,這也就是研發(fā)中的文件系統(tǒng)傾向于使用capabilities的原因。然而目前多數(shù)商業(yè)性的文件系統(tǒng)仍然使用訪問控制列表。
類型
磁盤文件系統(tǒng)
磁盤文件系統(tǒng)是一種設(shè)計用來利用數(shù)據(jù)存儲設(shè)備來保存計算機文件的文件系統(tǒng),最常用的數(shù)據(jù)存儲設(shè)備是磁盤驅(qū)動器,可以直接或者間接地連接到計算機上。例如:FAT、exFAT、NTFS、HFS、HFS+、EXT2、EXT3、EXT4、ODS-5、btrfs、XFS、UFS。有些文件系統(tǒng)是進程文件系統(tǒng)(也有譯作日志文件系統(tǒng))或者追蹤文件系統(tǒng)。
光盤
ISO 9660和UDF被用于CD、DVD與藍光光盤。
閃存文件系統(tǒng)
閃存文件系統(tǒng) 是一種設(shè)計用來在閃存上儲存文件的文件系統(tǒng)。隨著移動設(shè)備的普及和閃存容量的增加,這類文件系統(tǒng)越來越流行。
盡管磁盤文件系統(tǒng)也能在閃存上使用,但閃存文件系統(tǒng)是閃存設(shè)備的首選,理由如下:
擦除區(qū)塊:閃存的區(qū)塊在重新寫入前必須先進行擦除。擦除區(qū)塊會占用相當可觀的時間。因此,在設(shè)備空閑的時候擦除未使用的區(qū)塊有助于提高速度。
隨機訪問:由于在磁盤上尋址有很大的延遲,磁盤文件系統(tǒng)有針對尋址的優(yōu)化,以盡量避免尋址。但閃存沒有尋址延遲。
寫入平衡(Wear levelling):閃存中經(jīng)常寫入的區(qū)塊往往容易損壞。閃存文件系統(tǒng)的設(shè)計可以使數(shù)據(jù)均勻地寫到整個設(shè)備。
日志文件系統(tǒng)具有閃存文件系統(tǒng)需要的特性,這類文件系統(tǒng)包括JFFS2和YAFFS。也有為了避免日志頻繁寫入而導致閃存壽命衰減的非日志文件系統(tǒng),如exFAT。
數(shù)據(jù)庫文件系統(tǒng)
文件管理方面的一個新概念是一種基于數(shù)據(jù)庫的文件系統(tǒng)的概念。不再(或者不僅僅)使用分層結(jié)構(gòu)管理,文件按照他們的特征進行區(qū)分,如文件類型、專題、作者或者亞數(shù)據(jù)進行區(qū)分。于是文件檢索就可以按照SQL風格甚至自然語言風格進行。
例如BFS 和WinFS。
網(wǎng)絡(luò)文件系統(tǒng)
網(wǎng)絡(luò)文件系統(tǒng)(NFS,Network File System)是一種將遠程主機上的分區(qū)(目錄)經(jīng)網(wǎng)絡(luò)掛載到本地系統(tǒng)的一種機制。
與操作系統(tǒng)的關(guān)系
DOS / Microsoft Windows支持的文件系統(tǒng)
在Windows的command shell下使用DIR命令去顯示C:\Temp文件夾
注意:除非NT安裝了FAT32 For Windows NT 4.0否則NT是不支持FAT32
Linux支持的文件系統(tǒng)
隨著Linux的不斷發(fā)展,它所支持的文件格式系統(tǒng)也在迅速擴充,Linux系統(tǒng)核心可以支持十多種文件系統(tǒng)類型:Btrfs、JFS、ReiserFS、ext、ext2、ext3、ext4、XFS、ISO 9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。 注意:部分Linux發(fā)行版默認不支持NTFS文件系統(tǒng),解決方法是安裝NTFS-3G或ufsd等NTFS驅(qū)動程序。部分Linux發(fā)行版對NTFS的支持度并不高。
UNIX及BSD操作系統(tǒng)下的文件系統(tǒng)
柏克萊加州大學開發(fā)早期的伯克利快速文件系統(tǒng)(Berkeley Fast File System),再由各UNIX廠商開發(fā)不同的文件系統(tǒng),包括IRIX上的XFS、IBMAIX的JFS、HP HP-UNIX的VxFS、迪吉多Tru64的AdvFS 及Solaris的ZFS。
macOS(Mac OS X)的文件系統(tǒng)
從2016年發(fā)布的macOS Sierra起,使用蘋果文件系統(tǒng)(APFS)。從1998年到2016年間使用HFS+,再早采用HFS。
Bell實驗室的PLAN9文件系統(tǒng)
OpenVMS的文件系統(tǒng)
OpenVMS為Wang Mainframe所使用的Operation System,以搭配Wang王安博士發(fā)明的Magnetic Drum的存儲設(shè)備。
IBM大型機MVS的文件系統(tǒng)
參見
擴展名
免責聲明:以上內(nèi)容版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請告知,我們將盡快刪除相關(guān)內(nèi)容。感謝每一位辛勤著寫的作者,感謝每一位的分享。
- 有價值
- 一般般
- 沒價值
{{item.userName}} 舉報
{{item.time}} {{item.replyListShow ? '收起' : '展開'}}評論 {{curReplyId == item.id ? '取消回復' : '回復'}}
{{_reply.userName}} 舉報
{{_reply.time}}