作業系統設計/案例研究/FAT
FAT,或檔案分配表 檔案系統,是由比爾·蓋茨和馬克·麥克唐納在 1977 年發明的,並且是微軟 Windows 9x 上使用的主要檔案系統,直到 NT 釋出,此時它被 NTFS 超越。它以相對簡單的中心分配表命名,該分配表儲存每個檔案的位置以及裝置中的哪些塊可能已損壞。它也被用於各種其他作業系統多年,並且是軟盤的標準檔案系統。
FAT 檔案系統的第一個版本是 FAT12,旨在處理軟盤。由於它使用 12 位值來儲存簇地址,因此它被限制為僅包含 4078 個簇。此外,由於它僅使用 16 位值來儲存磁碟扇區數量,因此它被限制為 32 兆位元組。最後,它是一個平面檔案系統,因此不能包含目錄。
FAT16 與 IBM PC AT 和 MS-DOS 3.0 同時釋出,於 1984 年釋出。FAT16 將簇值大小提高到 16 位,允許 65,517 個簇,因此分割槽更大。但是,FAT16 的另一個版本於 1987 年為康柏 DOS 3.31 釋出,這就是今天被稱為 FAT16 檔案系統的版本。這將扇區計數提高到 32 位值,允許高達 32 KiB 的簇,並且還允許分割槽高達 2 GiB。最終,Windows NT 再次將簇大小增加到 64 KiB,儘管這破壞了向後相容性。
在設計 Windows 95 的過程中,微軟決定檔名應該能夠處理高達 255 個 UTF-16 字元。因此,VFAT 是 FAT16 的擴充套件,用於解決 FAT16 遇到的傳統“8.3”檔名限制。
FAT32 與 Windows 95 OSR2 一起引入,透過使用 32 位值來定址簇來增加可以定址的最大卷大小。這將最大卷大小增加到 2 TiB,儘管自 Windows 2000 以來,可以建立的最大卷已為 32 GiB。此外,FAT32 可以使用的最大檔案大小略小於 4 GiB。
exFAT 是傳統 FAT 檔案系統的替代品,專門為快閃記憶體裝置設計。它與 Windows Embedded CE 6.0 一起引入,並且在 Windows Vista SP1 釋出時,對微軟的桌面作業系統系列添加了支援。它具有許多效能增強功能,增加了簇大小(最初為 32 MB),支援高達 16 艾位元組的檔案,並刪除了傳統的 8.3 檔案名系統。此外,儘管這尚未在 Windows Vista SP1 版本的檔案系統驅動程式中實現,但它確實支援訪問控制系統。
對 FAT 分配系統的一個抱怨是,它沒有防碎片[1];也就是說,資料在磁碟上的隨機分散。這損害了磁碟效能,並且糾正起來很費時。此外,微軟已為 FAT 和 exFAT 檔案系統的各個部分獲得了專利,並且微軟已宣佈將以每臺售出裝置 0.25 美元的價格提供許可,每項授予的許可證最高支付 250,000 美元的版稅。[2]
- ↑ Giel de Nijs,Ard Biesheuvel,Ad Denissen,Niek Lambert。檔案系統碎片的影響。於 2008 年 6 月 14 日檢索。
- ↑ 微軟。智慧財產權許可 - FAT 檔案系統。於 2008 年 6 月 14 日檢索。