FAT 文件系統(tǒng)概念
首先我們知道嫌拣,我們如果想使用一個磁盤進行安裝系統(tǒng)阁苞,存儲數(shù)據(jù)妒挎,首先要對該磁盤進行分區(qū)(對磁盤依據(jù)某種類型的分區(qū)體系進行磁盤空間布局,如DOS 分區(qū)體系仇让、Apple 分區(qū)體系等)典奉, 當磁盤依據(jù)合適的分區(qū)體系劃分布置了磁盤內空間分區(qū)布局,我們需要按照去求針對各個分區(qū)進行格式化(格式化為一些文件系統(tǒng)類型丧叽,例如 NTFS卫玖、FAT32 、HFS+踊淳、UFS 等)假瞬,只有當一個磁盤使用某分區(qū)體系進行分區(qū)并且對分區(qū)進行了(文件系統(tǒng)類型的)格式化,才可以存放數(shù)據(jù)。
FAT 發(fā)展史
FAT(File Allocation Table)文件分配表脱茉, FAT 文件系統(tǒng)格式是Windows 操作系統(tǒng)所使用的一種文件系統(tǒng)剪芥, 發(fā)展經歷了 FAT12 、FAT16 芦劣、FAT32 三個階段粗俱。FAT名稱的由來是因為FAT 文件系統(tǒng)使用“文件分配表”描述文件系統(tǒng)內的數(shù)據(jù)存儲單元狀態(tài)以及文件內容的前后連接關系。 后來Microsoft 又推出了exFAT 格式虚吟,支持超大容量存儲寸认。
FAT 的數(shù)據(jù)存儲單元
FAT 文件系統(tǒng)的數(shù)據(jù)存儲單元稱為“簇”。簇的標準大小范圍: 一個“簇”由一組連續(xù)的扇區(qū)組成串慰,簇所包含的扇區(qū)個數(shù)必須是 2 的整數(shù)次冪偏塞, 如: 1、2邦鲫、4灸叼、8、16庆捺、32 或 64 古今。 “簇” 的最大值為64個扇區(qū),即32kb 滔以。簇的標號規(guī)則: 所有的“簇” 從“2”開始進行編號捉腥,每個“簇”都有一個自己的地址編號 (也稱為“邏輯文件地址”);用戶文件和內容都存儲在 “簇” 中你画。注意:不僅是FAT 文件系統(tǒng)使用 “簇” 作為存儲單元抵碟, Windows 的 NTFS 文件系統(tǒng)也使用 “簇” 作為數(shù)據(jù)存儲單元,不同的是 FAT 文件系統(tǒng)中的“簇”的編號從“2”開始 坏匪; 而NTFS 內的“簇”標號從“0” 開始拟逮。
FAT 文件系統(tǒng)的數(shù)據(jù)結構類型
FAT 文件系統(tǒng)的數(shù)據(jù)結構類型比較少, 其中兩種最重要的結構是: 文件分配表 和 目錄項适滓。
** 文件分配表FAT:** 描述文件系統(tǒng)內的 “簇”的狀態(tài) 以及 文件內容的前后連續(xù)關系(假若一個文件需要占用一個以上的簇敦迄,那么FAT表描述如何找到另外的“簇”); FAT 用于指明文件內容所占用的簇的前后連續(xù)關系(找到所占用的其他簇)凭迹,并且說明了簇的分配狀態(tài)罚屋。FAT12/16/32 三個階段的FAT 文件系統(tǒng)的主要區(qū)別在于FAT 項的大小不同。
目錄項: FAT 文件系統(tǒng)內的每個文件和文件夾都被分配一個目錄項蕊苗, 這個目錄項中記錄了該文件或文件夾的,文件名沿彭、大小朽砰、創(chuàng)建時間、文件內容起始地址以及其他一些“元數(shù)據(jù)”,說明對應的文件的“起始簇號”瞧柔。
總結:FAT 文件系統(tǒng)名稱源于: File Allocation TableFAT 文件系統(tǒng)內的每個數(shù)據(jù)存儲單元都有其自身的“邏輯文件地址”漆弄,所有的存儲單元編號起始于“2 ”FAT 文件系統(tǒng)的 數(shù)據(jù)結構類型比較少,主要的有兩個類型: FAT文件分配表 和 目錄項造锅。
FAT文件分配表: 主要起到描述文件系統(tǒng)內各文件內容所使用的簇的前后連續(xù)關系(指導出文件內容使用的前后連續(xù)的簇的位置)撼唾,并描述 文件所使用的“簇”的狀態(tài)目錄項: FAT 文件系統(tǒng)將會為文件系統(tǒng)內的每個文件和文件夾都分配一個“目錄項” ,目錄項包含了 文件/文件夾的 文件名哥蔚、大小倒谷、文件內容的起始位置 以及其他的一些“元數(shù)據(jù)” 和 描述對應的簇的起始地址。
** FAT 文件系統(tǒng)的 DBR** “引導扇區(qū)(DOS Boot Recorder--DOS 引導記錄)"
**DBR(DOS Boot Recorder) : **位于整個文件系統(tǒng)的“0”號扇區(qū)糙箍,是文件系統(tǒng)隱藏區(qū)域(也稱為保留區(qū))的一部分渤愁,成為DBR 扇區(qū) ,DBR 中記錄著文件系統(tǒng)在磁盤上的起始位置深夯、大小抖格、FAT 表的數(shù)量及大小等相關信息。
注意: FAT 表文件系統(tǒng)中同時使用“扇區(qū)地址”和“簇地址” 兩種地址管理方式咕晋, 原因是因為只有存儲用戶數(shù)據(jù)的數(shù)據(jù)區(qū)使用 “簇”進行管理(FAT12和FAT16的根目錄除外)雹拄。所有的簇都位于數(shù)據(jù)區(qū)內, 其他“文件系統(tǒng)管理數(shù)據(jù)區(qū)域”是不以“簇”進行管理的掌呜, 這部分區(qū)域使用“扇區(qū)地址”進行管理 滓玖; 文件系統(tǒng)的起始扇區(qū)為 “0”號扇區(qū), “0”號扇區(qū)內是DBR站辉,其中記錄DBR 所在文件系統(tǒng)的一些信息呢撞,包括該文件系統(tǒng)在磁盤上的起始位置、FAT 表數(shù)量以及大小等相關信息饰剥。
** FAT文件系統(tǒng)多字節(jié)存儲順序**
FAT 文件系統(tǒng)對多字節(jié)數(shù)據(jù)使用 Little-endian 順序進行存儲殊霞。
>> FAT 文件系統(tǒng)三個階段間的不同點
FAT12 、 FAT16 汰蓉、FAT32 之間的最大不同 是 “FAT項大小”不同绷蹲。FAT12 和 FAT16 的保留區(qū)通常為1個扇區(qū),也就是“引導扇區(qū)”本身 顾孽; FAT32 的“保留區(qū)”則要多一些祝钢,并且除0號扇區(qū)的引導扇區(qū)外,還為其保留了一個“引導扇區(qū)”備份若厚。
二拦英、 FAT 文件系統(tǒng)整體布局
總體來講FAT 文件系統(tǒng)可以分為三個部分: 保留區(qū)(DBR) 、 FAT區(qū) 和 數(shù)據(jù)區(qū)测秸。 這三個區(qū)在建立文件系統(tǒng)(格式化)時即被創(chuàng)建疤估,且在文件系統(tǒng)存續(xù)期間不可改變灾常。
>> 保留區(qū): 保留區(qū)中包含一個重要的數(shù)據(jù)結構--系統(tǒng)引導扇區(qū)(DBR),DBR 位于文件系統(tǒng)的“0”號扇區(qū)铃拇,引導扇區(qū)中存儲了其所在文件系統(tǒng)有關的重要信息钞瀑。FAT12 和 FAT16 的保留區(qū)通常為1個扇區(qū),也就是“引導扇區(qū)”本身 慷荔; FAT32 的“保留區(qū)”則要多一些雕什,并且除0號扇區(qū)的引導扇區(qū)外,還為其保留了一個“引導扇區(qū)”備份显晶。
**>> FAT 區(qū): **
如上圖所示整體結構中的“FAT 區(qū)” 由文件分區(qū)所具有的兩個“(大小贷岸、結構內容相同的)FAT 表”組成,“FAT 區(qū)”緊跟在“保留區(qū)”之后吧碾』丝“FAT 表” 用以描述 “數(shù)據(jù)區(qū)”中的數(shù)據(jù)存儲單元的分配狀態(tài) 以及 為文件或目錄內容分配的存儲單元的前后連接關系。
**>> FAT 數(shù)據(jù)區(qū) **
“FAT 區(qū)” 結束后緊跟著的就是“數(shù)據(jù)區(qū)”倦春,數(shù)據(jù)區(qū)被劃分為一個個的“簇”户敬,用于存儲用戶數(shù)據(jù)≌霰荆“FAT數(shù)據(jù)區(qū)” 使用“簇”進行管理尿庐, 而FAT 文件系統(tǒng)中非“數(shù)據(jù)區(qū)”的部分均使用“扇區(qū)地址”進行管理,而不能使用“簇”進行管理呢堰。
注意:FAT12/16 的根目錄雖然也屬于數(shù)據(jù)區(qū)抄瑟, 但并不由“簇”進行管理。 也就是說枉疼,F(xiàn)AT12/16 的根目錄是沒有 “簇”號的皮假,它們的 2號“簇”由“根目錄”之后開始。