文檔系統

計算機的檔案系統是一種存儲和組織計算機數據的方法,它使得對其訪問和查找變得容易,檔案系統使用檔案和樹形目錄的抽象邏輯概念代替了硬碟和光碟等物理設備使用數據塊的概念,用戶使用檔案系統來保存數據不必關心數據實際保存在硬碟(或者光碟)的地址為多少的數據塊上,只需要記住這個檔案的所屬目錄和檔案名稱。在寫入新數據之前,用戶不必關心硬碟上的那個塊地址沒有被使用,硬碟上的存儲空間管理(分配和釋放)功能由檔案系統自動完成,用戶只需要記住數據被寫入到了哪個檔案中。

簡介

計算機的 檔案系統是一種存儲和組織計算機數據的方法,它使得對其訪問和查找變得容易,檔案系統使用 檔案樹形目錄的抽象邏輯概念代替了硬碟和光碟等物理設備使用數據塊的概念,用戶使用檔案系統來保存數據不必關心數據實際保存在硬碟(或者光碟)的地址為多少的數據塊上,只需要記住這個檔案的所屬目錄和檔案名稱。在寫入新數據之前,用戶不必關心硬碟上的那個塊地址沒有被使用,硬碟上的存儲空間管理(分配和釋放)功能由檔案系統自動完成,用戶只需要記住數據被寫入到了哪個檔案中。

檔案系統通常使用硬碟和光碟這樣的存儲設備,並維護檔案在設備中的物理位置。但是,實際上檔案系統也可能僅僅是一種訪問數據的界面而已,實際的數據是通過網路協定(如NFS、SMB、9P等)提供的或者記憶體上,甚至可能根本沒有對應的檔案(如proc檔案系統)。

嚴格地說,檔案系統是一套實現了數據的存儲、分級組織、訪問和獲取等操作的抽象數據類型(Abstract data type)。

概述

檔案系統是一種用於向用戶提供底層數據訪問的機制。它將設備中的空間劃分為特定大小的塊(或者稱為簇),一般每塊512位元組。數據存儲在這些塊中,大小被修正為占用整數個塊。由檔案系統軟體來負責將這些塊組織為檔案和目錄,並記錄哪些塊被分配給了哪個檔案,以及哪些塊沒有被使用。

不過,檔案系統並不一定只在特定存儲設備上出現。它是數據的組織者和提供者,至於它的底層,可以是磁碟,也可以是其它動態生成數據的設備(比如網路設備)。

檔案名稱

在檔案系統中,檔案名稱是用於定位存儲位置。大多數的檔案系統對檔案名稱的長度有限制。在一些檔案系統中,檔案名稱是大小寫不敏感(如“FOO”和“foo”指的是同一個檔案);在另一些檔案系統中則大小寫敏感。大多現今的檔案系統允許檔案名稱包含非常多的Unicode字元集的字元。然而在大多數檔案系統的界面中,會限制某些特殊字元出現在檔案名稱中。(檔案系統可能會用這些特殊字元來表示一個設備、設備類型、目錄前綴、或檔案類型)然而,這些特殊的字元會允許存在於用雙引號內的檔案名稱。方便起見,一般不建議在檔案名稱中包含特殊字元。

元數據(Metadata)

其它檔案保存信息常常伴隨著檔案自身保存在檔案系統中。檔案長度可能是分配給這個檔案的區塊數,也可能是這個檔案實際的位元組數。檔案最後修改時間也許記錄在檔案的時間戳中。有的檔案系統還保存檔案的創建時間,最後訪問時間及屬性修改時間。(不過大多數早期的檔案系統不記錄檔案的時間信息)其它信息還包括檔案設備類型(如:區塊數,字元集,套接口,子目錄等等),檔案所有者的ID,組ID,還有訪問許可權(如:唯讀,可執行等等)。

安全訪問

針對基本檔案系統操作的安全訪問可以通過訪問控制列表或capabilities實現。研究表明訪問控制列表難以保證安全,這也就是研發中的檔案系統傾向於使用capabilities的原因。然而目前多數商業性的檔案系統仍然使用訪問控制列表。

類型

磁碟檔案系統

