?? fat16_and_fat32_introduce.txt
字號:
FAT16/FAT32文件系統介紹
作者: 來源: 日期:2007-04-11 10:39:22 點擊次數:50
本文摘自電子工程專輯,原作者是HGST(日立環球存儲技術公司)的高級應用工程師William F. Heybruck,旨在給通用PC或數碼相機用戶介紹文件分配表(FAT)和簇的概念和意義,并介紹12位、16位和32位FAT的特點和不同應用以及未來的發展趨勢。
在開發最初的個人計算機時,人們用180KB的軟磁盤,不久便采用360KB的雙面磁盤。為了組織這些存儲設備上數據,最初的DOS系統開發者設計一個表來指示哪個扇區屬于哪些文件,以及哪些扇區空閑,這樣操作系統可以最大限度地利用這些磁盤空間,使文件可以存儲在不連續的扇區上。文件數據可以分散有組織地存儲在磁盤的不同扇區,這稱為文件分割。
由于在360KB磁盤上有720個扇區,因此,表要做得足夠大以能標識每個扇區,并預留一些空間以備未來采用更大存儲空間的磁盤。表中的每個記錄只用一個字節,這樣只能有256個可能值,不能滿足這么多扇區的需要。如果采用兩個字節則最多可以有65,536個記錄,但這樣將浪費磁盤空間。因此,綜合這兩種情況,決定采用12位作為表記錄的長度來跟蹤磁盤上扇區的利用情況。采用12位長度可以有4,096個可能值,如果每個表記錄對應一個512字節扇區,那么這個FAT表可以處理高達2MB存儲容量的存儲設備。
但要從這么長的表中得到需要的信息將花太長時間,因此,人們引入了簇(cluster)的概念。這使設備的最小存儲單元從單個扇區增加到固定數量扇區,這些固定數量扇區稱為簇。對于180KB磁盤,簇的大小為兩個扇區(1,024字節)。因此,如果要保存一個500字節的文件,將占用磁盤上1,024個字節。這看上去會浪費,但實際上簇的概念在存儲大文件時效果很好,而實際上多數系統和用戶文件都是較大的。表1列出FAT所能代表簇的最大數字。
簇的概念
磁盤上最小可尋址存儲單元稱為扇區,通常每個扇區為512個字節(或字符)。由于多數文件比扇區大得多,因此如果對一個文件分配最小的存儲空間,將使存儲器能存儲更多數據,這個最小存儲空間即稱為簇。根據存儲設備(磁盤、閃卡和硬盤)的容量,簇的大小可以不同以使存儲空間得到最有效的應用。在早期的360KB磁盤上,簇大小為2個扇區(1,024字節);第一批的10MB硬盤的簇大小增加到8個扇區(4,096字節);現在的小型閃存設備上的典型簇大小是8KB或16KB。2GB以上的硬盤驅動器有32KB的簇。表2列出在給定簇大小和FAT類型的最大分區。
表1:FAT位數與簇數量對應表
FAT位數
簇數量
12
4096
16
65536
32
4294967296
為什么采用簇呢?通常,存儲設備上的空間分配是隨機的。在一個新存儲設備上,文件連續存儲,并知道開始和結束扇區和長度,在讀取時可以根據這些信息重新得到所存儲的文件。但是,過一段時間后,有些文件將會被擦掉,同時可能有些文件增大,這時不能保證同一個文件存儲在連續的一系列扇區里。因此,需要一種方法來辨別哪個扇區被分配到某些文件,以及還有哪些扇區可用。這時可以采用一種表結構來實現這種功能,使每個扇區對應一個表記錄。然而,由于大多數文件存儲在多個扇區,一個記錄對應一個扇區的作法將造成一些浪費。因此,采用每個記錄代表一個固定數量扇區將更有意義,這個固定扇區被稱為簇。
給文件分配扇區
FAT16/FAT32文件系統介紹
如果給一個文件(簇)分配的最小存儲空間大小取決于保存該文件的介質類型,我們必須有一種方法來標明某個簇是否可用或者已分配給一個文件。如果已將一個簇分配給一個文件,我們必須知道這個簇分配給文件的哪部分了,這就是通過一個鏈接列表來實現,即文件分配表(FAT)。FAT僅僅是一個包含
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -