FAT

歷史

FAT檔案系統遵行已用了多年的軟體方法來進行規範。它在1977年由比爾·蓋茲和馬斯·麥當勞為了管理磁碟而發明，並在1980年被添·彼得遜的86-DOS作業系統採用。這也是86-DOS作業系統與CP/M作業系統最大的不同點，若非此項差異，86-DOS作業系統與CP/M作業系統幾乎可說完全相同。

FAT12

初期的FAT就是現在俗稱的FAT12。作為軟碟的檔案系統，它有幾項限制：不支援分層性結構，叢集定址只有12位元（這使得控制FAT有些棘手）而且只支援最多32M（2¹⁶）的分割區。
當時入門級的磁碟是5.25"、單面、40磁軌、每個磁軌8個磁區、容量略少於160KB。上面的限制超過了這個容量一個或幾個數量級，同時允許將所有的控制結構放在第一個磁軌，這樣在讀寫操作時移動磁頭。這些限制在隨後的幾年時間裡被逐步增大。
由於唯一的根目錄也必須放在第一個磁軌，能夠存放的檔案個數就限制在幾十個。

目錄

MS-DOS 2.0為了支援以內建10MB硬碟為特色的IBM PC XT，因此幾乎與該電腦同時在1983年初發布。它引進了層次目錄結構，除了允許更有效率地組織檔案外，目錄允許在硬碟上儲存更多的檔案，這是因為最大檔案個數不再受制於（仍然是固定且有限的）根目錄大小。這個數目現在能夠等同於叢集的數目（甚至更大，這是考慮到長度為0的檔案並不占據任何FAT叢集）。
FAT本身的格式並沒有改變。PC XT的10MB的硬碟有4KB大小的叢集。如果後來安裝了一個20MB的硬碟，並且使用MS-DOS 2.0格式化，最後的叢集大小將變為8KB，硬碟容量將變為15.9MB。

FAT16的開始

在1984年，IBM發布PC AT，內含一個20MB的硬碟。微軟公司也同步發布了MS-DOS 3.0。叢集集位址增加至16位元，允許更大數量的叢集（最大65,517），所以有更大的檔案系統大小。但是，最大數量磁區及最大分割區（相當於磁盤）的大小仍是32MB。所以，儘管技術上已經是「FAT16」，這種格式並不是我們今天常見到的這個名字所代表的格式。在MS-DOS 3.0格式化一個20 MB的硬碟，這硬碟將不能被MS-DOS 2.0或之前的版本所存取。當然，MS-DOS 3.0仍然可存取MS-DOS 2.0的格式（8KB叢集的分割區）。
MS-DOS 3.0也開始支援高密度1.2MB 5.25"磁碟，最著名的是每個磁軌有15個磁區，這樣就允許FAT有更大的空間。這或許促進了一個對於叢集大小的不確定的最佳化，叢集大小從2個磁區減到1個。這樣做的最後結果是高密度磁碟比舊的雙密度磁碟的速度大幅度降低。

擴充分割區和邏輯驅動器

除了改進FAT檔案系統本身的結構之外，另一個提高FAT儲存空間的方式是支援多個磁碟分割區。最初，受限於主開機紀錄中檔案分配表的固定結構一個硬碟最多只能切出多達4個分割區。然而，由於DOS設計要求只能有一個分割區標識為「活動的（Active）」，它也是主啟動程式碼啟動所用的分割區。使用DOS工具不可能建立幾個「主」DOS分割區，並且第三方的工具也至少會警告這樣一個機制將與DOS不相容。
為了用一種相容的方式使用更多的分割區，一種新的分割區類型被開發出來（1986年1月的MS-DOS 3.2），擴充分割區它實際上是另外稱為邏輯分割區的一個容器。最初它裡面只允許有一個邏輯分割區、支援最大64MB的硬碟。在MS-DOS 3.3（1987年8月）這個限制更改到24個分割區；它可能來自於強制性的C:-Z：的磁碟命名規則。邏輯分割區表使用盤上的資料結構來描述，可能是為了簡化編碼它與主開機紀錄非常相似，並且它們組織成類似於俄羅斯套娃那樣的結構。一顆硬碟中只能有一個擴充分割區。
在擴充分割區觀念匯入之前，一些硬碟控制器（當時採用獨立的硬碟控制卡，IDE標準尚未出現）能夠將大硬碟顯示為兩個獨立的硬碟。

最終的FAT16

1987年11月，我們今天稱之為FAT的格式最終到來，它在康柏DOS 3.31中去掉了磁碟磁區的16位元計數器。這個結果曾經一度被稱為DOS 3.31大檔案系統。儘管看起來磁碟上的變動很小，這個DOS的磁碟程式碼都必須檢查並轉換到32位元的磁區數，由於它完全是16位元的組合語言這樣一個現實，這項工作就變得非常複雜。
1988年，這項改進通過MS-DOS 4.0得到廣泛套用。現在分割區大小受限於每個叢集的8位元有符號磁區計數，它最大能達到2的64次方，對於一個常用的有32KB個叢集每磁區512位元組的硬碟來說，將FAT16分割區大小的「明顯」限制擴充到2GB。在磁光碟媒體上，它能使用1或者2KB的磁區，這樣大小限制也就成比例地增大。
後來，Windows NT通過將每個叢集的磁區數當作無符號數將最大的叢集大小增加到64KB。然而這個格式與當時其它任何格式的FAT都不相容，並且這樣的操作會產生大量的內部碎片。Windows 98也支援這種格式的讀寫操作，但是它的磁碟管理工具不支援這種格式。