磁碟檔案系統是一種設計用來利用數據存儲設備來保存計算機檔案的檔案系統,最常用的數據存儲設備是磁碟驅動器,可以直接或者間接地連線到計算機上。例如:FAT、exFAT、NTFS、HFS、HFS+、EXT2、ext3、ext4、ODS-5、btrfs、XFS、UFS。有些檔案系統是進程檔案系統(也有譯作日誌檔案系統)或者追蹤檔案系統。

快閃記憶體檔案系統

主條目:快閃記憶體檔案系統

快閃記憶體檔案系統是一種設計用來在快閃記憶體上儲存檔案的檔案系統。隨著移動設備的普及和快閃記憶體容量的增加,這類檔案系統越來越流行。

儘管磁碟檔案系統也能在快閃記憶體上使用,但快閃記憶體檔案系統是快閃記憶體設備的首選,理由如下:

•擦除區塊:快閃記憶體的區塊在重新寫入前必須先進行擦除。擦除區塊會占用相當可觀的時間。因此,在設備空閒的時候擦除未使用的區塊有助於提高速度。

•隨機訪問:由於在磁碟上定址有很大的延遲,磁碟檔案系統有針對定址的最佳化,以儘量避免定址。但快閃記憶體沒有定址延遲。

•寫入平衡(Wear levelling):快閃記憶體中經常寫入的區塊往往容易損壞。快閃記憶體檔案系統的設計可以使數據均勻地寫到整個設備。

日誌檔案系統具有快閃記憶體檔案系統需要的特性,這類檔案系統包括JFFS2和YAFFS。也有為了避免日誌頻繁寫入而導致快閃記憶體壽命衰減的非日誌檔案系統,如exFAT。

資料庫檔案系統

檔案管理方面的一個新概念是一種基於資料庫的檔案系統的概念。不再(或者不僅僅)使用分層結構管理,檔案按照他們的特徵進行區分,如檔案類型、專題、作者或者亞數據進行區分。於是檔案檢索就可以按照SQL風格甚至自然語言風格進行。

例如BFS和WinFS。

網路檔案系統

主條目:分散式檔案系統

網路檔案系統(NFS,Network File System)是一種將遠程主機上的分區(目錄)經網路掛載到本地系統的一種機制。

與作業系統的關係

DOS / Microsoft Windows支持的檔案系統

WindowsFAT12/FAT16FAT32/VFATFAT64/exFATNTFS
Windows 3.x或更早
(MS-DOS 6.22)
(PC-DOS 7.0)
可讀/可寫不支持不支持不支持
Windows 95可讀/可寫不支持不支持不支持
Windows 95(OSR2以後)
Windows 98(含SE)
ME
可讀/可寫可讀/可寫不支持不支持
Windows NT可讀/可寫不支持不支持可讀/可寫
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的不斷發展,它所支持的檔案系統也在迅速擴充,Linux系統核心可以支持十多種檔案系統類型:Btrfs、JFS、ReiserFS、exFAT、ext、ext2、ext3、ext4、XFS、ISO 9660、Minix、MSDOS、UMSDOS、VFAT、NTFS(Linux Kernel內置的NTFS驅動程式,寫入功能不穩定)、HPFS、NFS、SMB、SysV、PROC等。
注意:部分Linux發行版的Kernel默認不編譯Kernel內置的NTFS檔案系統支持,常見的在Linux下讀寫NTFS的解決方法是安裝NTFS-3G或ufsd等NTFS驅動程式。部分Linux發行版對NTFS的支持度並不高。

UNIX及BSD作業系統下的檔案系統

柏克萊加州大學開發早期的伯克利快速檔案系統(Berkeley Fast File System),再由各UNIX廠商開發不同的檔案系統,包括IRIX上的XFS、IBMAIX的JFS、HPHP-UNIX的VxFS、迪吉多Tru64的AdvFS及Solaris的ZFS。

macOS(Mac OS X)的檔案系統

從1998年到2016年間使用HFS+,再早採用HFS。從2016年發布的macOS Sierra起,使用蘋果檔案系統(APFS)。

Bell實驗室的PLAN9檔案系統

OpenVMS的檔案系統

OpenVMS為Wang Mainframe所使用的Operation System,以搭配Wang王安博士發明的Magnetic Drum的存儲設備。

IBM大型機MVS的檔案系統

參見

•擴展名

相關詞條

熱門詞條

聯絡我們