2012年7月16日星期一

FAT - 维基百科,自由的百科全书

 

檔案配置表英语:File Allocation Table,首字母縮略字:FAT),是一種由微軟發明並擁有部分專利[2]文件系統,供MS-DOS使用,也是所有非NT核心的微軟視窗使用的檔案系統。

FAT文件系統考慮當時電腦效能有限,所以未被複雜化,因此幾乎所有個人電腦作業系統都支援。這特性使它成為理想的軟碟記憶卡檔案系統,也適合用作不同操作系統中的資料交流。

但FAT有一個嚴重的缺點:當文件刪除後寫入新資料,FAT不會將檔案整理成完整片段再寫入,長期使用後會使檔案資料變得逐漸分散,而減慢了讀寫速度。磁碟重組是一種解決方法,但必須經常重組來保持FAT文件系統的效率。

FAT - 维基百科,自由的百科全书

FAT32

为了解决FAT16对于卷大小的限制同时让DOS的真实模式在非必要情况下不减少可用常规内存状况下处理这种格式,微软公司决定实施新一代的FAT,它被称为FAT32,带有32位的簇数,目前用了其中的28位。

理论上,这将支持总数达268,435,438(<228)的簇,允许磁盘容量达到8TB。然而,由于微软公司scandisk工具的限制,FAT不能大于4,177,920(<222)个簇,这将卷的容量限制在了124.55GB,除非不再使用“scandisk”。[2]

FAT32随着视窗95 OSR2发布,尽管需要重新格式化才能使用这种格式并且DriverSpace 3(视窗95 OSR2和视窗98所带版本)从来都不支援这种格式。视窗98提供了一个工具用来在不丢失数据的情况下将现有的硬盘从FAT16转到FAT32格式。在NT产品线上对于它的支援从视窗2000开始。

视窗2000和视窗XP能够读写任何大小的FAT32文件系统,但是这些平台上的格式化程序只能创建最大32GB的FAT32文件系统。Thompson and Thompson(2003)写道“奇怪的是微软公司说这种现象是故意设计的”[4] 微软公司知识库文章184006[5] 的确是这么说的,但是没有提出任何关于这个限制的合理解释。Peter Norton的观点是“微软公司在有意地削弱FAT32文件系统”[6]

第三方支持

其它IBM PC的可选操作系统—如LinuxFreeBSDBeOS—都支持FAT格式,并且大部分都在相应的视窗版本发布以后很快就支持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和视窗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以后产品的处理类似于视窗NT但复制到FAT32时它们没有显示任何警告信息直接丢弃扩展属性(但报告其它象“Macintosh Finder Info”和“Macintosh Resource Fork”这些ADS引起的警告)。

[编辑] 前景

微软公司最近获得了VFAT和FAT32的专利(但没有得到最初的FAT的专利),这引起人们对于微软将会對Linux OS发布和初始化他们产品的媒体厂商收取专利费的担忧(参见下面的FAT授权协议)。尽管最初的裁定不利于微软公司,但是微软仍然取得了胜利并且得到了专利授权。

由于微软公司已经宣布不再开发基于MS-DOS作業系统Windows Me的后续版本,所以不再有可能会有新版的FAT。对于大多数用途来说,为视窗NT系列开发的NTFS檔案系统从效率、性能、安全性及可靠性来说都优于FAT;它的主要缺点是小容量檔案所占的额外空間以及除了基于NT的视窗作業系統之外的很少有其他作業系統支援。由于确切的规范是微软公司的商业秘密,这就使得使用一个DOS软盘用于恢复目的很困难(根據微軟MCSE訓練教材說明此點是刻意保密,以確保NTFS檔案系統不易被盜取資料)。微软公司提供了一个恢复界面来解决这个问题,由于安全的原因它严重限制了缺省情况下它能解决的问题。

FAT仍然是活动媒体的常用文件系统(CD和DVD是例外),软碟使用的是FAT12,其它多数活动媒体用的是FAT16(如用于数位相机快閃記憶卡和USB隨身碟)。许多活动媒体还没有达到一定要FAT32的需求。出于兼容性和存储空间利用率的考虑FAT仍然用在这些驱动器上,同时也是由于这些活动媒体上的文件的许可更容易遇到麻烦而不是更重要这样一个事实。

视窗2000和XP支援的FAT32格式化的限制是32GB,这导致使用现代硬碟的用户必须要么使用NTFS要么使用其它程序格式化驱动器。一个解决的办法是使用从Linux移植到视窗平台的一个工具mkdosfs

没有评论:

发表评论