長檔案名（VFAT, LFN）

Windows 95設計人員的一個使用者體驗目標就是：除了傳統的8.3檔案名以外，在新作業系統中使用長檔案名（LFN）。長檔案名通過在目錄條目排列時，使用一個工作區來實現（參見下面）。按照Windows 95VxD裝置驅動程式的命名規則，這個新擴充的檔案系統通常稱為VFAT。
有意思的是，VFAT驅動在早於Windows 95的Windows for Groups 3.11中就已經出現，但它僅僅用於實現32位元檔案存取，一個繞過DOS的視窗內建高效能保護模式檔案管理系統，它能夠直接使用BIOS或者更好的32位元磁碟存取，如Windows內建的保護模式磁碟驅動程式。它是一個後門；微軟為Windows for Groups 3.11所作的廣告說32位元檔案存取基於「芝加哥專案的32位元檔案系統」。
在Windows NT中，FAT檔案系統對於長檔案名的支援從3.5版就已經開始了。在MS-DOS 7.0以後的版本中，則可使用類似DOSLFN這樣的軟體使得DIR等命令顯示出長檔案名。

FAT32

為了解決FAT16對於卷大小的限制同時讓DOS的真實模式在非必要情況下不減少可用常規記憶體狀況下處理這種格式，微軟公司決定實施新一代的FAT，它被稱為FAT32，帶有32位元的叢集數，目前用了其中的28位元。
理論上，這將支援總數達268,435,438（<2²⁸）的叢集，允許磁碟容量達到8TB。然而，由於微軟公司scandisk工具的限制，FAT32不能大於4,177,920（<2²²）個叢集，這將卷的容量限制在了124.55GB，除非不再使用「scandisk」。
FAT32隨著Windows 95 OSR2發布，儘管需要重新格式化才能使用這種格式並且DriveSpace 3（Windows 95 OSR2和Windows 98所帶版本）從來都不支援這種格式。Windows 98提供了一個工具用來在不遺失資料的情況下將現有的硬碟從FAT16轉到FAT32格式。在NT產品線上對於它的支援從Windows 2000開始。
Windows 2000和Windows XP能夠讀寫任何大小的FAT32檔案系統，但是這些平台上的格式化程式只能建立最大32GB的FAT32檔案系統。Thompson and Thompson（2003）寫道「奇怪的是微軟公司說這種現象是故意設計的」 微軟公司知識媒體櫃文章184006的確是這麼說的，但是沒有提出任何關於這個限制的合理解釋。Peter Norton的觀點是「微軟公司在有意地削弱FAT32檔案系統」。

exFAT

在Windows Embedded CE 6.0中引入，Windows XP SP3 以及 Windows Vista SP1也引入了exFAT的支援。在很多方面exFAT有了相當大的改進，特別適合用於快閃記憶體。

第三方支援

其它IBM PC的可選作業系統，如Linux、FreeBSD和BeOS都支援FAT格式，並且大部份都在相應的Windows版本發布以後很快就支援VFAT和FAT32格式。早期的Linux發布版本還包括稱為UMSDOS的格式，它是儲存在一個獨立的稱為--linux-.——的帶有Unix檔案內容（如長檔案名和存取許可）的FAT。UMSDOS在VFAT發布以後就不再使用。Linux內核從2.5.7開始就禁止了這項功能。Mac OS X作業系統在除啟動磁碟之外的其它卷上也支援FAT檔案系統。

FAT和其它資料流

FAT檔案系統本身不是為支援ADS而設計的，但是一些高度依賴它們的作業系統創造出了不同的方法以在FAT驅動器上處理它們。這些方法或者在額外的檔案或路徑中儲存附加的資訊（Mac OS），或者給那些磁碟資料結構中以前沒有使用的變數賦予新的含義（OS/2和Windows NT）。第二種設計，儘管想像起來會更有效率，但是它們不能被不認識這種格式的工具複製或者備份；使用不能辨識這種格式的磁碟工具（如碎片整理或CHKDSK）操控這些磁碟時可能會破壞這些資訊。
Mac OS使用PC Exchange儲存不同的資料，檔案內容和檔案名存在一個名為FINDER.DAT的隱藏檔案中，資源分支（ADS）存在名為RESSOURCE.FRK的子目錄中，這些資料都存在使用它們的每個目錄中。從PC Exchange 2.1開始，它們將Mac OS的長檔案名儲存為標準的FAT長檔案名，並且將超過31個字元的FAT長檔案名轉換為唯一的31字元能夠被Macintosh應用程式辨識的檔案名。
Mac OS X將元資料（資源分支、不同的ADS、檔案內容）儲存在與所有人相同並以「._」開始的名字的隱藏檔案中，並且Finder將一些資料夾和檔案元資料存在名為「.DS Store」的隱藏檔案中。
OS/2高度依賴於擴充內容（EA）並且將它們存在位於FAT12或FAT16的根目錄下名為「EA DATA. SF」的隱藏檔案中。這個檔案使用以前檔案（或者目錄）的目錄清單中的兩個保留位元組索引。在FAT32格式中，這些位元組中存有檔案或者目錄開始叢集號的高16位元，這樣就使它難於在FAT32上儲存EA。擴充內容可以通過Workplace Shell桌面、REXX指令碼、許多系統圖形使用者埠和命令列工具（如4OS2）來存取。
Windows NT支援HPFS、NTFS和FAT中所有擴充內容的處理（所用處理機制完全類似於OS/2），但是不能處理其它一些存於NTFS驅動器的ADS資料。試圖從複製帶有與NTFS驅動器內容不同擴充內容的ADS到FAT驅動器將報告一個警告資訊提示ADS將會遺失。
Windows 2000以後產品的處理類似於Windows NT但複製到FAT32時它們沒有顯示任何警告資訊直接丟棄擴充內容（但報告其他像「Macintosh Finder Info」和「Macintosh Resource Fork」這些ADS引起的警告）。

