✔ 最佳答案
在開發最初的個人電腦時,人們用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類型的最大分區。
那麼FAT的重要意義是什麼呢?目前的CF儲存設備使用12位元FAT或16位元FAT,數位相機和MP3播放器被設計成利用這種表結構進行讀寫。隨著4GB微硬碟逐漸進入實際應用,16位元FAT將不能夠滿足這種硬碟的需求,因為16位元FAT只能實現65,536個叢集,對於最大的32K位元組的叢集而言只能在提供最大2.14GB的容量。對於更大容量儲存設備有兩個解決方案,即將FAT增加到32位元或者將驅動器分成多個區。
記憶體分區
一個儲存設備可以分成多個區(其中每個區看起來像單獨的儲存設備),每個區有自己的目錄和FAT。大多數工程師在自己的PC硬碟上已經體驗過多分區,通常僅有一個硬碟的電腦具有‘C:’和‘D:’槽。
多數可攜式設備如數位相機和MP3播放器都沒有設計成採用記憶體分區,而PDA是真正的電腦,其文件系統程式是按分區來設計。以數位相機市場為例,記憶體必須只有單個分區才能相容。圖1所示為將一個驅動器分成1、2或3個區的情況。對用戶來說,每個區有自己的邏輯驅動器字母,通常指定為驅動器‘C:’、‘D:’和‘E:’等。
在一個相容FAT32的主機裡可以無縫使用FAT16儲存設備,因為支援FAT32的作業系統也支援FAT16。唯一需要注意的是在對FAT16設備重新格式化的時候,有些相容FAT32的主機(如一些 PDA)在沒有特別選擇下會默認為FAT32格式。第一次對儲存設備格式化時,必須認真觀察提示以保證用的是FAT16格式,除非你的相機 /PDA/MP3播放器支援FAT32。
在一個相容FAT16的主機裡使用FAT32設備會有幾個可能結果,最普遍的是在顯示螢幕上顯示的‘CF錯誤’指示。如果4GB的記憶體在只相容FAT16的主機裡格式化,將可能不出現錯誤提示,但顯示的容量將為2G。通常,不同的程式設計工程師會採用不同的方法來處理這個問題,對於這個特例,其結果不是總可預測的。如果4GB設備是用FAT16來格式化,就能在相容FAT32的主機裡對這個設備重新格式化,只要在格式化期間規定了FAT32。這樣,用戶可以在相容FAT32的主機裡恢復整個4GB容量。