簡介
計算機的
檔案系統是一種存儲和組織計算機數據的方法,它使得對其訪問和查找變得容易,檔案系統使用
檔案和
樹形目錄的抽象邏輯概念代替了硬碟和光碟等物理設備使用數據塊的概念,用戶使用檔案系統來保存數據不必關心數據實際保存在硬碟(或者光碟)的地址為多少的數據塊上,只需要記住這個檔案的所屬目錄和檔案名稱。在寫入新數據之前,用戶不必關心硬碟上的那個塊地址沒有被使用,硬碟上的存儲空間管理(分配和釋放)功能由檔案系統自動完成,用戶只需要記住數據被寫入到了哪個檔案中。
檔案系統通常使用
硬碟和
光碟這樣的
存儲設備,並維護檔案在設備中的物理位置。但是,實際上檔案系統也可能僅僅是一種訪問數據的界面而已,實際的數據是通過網路協定(如
NFS、
SMB、
9P等)提供的或者記憶體上,甚至可能根本沒有對應的檔案(如proc檔案系統)。
嚴格地說,檔案系統是一套實現了
數據的存儲、分級組織、訪問和獲取等操作的
抽象數據類型(Abstract data type)。
內容簡介
檔案系統是一種用於向用戶提供底層數據訪問的機制。它將設備中的空間劃分為特定大小的塊(或者稱為簇),一般每塊512位元組。數據存儲在這些塊中,大小被修正為占用整數個塊。由檔案系統軟體來負責將這些塊組織為檔案和目錄,並記錄哪些塊被分配給了哪個檔案,以及哪些塊沒有被使用。
不過,檔案系統並不一定只在特定存儲設備上出現。它是數據的組織者和提供者,至於它的底層,可以是磁碟,也可以是其它動態生成數據的設備(比如網路設備)。
檔案名稱
在檔案系統中,檔案名稱是用於定位存儲位置。大多數的檔案系統對檔案名稱的長度有限制。在一些檔案系統中,檔案名稱是大小寫不敏感(如“FOO”和“foo”指的是同一個檔案);在另一些檔案系統中則大小寫敏感。大多現今的檔案系統允許檔案名稱包含非常多的
Unicode字元集的字元。然而在大多數檔案系統的界面中,會限制某些特殊字元出現在檔案名稱中。(檔案系統可能會用這些特殊字元來表示一個設備、設備類型、目錄前綴、或檔案類型)然而,這些特殊的字元會允許存在於用雙引號內的檔案名稱。方便起見,一般不建議在檔案名稱中包含特殊字元。
元數據(Metadata)
其它檔案保存信息常常伴隨著檔案自身保存在檔案系統中。檔案長度可能是分配給這個檔案的區塊數,也可能是這個檔案實際的位元組數。檔案最後修改時間也許記錄在檔案的時間戳中。有的檔案系統還保存檔案的創建時間,最後訪問時間及屬性修改時間。(不過大多數早期的檔案系統不記錄檔案的時間信息)其它信息還包括檔案設備類型(如:區塊數,字元集,套接口,子目錄等等),檔案所有者的ID,組ID,還有訪問許可權(如:唯讀,可執行等等)。
安全訪問
針對基本檔案系統操作的安全訪問可以通過
訪問控制列表或capabilities實現。研究表明訪問控制列表難以保證安全,這也就是研發中的檔案系統傾向於使用capabilities的原因。然而目前多數商業性的檔案系統仍然使用訪問控制列表。
類型
磁碟檔案系統
快閃記憶體檔案系統
儘管
磁碟檔案系統也能在快閃記憶體上使用,但快閃記憶體檔案系統是快閃記憶體設備的首選,理由如下:
日誌檔案系統具有快閃記憶體檔案系統需要的特性,這類檔案系統包括
JFFS2和
YAFFS。也有為了避免日誌頻繁寫入而導致快閃記憶體壽命衰減的非日誌檔案系統,如
exFAT。
資料庫檔案系統
檔案管理方面的一個新概念是一種基於資料庫的檔案系統的概念。不再(或者不僅僅)使用分層結構管理,檔案按照他們的特徵進行區分,如檔案類型、專題、作者或者亞數據進行區分。於是檔案檢索就可以按照
SQL風格甚至自然語言風格進行。
網路檔案系統
網路檔案系統(NFS,Network File System)是一種將遠程主機上的分區(目錄)經網路掛載到本地系統的一種機制。
與作業系統的關係
DOS / Microsoft
Windows | FAT12/FAT16 | FAT32/VFAT | FAT64/exFAT | NTFS |
---|
Windows 3.x或更早 (MS-DOS 6.22) (PC-DOS 7.0) | | | | |
| | | | |
Windows 95(OSR2以後) Windows 98(含SE) ME | | | | |
| | | | |
2000 Windows XP Windows Vista Server 2003 Server 2008 (R2) Windows 7 Windows 8 Server 2012 (R2) Windows 8.1 Windows 10 | | | | |
注意:除非NT安裝了FAT32 For Windows NT 4.0否則NT是不支持FAT32
Linux支持的檔案系統
注意:部分Linux發行版的Kernel默認不編譯Kernel內置的
NTFS檔案系統支持,常見的在Linux下讀寫NTFS的解決方法是安裝
NTFS-3G或ufsd等NTFS驅動程式。部分Linux發行版對NTFS的支持度並不高。
UNIX及BSD作業系統下的檔案系統
macOS(Mac OS X)的檔案系統
OpenVMS的檔案系統
OpenVMS為Wang Mainframe所使用的Operation System,以搭配Wang王安博士發明的Magnetic Drum的存儲設備。
參見