前景

微軟公司最近獲得了VFAT和FAT32的專利（但沒有得到最初的FAT的專利），這引起了人們對於微軟將會對Linux OS發布和初始化他們產品的媒體廠商收取專利費的擔憂（參見下面的FAT授權協定）。儘管最初的裁定不利於微軟公司，但是微軟仍然取得了勝利並且得到了專利授權。
由於微軟公司已經宣布不再開發基於MS-DOS作業系統Windows Me的後續版本，所以不再有可能會有新版的FAT。對於大多數用途來說，為Windows NT系列開發的NTFS檔案系統從效率、效能、安全性及可靠性來說都優於FAT；它的主要缺點是小容量檔案所占的額外空間以及除了基於NT的Windows作業系統之外的很少有其他作業系統支援。由於確切的規範是微軟公司的商業秘密，這就使得使用一個DOS軟碟用於恢復目的很困難（根據微軟MCSE訓練教材說明此點是刻意保密，以確保NTFS檔案系統不易被盜取資料）。微軟公司提供了一個恢復介面來解決這個問題，由於安全的原因它嚴重限制了預設情況下它所能解決的問題。
FAT仍然是移動媒體所常用的一種檔案系統（CD和DVD是例外），軟碟使用的是FAT12，其他多數活動媒體用的是FAT32（如用於數位相機的快閃記憶卡和USB隨身碟，Windows格式化的預設選項仍為FAT32），除非其容量超出FAT32的限制。出於相容性和儲存空間利用率的考慮FAT仍然用在這些驅動器上，同時也是由於這些活動媒體上的檔案的許可更容易遇到麻煩而不是更重要這樣一個事實。
Windows 2000和XP支援的FAT32格式化的限制是32GB，這導致使用現代硬碟的使用者必須要麼使用NTFS要麼使用其它程式格式化驅動器。一個解決的辦法是使用從Linux移植到Windows平台的一個工具mkdosfs。

例外情況

Apricot PC的MS-DOS所用FAT的實現有一個不同的啟動磁區組織以使用電腦與IBM不相容的基本輸入輸出系統。跳轉指令和OEM名被省略並且MS-DOS檔案系統參數位於0x50（在標準磁區中偏移為0x0B - 0x17）。後來的Apricot MS-DOS版本除了Apricot特有的啟動區之外也具有了讀寫標準啟動分割區的能力。
BBC Master 512上的DOS Plus根本就不使用傳統的啟動區。資料磁碟省略了啟動區並且以一個單份的FAT開始（FAT的第一個位元組用來確定磁碟容量），啟動磁碟使用一個包含啟動呼叫程式的小型ADFS檔案系統，後面跟隨一個單份的FAT。

控訴

由於人們廣泛要求重新審查這些專利，公眾專利基金會向美國專利和商標局（USPTO）提出了一些證據爭辯這些專利的有效性，其中包括全錄公司和IBM的早期參考資料。美國專利商標局承認這些證據提出了「可專利性的實質性的新問題」並且對於微軟公司FAT專利的有效性展開調查。
2004年9月30日，美國專利商標局主要基於公共專利基金會所提供的證據駁回了美國專利 5,579,517的專利主張。這個基金會的執行總裁Dan Ravicher說「現在專利局只不過是確認了我們已經知道了一段時間的事情，微軟公司的專利是假的。」
PUBPAT的新聞發布會說，「微軟公司仍然有機會回應專利局的駁回。有代表性的是第三方的重新審查要求如PUBPAT提供的資料成功地減小了專利的範圍或者有70%的機會完全駁回專利。」
2005年10月5日，專利局宣布隨著調查的深入它駁回了專利5.579,517的專利主張，另外它發現專利美國專利 5,758,352有錯誤的專利受益人而無效。
最後在2006年1月10日，專利局裁定微軟公司的FAT系統的實現特點是「新穎和非顯然的」，推翻了早期的兩個非最終裁決。