fbpx
Wikipedia

File Allocation Table

File Allocation Table (FAT) is a file system developed for personal computers and was the default filesystem for MS-DOS and Windows 9x operating systems.[3] Originally developed in 1977 for use on floppy disks, it was adapted for use on hard disks and other devices. The increase in disk drives capacity required three major variants: FAT12, FAT16 and FAT32. FAT was replaced with NTFS as the default file system on Microsoft operating systems starting with Windows XP.[4] Nevertheless, FAT continues to be used on flash and other solid-state memory cards and modules (including USB flash drives), many portable and embedded devices because of its compatibility and ease of implementation.[5]

FAT
Developer(s)Microsoft, NCR, SCP, IBM, Compaq, Digital Research, Novell, Caldera
Full nameFile Allocation Table
Variants8-bit FAT, FAT12, FAT16, FAT16B, FAT32, ExFAT, FATX, FAT+
Introduced1977 (1977) with Standalone Disk BASIC-80
Partition IDsMBR/EBR:
  • FAT12: 0x01 e.a. (Extended Attribute)
  • FAT16: 0x040x060x0E e.a.
  • FAT32: 0x0B0x0C e.a.
  • BDP: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Structures
Directory contentsTable
File allocationLinked list
Bad blocksCluster tagging
Limits
Max volume size
  • FAT12: 32 MB (256 MB for 64 KB clusters)
  • FAT16: 2 GB (4 GB for 64 KB clusters)
  • FAT32: 2 TB (16 TB for 4 KB sectors)
Max file size4,294,967,295 bytes (4 GB − 1) with FAT16B and FAT32[1]
Max no. of files
  • FAT12: 4,068 for 8 KB clusters
  • FAT16: 65,460 for 32 KB clusters
  • FAT32: 268,173,300 for 32 KB clusters
Max filename length8.3 filename, or 255 UCS-2 characters when using LFN[nb 1]
Features
Dates recorded
  • Modified date/time, creation date/time (DOS 7.0 and higher only),
  • access date (only available with ACCDATE enabled),[2]
  • deletion date/time (only with DELWATCH 2)
Date range1980-01-01 to 2099-12-31 (2107-12-31)
Date resolution
  • 2 seconds for last modified time,
  • 10 ms for creation time,
  • 1 day for access date,
  • 2 seconds for deletion time
ForksNot natively
AttributesRead-only, hidden, system, volume, directory, archive
File system
permissions
Transparent
compression
Transparent
encryption
  • FAT12/FAT16: Per-volume only with DR-DOS
  • FAT32: No

Uses edit

Historical edit

FAT was also used on hard disks throughout the DOS and Windows 9x eras. Microsoft introduced NTFS with the Windows NT platform in 1993, but FAT remained the standard for the home user until the introduction of Windows XP in 2001. Windows Me was the final version of Windows to use FAT as its default file system.

For floppy disks, FAT has been standardized as ECMA-107[6] and ISO/IEC 9293:1994[7] (superseding ISO 9293:1987[8]). These standards cover FAT12 and FAT16 with only short 8.3 filename support; long filenames with VFAT were partially patented.[9] While FAT12 is used on floppy disks, FAT16 and FAT32 are typically found on the larger media.

Modern edit

FAT is used internally for the EFI system partition in the boot stage of EFI-compliant computers.[10] Hidden FAT filesystems are also used in the UEFI boot partition on modern PCs.

FAT is still used in drives expected to be used by multiple operating systems, such as in shared Windows, Linux and DOS environments. Microsoft Windows additionally comes with a pre-installed tool to convert a FAT file system into NTFS directly without the need to rewrite all files, though this cannot be reversed easily.[11] The FAT file system is used in removable media such as floppy disks, super-floppies, memory and flash memory cards or USB flash drives. FAT is supported by portable devices such as PDAs, digital cameras, camcorders, media players, and mobile phones.[3]

The DCF file system adopted by almost all digital cameras since 1998 defines a logical file system with 8.3 filenames and makes the use of either FAT12, FAT16, FAT32 or exFAT mandatory for its physical layer for compatibility.[12]

Technical details edit

The file system uses an index table stored on the device to identify chains of data storage areas associated with a file, the File Allocation Table (FAT). The FAT is statically allocated at the time of formatting. The table is a linked list of entries for each cluster, a contiguous area of disk storage. Each entry contains either the number of the next cluster in the file, or else a marker indicating the end of the file, unused disk space, or special reserved areas of the disk. The root directory of the disk contains the number of the first cluster of each file in that directory. The operating system can then traverse the FAT, looking up the cluster number of each successive part of the disk file as a cluster chain until the end of the file is reached. Sub-directories are implemented as special files containing the directory entries of their respective files.

Each entry in the FAT linked list is a fixed number of bits: 12, 16 or 32. The maximum size of a file or a disk drive that can be accessed is the product of the largest number that can be stored in the entries (less a few values reserved to indicate unallocated space or the end of a list) and the size of the disk cluster. Even if only one byte of storage is needed to extend a file, an entire cluster must be allocated to it and any single cluster can not hold more than a single file, so large clusters waste much disk space if there are large numbers of small files.

Originally designed as an 8-bit file system, the maximum number of clusters must increase as disk drive capacity increases, and so the number of bits used to identify each cluster has grown. The successive major variants of the FAT format are named after the number of table element bits: 12 (FAT12), 16 (FAT16), and 32 (FAT32).

Variants edit

There are several variants of the FAT file system (e.g. FAT12, FAT16 and FAT32). FAT16 refers to both the original group of FAT file systems with 16-bit wide cluster entries and also to later variants. "VFAT" is an optional extension for long file names, which can work on top of any FAT file system. Volumes using VFAT long-filenames can be read also by operating systems not supporting the VFAT extension.

Original 8-bit FAT edit

8-bit FAT
Developer(s)Microsoft, NCR, SCP
Full name8-bit File Allocation Table
Introduced
Limits
Max file size8 MB
File size granularityrecord-granularity (128 bytes)[13][14]
Max filename length6.3 filename (binary files), 9 characters (ASCII files)[13][14]
Max directory depthNo sub-directories
Allowed filename
characters
ASCII (0x00 and 0xFF not allowed in first character)[13][14]
Features
Dates recordedNo
AttributesWrite protected, EBCDIC conversion, read after write, binary (random rather than sequential file)[13][14]

The original FAT file system (or FAT structure, as it was called initially) was designed and implemented by Marc McDonald,[15] based on a series of discussions between McDonald and Bill Gates.[15] It was introduced with 8-bit table elements[13][14][15] (and valid data cluster numbers up to 0xBF[13][14]) in a precursor to Microsoft's Standalone Disk BASIC-80 for an 8080-based successor[nb 2] of the NCR 7200 model VI data-entry terminal, equipped with 8-inch (200 mm) floppy disks, in 1977[16] or 1978.[nb 2] In 1978, Standalone Disk BASIC-80 was ported to the 8086 using an emulator on a DEC PDP-10,[17] since no real 8086 systems were available at this time. The FAT file system was also used in Microsoft's MDOS/MIDAS,[15] an operating system for 8080/Z80 platforms written by McDonald since 1979. The Standalone Disk BASIC version supported three FATs,[13][14][18] whereas this was a parameter for MIDAS. Reportedly, MIDAS was also prepared to support 10-bit, 12-bit and 16-bit FAT variants. While the size of directory entries was 16 bytes in Standalone Disk BASIC,[13][14] MIDAS instead occupied 32 bytes per entry.

Tim Paterson of Seattle Computer Products (SCP) was first introduced to Microsoft's FAT structure when he helped Bob O'Rear adapting the Standalone Disk BASIC-86 emulator port onto SCP's S-100 bus 8086 CPU board prototype during a guest week at Microsoft in May 1979.[17] The final product was shown at Lifeboat Associates' booth stand at the National Computer Conference in New York[17] on June 4–7, 1979, where Paterson learned about the more sophisticated FAT implementation in MDOS/MIDAS[15] and McDonald talked to him about the design of the file system.[16]

FAT12 edit

FAT12
Developer(s)SCP, Microsoft, IBM, Digital Research, Novell
Full name12-bit File Allocation Table
Introduced
Partition IDsMBR/EBR:
  • FAT12: 0x01 e.a.
  • BDP: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Limits
Max volume size
  • 16 MB (with 4 KB clusters)
  • 32 MB (with 8 KB clusters)
Max file sizeLimited by volume size
File size granularity1 byte
Max no. of files4,068 for 8 KB clusters
Max filename length8.3 filename with OEM characters,
255 UCS-2 characters[nb 1] when using LFN
Max directory depth32 levels or 66 characters (with CDS),
60 levels or more (without CDS)
Features
Dates recorded
  • Modified date (not with 86-DOS before 0.42),
  • modified time (not with PC DOS 1.0 and 86-DOS), creation date/time (DOS 7.0 and higher only),
  • access date (only available with ACCDATE enabled),[2]
  • deletion date/time (only with DELWATCH 2)
Date range1980-01-01 to 2099-12-31 (2107-12-31)
Date resolution
  • 2 seconds for last modified time,
  • 10 ms for creation time,
  • 1 day for access date,
  • 2 seconds for deletion time
AttributesRead-only (since DOS 2.0), hidden, system, volume (since MS-DOS 1.28 and PC DOS 2.0), directory (since MS-DOS 1.40 and PC DOS 2.0), archive (since DOS 2.0)
File system
permissions
Transparent
compression
Per-volume, SuperStor, Stacker, DoubleSpace, DriveSpace
Transparent
encryption
Per-volume only with DR-DOS

Between April and August 1980, while borrowing the FAT concept for SCP's own 8086 operating system QDOS 0.10,[17] Tim Paterson extended the table elements to 12 bits,[19] reduced the number of FATs to two, redefined the semantics of some of the reserved cluster values, and modified the disk layout, so that the root directory was now located between the FAT and the data area for his implementation of FAT12. Paterson also increased the nine-character (6.3) filename[13][14] length limit to eleven characters to support CP/M-style 8.3 filenames and File Control Blocks. The format used in Microsoft Standalone Disk BASIC's 8-bit file system precursor was not supported by QDOS. By August 1980, QDOS had been renamed 86-DOS.[20] Starting with 86-DOS 0.42, the size and layout of directory entries was changed from 16 bytes to 32 bytes[21] in order to add a file date stamp[21] and increase the theoretical file size limit beyond the previous limit of 16 MB.[21]86-DOS 1.00 became available in early 1981. Later in 1981, 86-DOS evolved into Microsoft's MS-DOS and IBM PC DOS.[15][19][22] The capability to read previously formatted volumes with 16-byte directory entries[21] was dropped with MS-DOS 1.20.

FAT12 used 12-bit entries for the cluster addresses; some values were reserved to mark the end of a chain of clusters, to mark unusable areas of the disk, or for other purposes, so the maximum number of clusters was limited to 4078.[23][24] To conserve disk space, two 12-bit FAT entries used three consecutive 8-bit bytes on disk, requiring manipulation to unpack the 12-bit values. This was sufficient for the original floppy disk drives, and small hard disks up to 32 megabytes. The FAT16B version available with DOS 3.31 supported 32-bit sector numbers, and so increased the volume size limit.

All the control structures fit inside the first track, to avoid head movement during read and write operations. Any bad sector in the control structures area would make the disk unusable. The DOS formatting tool rejected such disks completely. Bad sectors were allowed only in the file data area. Clusters containing bad sectors were marked unusable with the reserved value 0xFF7 in the FAT.

While 86-DOS supported three disk formats (250.25 KB, 616 KB and 1232 KB, with FAT IDs 0xFF and 0xFE) on 8-inch (200 mm) floppy drives, IBM PC DOS 1.0, released with the original IBM Personal Computer in 1981, supported only an 8-sector floppy format with a formatted capacity of 160 KB (FAT ID 0xFE) for single-sided 5.25-inch floppy drives, and PC DOS 1.1 added support for a double-sided format with 320 KB (FAT ID 0xFF). PC DOS 2.0 introduced support for 9-sector floppy formats with 180 KB (FAT ID 0xFC) and 360 KB (FAT ID 0xFD).

86-DOS 1.00 and PC DOS 1.0 directory entries included only one date, the last modified date. PC DOS 1.1 added the last modified time. PC DOS 1.x file attributes included a hidden bit and system bit, with the remaining six bits undefined. At this time, DOS did not support sub-directories, but typically there were only a few dozen files on a diskette.

The PC XT was the first PC with an IBM-supplied hard drive, and PC DOS 2.0 supported that hard drive with FAT12 (FAT ID 0xF8). The fixed assumption of 8 sectors per clusters on hard disks practically limited the maximum partition size to 16 MB for 512 byte sectors and 4 KB clusters.

The BIOS Parameter Block (BPB) was introduced with PC DOS 2.0 as well, and this version also added read-only, archive, volume label, and directory attribute bits for hierarchical sub-directories.[25]

MS-DOS 3.0 introduced support for high-density 1.2 MB 5.25-inch diskettes (media descriptor 0xF9), which notably had 15 sectors per track, hence more space for the FATs.

FAT12 remains in use on all common floppy disks, including 1.44 MB and later 2.88 MB disks (media descriptor byte 0xF0).

Initial FAT16 edit

FAT16
Developer(s)Microsoft, IBM, Digital Research, Novell
Full name16-bit File Allocation Table
(with 16-bit sector entries)
Introduced1984-08-14 (PC DOS 3.0)
1984-08 (MS-DOS 3.0)
Partition IDsMBR/EBR:
  • FAT160x04 e.a.
  • BDP: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Limits
Max file size4,294,967,295 bytes (4 GB − 1)
File size granularity1 byte
Max no. of files65,536 for 32 KB clusters
Max filename length8.3 filename with OEM characters, 255 UCS-2 characters[nb 1] when using LFN
Max directory depth32 levels or 66 characters (with CDS),
60 levels or more (without CDS)
Features
Dates recorded
  • Modified date/time, creation date/time (DOS 7.0 and higher only),
  • access date (only available with ACCDATE enabled),[2]
  • deletion date/time (only with DELWATCH 2)
Date range1980-01-01 to 2099-12-31 (2107-12-31)
Date resolution
  • 2 seconds for last modified time,
  • 10 ms for creation time,
  • 1 day for access date,
  • 2 seconds for deletion time
AttributesRead-only, hidden, system, volume, directory, archive
File system
permissions
Transparent
compression
Per-volume, SuperStor, Stacker, DoubleSpace, DriveSpace
Transparent
encryption
Per-volume only with DR-DOS

In 1984, IBM released the PC AT, which required PC DOS 3.0 to access its 20 MB hard disk.[26][27] Microsoft introduced MS-DOS 3.0 in parallel. Cluster addresses were increased to 16-bit, allowing for up to 65,526 clusters per volume. However, the maximum possible number of sectors and the maximum partition size of 32 MB did not change. Although cluster addresses were 16 bits, this format was not what today is commonly understood as FAT16. A partition type 0x04 indicates this form of FAT16 with less than 65,536 sectors (less than 32 MB for sector size 512). The benefit of FAT16 was the use of smaller clusters, making disk usage more efficient, particularly for large numbers of files only a few hundred bytes in size.

As MS-DOS 3.0 formatted all 16 MB-32 MB partitions in the FAT16 format, a 20 MB hard disk formatted under MS-DOS 3.0 was not accessible by MS-DOS 2.0.[28] MS-DOS 3.0 to MS-DOS 3.30 could still access FAT12 partitions under 15 MB, but required all 16 MB-32 MB partitions to be FAT16, and so could not access MS-DOS 2.0 partitions in this size range. MS-DOS 3.31 and higher could access 16 MB-32 MB FAT12 partitions again.

Logical sectored FAT edit

MS-DOS and PC DOS implementations of FAT12 and FAT16 could not access disk partitions larger than 32 megabytes. Several manufacturers developed their own FAT variants within their OEM versions of MS-DOS.[29]

Some vendors (AST and NEC[29]) supported eight, instead of the standard four, primary partition entries in their custom extended Master Boot Record (MBR), and they adapted MS-DOS to use more than a single primary partition.

Other vendors worked around the volume size limits imposed by the 16-bit sector entries by increasing the apparent size of the sectors the file system operated on. These logical sectors were larger (up to 8192 bytes) than the physical sector size (still 512 bytes) on the disk. The DOS-BIOS or System BIOS would then combine multiple physical sectors into logical sectors for the file system to work with.

These changes were transparent to the file system implementation in the DOS kernel. The underlying DOS-BIOS translated these logical sectors into physical sectors according to partitioning information and the drive's physical geometry.

The drawback of this approach was increased memory used for sector buffering and deblocking. Since older DOS versions could not use large logical sectors, the OEMs introduced new partition IDs for their FAT variants in order to hide them from off-the-shelf issues of MS-DOS and PC DOS. Known partition IDs for logical sectored FATs include: 0x08 (Commodore MS-DOS 3.x), 0x11 (Leading Edge MS-DOS 3.x), 0x14 (AST MS-DOS 3.x), 0x24 (NEC MS-DOS 3.30[29]), 0x56 (AT&T MS-DOS 3.x), 0xE5 (Tandy MS-DOS), 0xF2 (Sperry IT MS-DOS 3.x, Unisys MS-DOS 3.3 – also used by Digital Research DOS Plus 2.1).[30] OEM versions like Toshiba MS-DOS, Wyse MS-DOS 3.2 and 3.3,[31] as well as Zenith MS-DOS are also known to have utilized logical sectoring.[32]

While non-standard and sub-optimal, these FAT variants are perfectly valid according to the specifications of the file system itself.[citation needed] Therefore, even if default issues of MS-DOS and PC DOS were not able to cope with them, most of these vendor-specific FAT12 and FAT16 variants can be mounted by more flexible file system implementations in operating systems such as DR-DOS, simply by changing the partition ID to one of the recognized types.[nb 3] Also, if they no longer need to be recognized by their original operating systems, existing partitions can be "converted" into FAT12 and FAT16 volumes more compliant with versions of MS-DOS/PC DOS 4.0–6.3, which do not support sector sizes different from 512 bytes,[33] by switching to a BPB with 32-bit entry for the number of sectors, as introduced since DOS 3.31 (see FAT16B below), keeping the cluster size and reducing the logical sector size in the BPB down to 512 bytes, while at the same time increasing the counts of logical sectors per cluster, reserved logical sectors, total logical sectors, and logical sectors per FAT by the same factor.

A parallel development in MS-DOS / PC DOS which allowed an increase in the maximum possible FAT size was the introduction of multiple FAT partitions on a hard disk. To allow the use of more FAT partitions in a compatible way, a new partition type was introduced in PC DOS 3.2 (1986), the extended partition (EBR),[15] which is a container for an additional partition called logical drive. Since PC DOS 3.3 (April 1987), there is another, optional extended partition containing the next logical drive, and so on. The MBR of a hard disk can either define up to four primary partitions, or an extended partition in addition to up to three primary partitions.

Final FAT16 edit

FAT16B
Developer(s)Compaq, Digital Research, IBM, Microsoft, Novell
Full name16-bit File Allocation Table
(with 32-bit sector entries)
Introduced
Partition IDsMBR/EBR:
Limits
Min volume size
  • MB (with 128 byte sectors)
  • 32 MB (with 512 byte sectors)
  • 256 MB (with 4 KB sectors)
Max volume size
  • GB (with 32 KB clusters)
  • 4 GB (with 64 KB clusters) (NT 4, PTS-DOS, EDR-DOS)
  • 8 GB (with 128 KB clusters and 1 or 2 KB sectors) (NT 4 and EDR-DOS only)
  • 8 GB (with 128 KB clusters and 512 byte sectors) (EDR-DOS only)
  • 16 GB (with 256 KB clusters and 2 or 4 KB sectors) (NT 4 only)
Max file size
  • 2,147,483,647 bytes (2 GB − 1) (without LFS)
  • 4,294,967,295 bytes (4 GB − 1) (with LFS)
  • limited by volume size only (with FAT16+[34])
File size granularity1 byte
Max no. of files65,460 for 32 KB clusters
Max filename length8.3 filename with OEM characters,
255 UCS-2 characters[nb 1] when using LFN
Max directory depth32 levels or 66 characters (with CDS),
60 levels or more (without CDS)
Features
Dates recorded
  • Modified date/time, creation date/time (DOS 7.0 and higher only),
  • access date (only available with ACCDATE enabled),[2]
  • deletion date/time (only with DELWATCH 2)
Date range1980-01-01 to 2099-12-31 (2107-12-31)
Date resolution
  • 2 seconds for last modified time,
  • 10 ms for creation time,
  • 1 day for access date,
  • 2 seconds for deletion time
AttributesRead-only, hidden, system, volume, directory, archive
File system
permissions
Transparent
compression
Per-volume, SuperStor, Stacker, DoubleSpace, DriveSpace
Transparent
encryption
Per-volume only with DR-DOS

In November 1987, Compaq Personal Computer DOS 3.31 (a modified OEM version of MS-DOS 3.3 released by Compaq with their machines) introduced what today is simply known as the FAT16 format, with the expansion of the 16-bit disk sector count to 32 bits in the BPB. Although the on-disk changes were minor, the entire DOS disk driver had to be converted to use 32-bit sector numbers, a task complicated by the fact that it was written in 16-bit assembly language. The result was initially called the DOS 3.31 Large File System. Microsoft's DSKPROBE tool refers to type 0x06 as BigFAT,[35] whereas some older versions of FDISK described it as BIGDOS. Technically, it is known as FAT16B.

Since older versions of DOS were not designed to cope with more than 65,535 sectors, it was necessary to introduce a new partition type for this format in order to hide it from pre-3.31 issues of DOS. The original form of FAT16 (with less than 65,536 sectors) had a partition type 0x04. To deal with disks larger than this, type 0x06 was introduced to indicate 65,536 or more sectors. In addition to this, the disk driver was expanded to cope with more than 65,535 sectors as well. The only other difference between the original FAT16 and the newer FAT16B format is the usage of a newer BPB format with 32-bit sector entry. Therefore, newer operating systems supporting the FAT16B format can cope also with the original FAT16 format without any necessary changes.

If partitions to be used by pre-DOS 3.31 issues of DOS need to be created by modern tools, the only criteria theoretically necessary to meet are a sector count of less than 65536, and the usage of the old partition ID (0x04). In practice however, type 0x01 and 0x04 primary partitions should not be physically located outside the first 32 MB of the disk, due to other restrictions in MS-DOS 2.x, which could not cope with them otherwise.

In 1988, the FAT16B improvement became more generally available through DR DOS 3.31, PC DOS 4.0, OS/2 1.1, and MS-DOS 4.0. The limit on partition size was dictated by the 8-bit signed count of sectors per cluster, which originally had a maximum power-of-two value of 64. With the standard hard disk sector size of 512 bytes, this gives a maximum of 32 KB cluster size, thereby fixing the "definitive" limit for the FAT16 partition size at 2 GB for sector size 512. On magneto-optical media, which can have 1 or 2 KB sectors instead of 0.5 KB, this size limit is proportionally larger.

Much later, Windows NT increased the maximum cluster size to 64 KB, by considering the sectors-per-cluster count as unsigned. However, the resulting format was not compatible with any other FAT implementation of the time, and it generated greater internal fragmentation. Windows 98, SE and ME also supported reading and writing this variant, but its disk utilities did not work with it and some FCB services are not available for such volumes. This contributes to a confusing compatibility situation.

Prior to 1995, versions of DOS accessed the disk via CHS addressing only. When Windows 95(MS-DOS 7.0) introduced LBA disk access, partitions could start being physically located outside the first c. 8 GB of this disk and thereby out of the reach of the traditional CHS addressing scheme. Partitions partially or fully located beyond the CHS barrier therefore had to be hidden from non-LBA-enabled operating systems by using the new partition type 0x0E in the partition table instead. FAT16 partitions using this partition type are also named FAT16X.[36] The only difference, compared to previous FAT16 partitions, is the fact that some CHS-related geometry entries in the BPB record, namely the number of sectors per track and the number of heads, may contain no or misleading values and should not be used.

The number of root directory entries available for FAT12 and FAT16 is determined when the volume is formatted, and is stored in a 16-bit field. For a given number RDE and sector size SS, the number RDS of root directory sectors is RDS = ceil((RDE × 32) / SS), and RDE is normally chosen to fill these sectors, i.e., RDE × 32 = RDS × SS. FAT12 and FAT16 media typically use 512 root directory entries on non-floppy media. Some third-party tools, like mkdosfs, allow the user to set this parameter.[37]

FAT32 edit

FAT32
Developer(s)Microsoft, Caldera
IntroducedAugust 1996 (Windows 95 OSR2)
Partition IDsMBR/EBR:
Limits
Min volume size
  • 32 MB – 4.5 KB (with 65525 clusters and 512 byte sectors)
  • 256 MB – 36 KB (with 65525 clusters and 4 KB sectors)
Max volume size
  • TB (with 512 byte sectors)
  • 8 TB (with 2 KB sectors and 32 KB clusters)
  • 16 TB (with 4 KB sectors and 64 KB clusters)
Max file size
  • 2,147,483,647 bytes (2 GiB − 1 byte) (without LFS)
  • 4,294,967,295 bytes (4 GiB − 1 byte)[1] (with LFS)
  • 274,877,906,943 bytes (256 GiB − 1 byte) (only with FAT32+[34])
File size granularity1 byte
Max no. of files268,173,300 for 32 KB clusters
Max filename length8.3 filename with OEM characters,
255 UCS-2 characters[nb 1] when using LFN
Max directory depth32 levels or 66 characters (with CDS),
60 levels or more (without CDS)
Features
Dates recorded
  • Modified date/time, creation date/time (DOS 7.0 and higher only),
  • access date (only available with ACCDATE enabled),[2]
  • deletion date/time (only with DELWATCH 2)
Date range1980-01-01 to 2099-12-31 (2107-12-31)
Date resolution
  • 2 seconds for last modified time,
  • 10 ms for creation time,
  • 1 day for access date,
  • 2 seconds for deletion time
AttributesRead-only, hidden, system, volume, directory, archive
File system
permissions
Partial, only with DR-DOS, REAL/32 and 4690 OS
Transparent
compression
Yes

In order to overcome the volume size limit of FAT16, while at the same time allowing DOS real-mode code to handle the format, Microsoft designed a new version of the file system, FAT32, which supported an increased number of possible clusters, but could reuse most of the existing code, so that the conventional memory footprint was increased by less than 5 KB under DOS.[38] Cluster values are represented by 32-bit numbers, of which 28 bits are used to hold the cluster number.

Maximal sizes edit

The FAT32 boot sector uses a 32-bit field for the sector count, limiting the maximal FAT32 volume size to 2 terabytes with a sector size of 512 bytes. The maximum FAT32 volume size is 16 TB with a sector size of 4,096 bytes.[39][40] The built-in Windows shell disk format tool on Windows NT arbitrarily only supports volume sizes up to 32 GB,[nb 4] but Windows supports reading and writing to preexisting larger FAT32 volumes, and these can be created with the command prompt, PowerShell or third-party tools,[42] or by formatting the volume on a non-Windows system or on a Windows 9x system with FAT32 support and then transferring it to the Windows NT system.

The maximal possible size for a file on a FAT32 volume is 4 GB minus 1 byte, or 4,294,967,295 (232 − 1) bytes. This limit is a consequence of the 4-byte file length entry in the directory table and would also affect relatively huge FAT16 partitions enabled by a sufficient sector size.

Like FAT12 and FAT16, FAT32 does not include direct built-in support for long filenames, but FAT32 volumes can optionally hold VFAT long filenames in addition to short filenames in exactly the same way as VFAT long filenames have been optionally implemented for FAT12 and FAT16 volumes.

Development edit

FAT32 was introduced with Windows 95 OSR2(MS-DOS 7.1) in 1996, although reformatting was needed to use it, and DriveSpace 3 (the version that came with Windows 95 OSR2 and Windows 98) never supported it. Windows 98 introduced a utility to convert existing hard disks from FAT16 to FAT32 without loss of data.

In the Windows NT line, native support for FAT32 arrived in Windows 2000. A free FAT32 driver for Windows NT 4.0 was available from Winternals, a company later acquired by Microsoft. The acquisition of the driver from official sources is no longer possible. Since 1998, Caldera's dynamically loadable DRFAT32 driver could be used to enable FAT32 support in DR-DOS.[43][44] The first version of DR-DOS to natively support FAT32 and LBA access was OEM DR-DOS 7.04 in 1999. That same year IMS introduced native FAT32 support with REAL/32 7.90, and IBM 4690 OS added FAT32 support with version 2.[45] Ahead Software provided another dynamically loadable FAT32.EXE driver for DR-DOS 7.03 with Nero Burning ROM in 2004. IBM introduced native FAT32 support with OEM PC DOS 7.1 in 1999.

Two partition types have been reserved for FAT32 partitions, 0x0B and 0x0C. The latter type is also named FAT32X in order to indicate usage of LBA disk access instead of CHS.[43][46][47][48][49] On such partitions, CHS-related geometry entries, namely the CHS sector addresses in the MBR as well as the number of sectors per track and the number of heads in the EBPB record, may contain no or misleading values and should not be used.[50][48][49]

Extensions edit

Extended attributes edit

OS/2 heavily depends on extended attributes (EAs) and stores them in a hidden file called "EA␠DATA.␠SF" in the root directory of the FAT12 or FAT16 volume. This file is indexed by two previously reserved bytes in the file's (or directory's) directory entry at offset 0x14.[51] In the FAT32 format, these bytes hold the upper 16 bits of the starting cluster number of the file or directory, hence making it impossible to store OS/2 EAs on FAT32 using this method.

However, the third-party FAT32 installable file system (IFS) driver FAT32.IFS version 0.70 and higher by Henk Kelder & Netlabs for OS/2, eComStation and ArcaOS stores extended attributes in extra files with filenames having the string "␠EA.␠SF" appended to the regular filename of the file to which they belong. The driver also utilizes the byte at offset 0x0C in directory entries to store a special mark byte indicating the presence of extended attributes to help speed up things.[52][53] (This extension is critically incompatible with the FAT32+ method to store files larger than 4 GB minus 1 on FAT32 volumes.)[34]

Extended attributes are accessible via the Workplace Shell desktop, through REXX scripts, and many system GUI and command-line utilities (such as 4OS2).[54]

To accommodate its OS/2 subsystem, Windows NT supports the handling of extended attributes in HPFS, NTFS, FAT12 and FAT16. It stores EAs on FAT12, FAT16 and HPFS using exactly the same scheme as OS/2, but does not support any other kind of ADS as held on NTFS volumes. Trying to copy a file with any ADS other than EAs from an NTFS volume to a FAT or HPFS volume gives a warning message with the names of the ADSs that will be lost. It does not support the FAT32.IFS method to store EAs on FAT32 volumes.

Windows 2000 onward acts exactly as Windows NT, except that it ignores EAs when copying to FAT32 without any warning (but shows the warning for other ADSs, like "Macintosh Finder Info" and "Macintosh Resource Fork").

Cygwin uses "EA␠DATA.␠SF" files as well.

Long file names edit

One of the user experience goals for the designers of Windows 95 was the ability to use long filenames (LFNs—up to 255 UTF-16 code units long),[nb 1] in addition to classic 8.3 filenames (SFNs). For backward and forward compatibility, LFNs were implemented as an optional extension on top of the existing FAT file system structures using a workaround in the way directory entries are laid out.

This transparent method to store long file names in the existing FAT file systems without altering their data structures is usually known as VFAT (for "Virtual FAT") after the Windows 95 virtual device driver.[nb 5]

Non VFAT-enabled operating systems can still access the files under their short file name alias without restrictions; however, the associated long file names may be lost when files with long filenames are copied under non VFAT-aware operating systems.

In Windows NT, support for VFAT long filenames began with version 3.5.

Linux provides a VFAT filesystem driver to work with FAT volumes with VFAT long filenames. For some time, a UVFAT driver was available to provide combined support for UMSDOS-style permissions with VFAT long filenames.

OS/2 added long filename support to FAT using extended attributes (EA) before the introduction of VFAT. Thus, VFAT long filenames are invisible to OS/2, and EA long filenames are invisible to Windows; therefore, experienced users of both operating systems would have to manually rename the files.

Human68K supported up to 18.3 filenames and (Shift JIS) Kanji characters in a proprietary FAT file system variant.

In order to support Java applications, the FlexOS-based IBM 4690 OS version 2 introduced its own virtual file system (VFS) architecture to store long filenames in the FAT file system in a backwards-compatible fashion. If enabled, the virtual filenames (VFN) are available under separate logical drive letters, whereas the real filenames (RFN) remain available under the original drive letters.[55]

Forks and alternate data streams edit

The FAT file system itself is not designed for supporting alternate data streams (ADS), but some operating systems that heavily depend on them have devised various methods for handling them on FAT volumes. Such methods either store the additional information in extra files and directories (classic Mac OS and macOS), or give new semantics to previously unused fields of the FAT on-disk data structures (OS/2 and Windows NT).

Mac OS using PC Exchange stores its various dates, file attributes and long filenames in a hidden file called "FINDER.DAT", and resource forks (a common Mac OS ADS) in a subdirectory called "RESOURCE.FRK", in every directory where they are used. From PC Exchange 2.1 onwards, they store the Mac OS long filenames as standard FAT long filenames and convert FAT filenames longer than 31 characters to unique 31-character filenames, which can then be made visible to Macintosh applications.

macOS stores resource forks and metadata (file attributes, other ADS) using AppleDouble format in a hidden file with a name constructed from the owner filename prefixed with "._", and Finder stores some folder and file metadata in a hidden file called ".DS_Store" (but note that Finder uses .DS_Store even on macOS' native filesystem, HFS+).

UMSDOS permissions and filenames edit

Early Linux distributions also supported a format known as UMSDOS, a FAT variant with Unix file attributes (such as long file name and access permissions) stored in a separate file called "--linux-.---". UMSDOS fell into disuse after VFAT was released and it is not enabled by default in Linux from version 2.5.7 onwards.[56] For some time, Linux also provided combined support for UMSDOS-style permissions and VFAT long filenames through UVFAT.

FAT+ edit

In 2007 the open FAT+ draft proposed how to store larger files up to 256 GB minus 1 byte, or 274,877,906,943 (238 − 1) bytes, on slightly modified and otherwise backward-compatible FAT32 volumes,[34] but imposes a risk that disk tools or FAT32 implementations not aware of this extension may truncate or delete files exceeding the normal FAT32 file size limit. Support for FAT32+ and FAT16+ is limited to some versions of DR-DOS and not available in mainstream operating systems.[57] (This extension is critically incompatible with the /EAS option of the FAT32.IFS method to store OS/2 extended attributes on FAT32 volumes.)

Derivatives edit

Turbo FAT edit

In its NetWare File System (NWFS) Novell implemented a heavily modified variant of a FAT file system for the NetWare operating system. For larger files it utilized a performance feature named Turbo FAT.

FATX edit

FATX is a family of file systems designed for Microsoft's Xbox video game console hard disk drives and memory cards,[58][59] introduced in 2001.

While resembling the same basic design ideas as FAT16 and FAT32, the FATX16 and FATX32 on-disk structures are simplified, but fundamentally incompatible with normal FAT16 and FAT32 file systems, making it impossible for normal FAT file system drivers to mount such volumes.

The non-bootable superblock sector is 4 KB in size and holds an 18 byte large BPB-like structure completely different from normal BPBs. Clusters are typically 16 KB in size and there is only one copy of the FAT on the Xbox. Directory entries are 64 bytes in size instead of the normal 32 bytes. Files can have filenames up to 42 characters long using the OEM character set and be up to 4 GB minus 1 byte in size. The on-disk timestamps hold creation, modification and access dates and times but differ from FAT: in FAT, the epoch is 1980; in FATX, the epoch is 2000. On the Xbox 360, the epoch is 1980.[60]

exFAT edit

exFAT is a file system introduced with Windows Embedded CE 6.0 in November 2006 and brought to the Windows NT family with Vista Service Pack 1 and Windows XP Service Pack 3 (or separate installation of Windows XP Update KB955704). It is loosely based on the File Allocation Table architecture, but incompatible, proprietary and protected by patents.[61]

exFAT is intended for use on flash drives and memory cards such as SDXC and Memory Stick XC, where FAT32 is otherwise used. Vendors usually pre-format SDXC cards with it. Its main benefit is its exceeding of the 4 GB file size limit, as file size references are stored with eight instead of four bytes, increasing the limit to 264 − 1 bytes.

Microsoft's GUI and command-line format utilities offer it as an alternative to NTFS (and, for smaller partitions, to FAT16B and FAT32). The MBR partition type is 0x07 (the same as used for IFS, HPFS, and NTFS). Logical geometry information located in the VBR is stored in a format not resembling any kind of BPB.

In early 2010, the file system was reverse-engineered by the SANS Institute.[62] On August 28, 2019, Microsoft published the technical specification for exFAT so that it can be used in the Linux kernel and other operating systems.[63]

Patents edit

Microsoft applied for, and was granted, a series of patents for key parts of the FAT file system in the mid-1990s. All four pertain to long-filename extensions to FAT first seen in Windows 95: U.S. patent 5,579,517,[64] U.S. patent 5,745,902,[65] U.S. patent 5,758,352,[66] U.S. patent 6,286,013 (all expired since 2013).[67]

On December 3, 2003, Microsoft announced[68] that it would be offering licenses for use of its FAT specification and "associated intellectual property", at the cost of a US$0.25 royalty per unit sold, with a US$250,000 maximum royalty per license agreement.[69] To this end, Microsoft cited four patents on the FAT file system as the basis of its intellectual property claims.

In the EFI FAT32 specification,[10] Microsoft specifically grants a number of rights, which many readers have interpreted as permitting operating system vendors to implement FAT.[70] Non-Microsoft patents affecting FAT include: U.S. patent 5,367,671, specific to the OS/2 extended object attributes (expired in 2011).[71]

Challenges and lawsuits edit

The Public Patent Foundation (PUBPAT) submitted evidence to the US Patent and Trademark Office (USPTO) in 2004 disputing the validity of U.S. patent 5,579,517,[64] including prior art references from Xerox and IBM.[72] The USPTO opened an investigation and concluded by rejecting all claims in the patent.[73] The next year, the USPTO further announced that following the re-examination process, it affirmed the rejection of '517 and additionally found U.S. patent 5,758,352[66] invalid on the grounds that the patent had incorrect assignees.

However, in 2006, the USPTO ruled that features of Microsoft's implementation of the FAT system were "novel and non-obvious", reversing both earlier decisions and leaving the patents valid.[74]

In February 2009, Microsoft filed a patent infringement lawsuit against TomTom alleging that the device maker's products infringe on patents related to VFAT long filenames. As some TomTom products are based on Linux, this marked the first time that Microsoft tried to enforce its patents against the Linux platform.[75] The lawsuit was settled out of court the following month with an agreement that Microsoft be given access to four of TomTom's patents, that TomTom will drop support for the VFAT long filenames from its products, and that in return Microsoft not seek legal action against TomTom for the five-year duration of the settlement agreement.[76]

In October 2010, Microsoft filed a patent infringement lawsuit against Motorola alleging several patents (including two of the VFAT patents) were not licensed for use in the Android operating system.[77] They also submitted a complaint to the ITC.[78] Developers of open source software have designed methods intended to circumvent Microsoft's patents.[79][80]

In 2013, patent EP0618540 "common name space for long and short filenames" (expired since 2014[81]) was invalidated in Germany.[82] After the appeal was withdrawn, this judgment became final on the 28th October 2015.[83]

See also edit

Notes edit

  1. ^ a b c d e f Since Windows 2000, Microsoft Windows uses UTF-16 instead of UCS-2 for the internal "Unicode". In UTF-16, a "character" (code point) may take up two code units.
  2. ^ a b Sources differ in regard to the first NCR data entry terminal integrating support for the FAT file system. According to Stephen Manes and Paul Andrews, "Gates", development was for a NCR 8200 in late 1977, incorrectly classified as a floppy-based upgrade to the NCR 7200, which had been released in 1975-11 (model I and IV) and was built around an Intel 8080 8-bit processor, but was cassette-based only. However, the NCR Century 8200 was a 16-bit minicomputer, onto which several data entry terminals could be hooked up. Marc McDonald even remembered a NCR 8500, a mainframe of the Criterion series, which can be ruled out as well. Announced 1977-10 for shipment in 1978-02, NCR also introduced the NCR I-8100 series including the 8080-based NCR I-8130 and NCR I-8150 models of small business systems featuring dual floppy disks. Other sources indicate that either the NCR 7200 series itself or the successor series were the actual target platform. NCR Basic Plus 6 (based on Microsoft Extended BASIC-80) became available for the cassette-based NCR 7200 model VI in Q1/1977. The NCR 7500 series was released in 1978, based on a similar 8080 hardware, but now including NCR 7520 and 7530 models featuring 8-inch diskettes. NCR Basic +6, a precursor or adaptation of Standalone Disk BASIC-80 was available for them at least since 1979. One source claims that a special NCR 7200 model variant with two 8-inch diskettes and Microsoft BASIC existed and was imported by NCR Sydney into Australia the least.
  3. ^ DR-DOS is able to boot off FAT12/FAT16 logical sectored media with logical sector sizes up to 1024 bytes.
  4. ^ This was a decision taken by the developer in question, who assumed his decision would be revised later, something that never happened.[41]
  5. ^ A driver named VFAT appeared before Windows 95, in Windows for Workgroups 3.11, but this older version was only used for implementing 32-bit file access and did not support long file names.

References edit

  1. ^ a b "File Systems". Microsoft TechNet. 2001. from the original on 2011-08-12. Retrieved 2011-07-31.
  2. ^ a b c d e Microsoft (2006-11-15). Windows 95 CD-ROM CONFIG.TXT File 2020-07-31 at the Wayback Machine Article 135481, Revision: 1.1, retrieved 2011-12-22: "For each hard disk, specifies whether to record the date that files are last accessed. Last access dates are turned off for all drives when your computer is started in safe mode, and are not maintained for floppy disks by default. Syntax: ACCDATE=drive1+|- [drive2+|-]..."
  3. ^ a b Bhat, W. A. (2010). "Review of FAT data structure of FAT32 file system". Oriental Journal of Computer Science and Technology. 3 (1): 161–164. S2CID 58178285.
  4. ^ "Comparing NTFS and FAT file systems". Microsoft. from the original on 2016-06-20. Retrieved 2014-01-27.
  5. ^ . www.wizcode.com. Archived from the original on September 25, 2015. Retrieved September 24, 2015.
  6. ^ "Volume and File Structure of Disk Cartridges for Information Interchange". Standard ECMA-107 (2nd ed., June 1995). ECMA. 1995. from the original on 2018-10-07. Retrieved 2011-07-30.
  7. ^ "Information technology – Volume and file structure of disk cartridges for information interchange". ISO/IEC 9293:1994. ISO catalogue. 1994. from the original on 2012-01-17. Retrieved 2012-01-06.
  8. ^ "Information processing – Volume and file structure of flexible disk cartridges for information interchange". ISO 9293:1987. ISO catalogue. 1987. from the original on 2012-01-17. Retrieved 2012-01-06.
  9. ^ Reynolds, Aaron R.; Adler, Dennis R.; Lipe, Ralph A.; Pedrizetti, Ray D.; Parsons, Jeffrey T.; Arun, Rasipuram V. (1998-05-26). "Common name space for long and short filenames". US Patent 5758352. Retrieved 2012-01-19.
  10. ^ a b "Microsoft Extensible Firmware Initiative FAT32 File System Specification, FAT: General Overview of On-Disk Format". Microsoft. 2011-03-30. from the original on 2021-07-23. Retrieved 2018-12-21.
  11. ^ "How to Convert a Drive from FAT32 to NTFS without Data Loss". WindowsLoop. 2021-07-11. from the original on 2021-08-08. Retrieved 2021-08-08.
  12. ^ JEIDA/JEITA/CIPA (2010). (PDF). Archived from the original (PDF) on September 30, 2013. Retrieved 2011-04-13.
  13. ^ a b c d e f g h i j Xerox BASIC-80 – basic-80 reference manual (PDF). 5.0. Microsoft, Xerox. 1979. 610P70641. (PDF) from the original on 2016-03-04. Retrieved 2014-06-02. (NB. For Microsoft (Standalone Disk / Disk / Extended / 8K) BASIC-80, (Standalone Disk / Extended) BASIC-86, BASIC Compiler, release 5.0)
  14. ^ a b c d e f g h i j MICROSOFT BASIC-80 version 5.0 reference manual / BASIC-80 Interpreter and Compiler Addendum Release 5.1 (PDF). 5.1. Microsoft. 1979. (PDF) from the original on 2016-03-04. Retrieved 2014-06-02. (NB. For Microsoft (Standalone Disk / Disk / Extended / 8K) BASIC-80, (Standalone Disk / Extended) BASIC-86, BASIC Compiler, release 5.1)
  15. ^ a b c d e f g Duncan, Ray; Bostwick, Steve; Burgoyne, Keith (1988). The MS-DOS Encyclopedia: versions 1.0 through 3.2 (Completely reworked ed.). Redmond, Washington, USA: Microsoft Press. ISBN 1-55615-049-0. LCCN 87-21452. OCLC 16581341. (xix+1570 pages; 26 cm) (NB. This edition was published in 1988 after extensive rework of the withdrawn 1986 first edition by a different team of authors. [1] 2018-10-14 at the Wayback Machine)
  16. ^ a b Manes, Stephen; Andrews, Paul (1993). Gates: How Microsoft's Mogul Reinvented an Industry—and Made Himself the Richest Man in America. Doubleday. ISBN 0-385-42075-7.
  17. ^ a b c d Hunter, David (1983). . Softalk for the IBM Personal Computer (March 1983). Archived from the original on 2019-09-06. Retrieved 2014-06-02.
  18. ^ Schulman, Andrew; Brown, Ralf D.; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994) [November 1993]. Undocumented DOS: A programmer's guide to reserved MS-DOS functions and data structures - expanded to include MS-DOS 6, Novell DOS and Windows 3.1 (2 ed.). Reading, Massachusetts: Addison Wesley. p. 11. ISBN 0-201-63287-X. (xviii+856+vi pages, 3.5"-floppy) Errata:
  19. ^ a b Paterson, Tim (2007-09-30). "Design of DOS". DosMan Drivel. from the original on 2013-01-20. Retrieved 2011-07-04.
  20. ^ Seattle Computer Products (August 1980). "86-DOS - 8086 OPERATING SYSTEM - $95". Byte (Advertisement). Vol. 5, no. 8. BYTE Publications Inc. p. 173. ISSN 0360-5280. CODEN BYTEDJ. Retrieved 2013-08-18. [4] 2020-02-01 at the Wayback Machine (NB. The SCP advertisement already calls the product 86-DOS, but does not mention a specific version number. Version 0.3 is known to be called 86-DOS already, so the name change must have taken place either for version 0.2 or immediately afterwards in August 1980.)
  21. ^ a b c d Seattle Computer Products (1981). "SCP 86-DOS 1.0 Addendum" (PDF). (PDF) from the original on 2012-10-03. Retrieved 2013-03-10.
  22. ^ Wallace, James; Erickson, Jim; (1992); Hard Drive: Bill Gates and the Making of the Microsoft Empire, John Wiley & Sons, ISBN 0-471-56886-4
  23. ^ Norton, Peter; (1986); Inside the IBM PC, Revised and Enlarged, Brady, ISBN 0-89303-583-1, p. 157
  24. ^ Jenkinson, Brian; Sammes, A. J. (2000). Forensic Computing: A Practitioner's Guide (Practitioner Series). Berlin: Springer. p. 157. ISBN 1-85233-299-9. ... only 2^12 (that is, 4096) allocation units or clusters can be addressed. In fact, the number is less than this, since 000h and 001h are not used and FF0h to FFFh are reserved or used for other purposes, leaving 002h to FEFh (2 to 4079) as the range of possible clusters.
  25. ^ Paterson, Tim (1983). . Byte. Archived from the original on July 20, 2011. Retrieved 2011-07-18. The numbering starts with 2; the first two numbers, 0 and 1, are reserved.
  26. ^ IBM (1984). IBM PC DOS 3.0 announcement letter.
  27. ^ IBM (1985). IBM PC DOS Technical Reference. First Edition, P/N 6024181, dated February 1985.
  28. ^ "Microsoft Knowledge Base article: "MS-DOS Partitioning Summary"". from the original on 2018-06-12. Retrieved 2018-06-02.
  29. ^ a b c FYI – Installing DR DOS on NEC DOS 3.3 Partitions, Novell, 1993-01-05, FYI.M.1101, from the original on 2016-03-04, retrieved 2014-08-12
  30. ^ Brouwer, Andries. "List of partition identifiers for PCs". from the original on 2019-04-23. Retrieved 2012-01-11.
  31. ^ "Q78407: Wyse DOS 3.3 Partitions Incompatible with MS-DOS 5.x and 6.x". Microsoft. 2000-12-17.[dead link] Alt URL
  32. ^ "Q68176: Upgrading Pre-4.0 Systems with Logical Drive(s) > 32 MB". Microsoft. 2000-12-17.[dead link] Alt URL
  33. ^ Brouwer, Andries. "Properties of partition tables". from the original on 2019-04-23. Retrieved 2012-01-11.
  34. ^ a b c d Kuhnt, Udo; Georgiev, Luchezar I.; Davis, Jeremy (2007). (2 ed.). Archived from the original (FATPLUS.TXT) on 2015-02-19. Retrieved 2015-08-05.
  35. ^ "Dskprobe Overview: Data Recovery". Microsoft TechNet. 2003-03-28. from the original on 2011-07-03. Retrieved 2011-08-03.
  36. ^ "Errors Creating Files or Folders in the Root Directory". Microsoft Help and Support. 2004-12-16. from the original on 2020-07-31. Retrieved 2006-10-14.
  37. ^ "mkdosfs man page". from the original on 2006-10-07. Retrieved 2006-11-21.
  38. ^ "Windows 98 Resource Kit – Chapter 10 – Disks and File Systems". Microsoft TechNet. 1998. from the original on 2012-05-01. Retrieved 2012-07-16.
  39. ^ "Limitations of FAT32 File System". Microsoft Knowledge Base. 2007-03-26. from the original on 2020-07-31. Retrieved 2011-08-21. Clusters cannot be 64 kilobytes (KB) or larger
  40. ^ "Limitations of the FAT32 File System in Windows XP". Microsoft Knowledge Base. 2007-12-01. from the original on 2020-07-31. Retrieved 2011-08-21.
  41. ^ "Explained: The thinking behind the 32GB Windows Format limit on FAT32".
  42. ^ Glenn, Walter (2017-07-20). "How to Format USB Drives Larger Than 32GB With FAT32 on Windows". How-To Geek. from the original on 2021-01-26. Retrieved 2021-01-26.
  43. ^ a b README.TXT – Caldera DR-DOS FAT32 Enabled Boot Disk (DRFAT32). Caldera, Inc. 1998-07-24.
  44. ^ DRFAT32.SYS R1.00 INT 13h Interface for FAT32 Redirector, Caldera, Inc., 1998-09-11
  45. ^ IBM; 4690 OS User's Guide Version 5.2, IBM document SC30-4134-01, 2008-01-10 ([5] 2022-01-25 at the Wayback Machine)
  46. ^ Karpowitz, Christina (1998-09-23). . PowerQuest. Archived from the original on 1999-02-08. Retrieved 2015-04-17.
  47. ^ Livingston, Brian (1998-10-28). "FAT-32X may operate differently than FAT-32 on large hard drives". InfoWorld. Vol. 20, no. 43. from the original on 2015-11-12. Retrieved 2015-04-17.
  48. ^ a b Duitz, Neal (2001-07-17). . Win98 Private FAQ, Windows 98 Consumer Preview Program. Archived from the original on 2004-06-13. Retrieved 2015-04-17.
  49. ^ a b Costanzo, Lance (1998-05-14). . Archived from the original on 1998-05-21. Retrieved 2015-04-17.
  50. ^ Steinberg, David (1998-05-01). "What is a FAT32X partition?". Tech Tip / FAQ. PowerQuest Technical Support. from the original on 2015-09-21. Retrieved 2015-04-17.
  51. ^ Eager, Bob; Tavi Systems (October 28, 2000); Implementation of extended attributes on the FAT file system ([6] June 13, 2006, at the Wayback Machine)
  52. ^ Kelder, Henk; (2003); FAT32.TXT for FAT32.IFS version 0.9.13." ([7] 2013-05-11 at the Wayback Machine): "This byte [...] is not modified while running Windows 95 and neighter [sic] by SCANDISK or DEFRAG. [...] If another program sets the value to 0x00 for a file that has EAs these EAs will no longer be found using DosFindFirst/Next calls only. The other OS/2 calls for retrieving EAs (DosQueryPathInfo, DosQueryFileInfo and DosEnumAttribute) do not rely on this byte. Also the opposite could [...] occur. [...] In this situation only the performance of directory scans will be decreased. Both situations [...] are corrected by CHKDSK".
  53. ^ Kelder, Henk; FAT32.TXT for FAT32.IFS version 0.74 (. Archived from the original on March 30, 2012. Retrieved January 14, 2012.). Comment: This older version of the README file still discusses the old 0xEA and 0xEC magic values.
  54. ^ Eager, Bob (2000-10-28). . Tavi OS/2 pages. Archived from the original on 2006-06-13. Retrieved 2006-10-14.
  55. ^ IBM; 4690 OS Programming Guide Version 5.2, IBM document SC30-4137-01, 2007-12-06 ([8] 2022-01-25 at the Wayback Machine)
  56. ^ "Release notes for v2.5.7". The Linux Kernel archives. 2002-03-12. from the original on 2006-04-15. Retrieved 2006-10-14.
  57. ^ Kuhnt, Udo (2011-07-21). "DR-DOS/OpenDOS Enhancement Project". from the original on 2016-07-06. Retrieved 2015-04-20.
  58. ^ "FATX Specification". free60 wiki. from the original on 2018-07-26. Retrieved 2011-08-16.
  59. ^ de Quincey, Andrew; Murray-Pitts, Lucien (2008-08-29). . 0.13. Xbox-Linux project. Archived from the original on 2010-06-17. Retrieved 2014-05-25.
  60. ^ Steil, Michael (2008-02-26) [2003]. . Xbox-Linux project. Archived from the original on 2010-06-17. Retrieved 2014-05-25.
  61. ^ Microsoft. . Microsoft. Archived from the original on May 7, 2013. Retrieved 2013-04-23.
  62. ^ "Reverse Engineering the Microsoft exFAT File System | SANS Institute". from the original on 2021-04-21. Retrieved 2021-03-20.
  63. ^ "exFAT in the Linux kernel? Yes!". Microsoft Open Source Blog. 2019-08-28. from the original on 2019-09-01. Retrieved 2019-10-06.
  64. ^ a b US 5579517, Reynolds, Aaron R.; Adler, Dennis R. & Lipe, Ralph A. et al., "Common name space for long and short filenames", issued 1996 
  65. ^ US 5745902, Miller, Thomas J. & Kimura, Gary D., "Method and system for accessing a file using file names having different file name formats", issued 1998 
  66. ^ a b US 5758352, Reynolds, Aaron R.; Adler, Dennis R. & Lipe, Ralph A. et al., "Common name space for long and short filenames", issued 1998 
  67. ^ US 6286013, Reynolds, Aaron R.; Adler, Dennis R. & Lipe, Ralph A. et al., "Method and system for providing a common name space for long and short file names in an operating system", issued 1996 
  68. ^ Microsoft.com August 22, 2009, at the Wayback Machine
  69. ^ "FAT File System". Intellectual Property Licensing. Microsoft. Archived from the original on 2016-09-21.
  70. ^ Garrett, Matthew (2012-01-19). "EFI and Linux: the future is here, and it's awful". linux.conf.au. YouTube. Archived from the original on 2021-11-02. Retrieved 2014-01-12.
  71. ^ US 5367671, Feigenbaum, Barry A. & Miro, Felix, "System for accessing extended object attribute (EA) data through file name or EA handle linkages in path tables", issued 1994 
  72. ^ Ravicher, Daniel B. (2004-04-15). "PUBPAT's Request for Reexamination of Microsoft's FAT Patent" (PDF). Public Patent Foundation. (PDF) from the original on 2013-06-07. Retrieved 2014-01-12.
  73. ^ USPTO (2004-09-30). "Patent Office's Office Action Rejecting Microsoft FAT Patent" (PDF). Public Patent Foundation. (PDF) from the original on 2013-05-26. Retrieved 2014-01-12.
  74. ^ Broache, Anne (2006-01-10). "Microsoft's file system patent upheld". CNET News. from the original on 2016-05-03. Retrieved 2016-04-07.
  75. ^ Paul, Ryan (2009-02-25). "Microsoft suit over FAT patents could open OSS Pandora's Box". arstechnica.com. from the original on 2009-02-27. Retrieved 2009-02-28.
  76. ^ Fried, Ina (2009-03-30). "Microsoft, TomTom settle patent dispute". cnet.com. from the original on 2009-08-05. Retrieved 2009-08-22.
  77. ^ "Microsoft Motorola Patent Suit". 2010-10-01. from the original on 2010-10-06. Retrieved 2010-10-02.
  78. ^ Protalinski, Emil (2010-10-01). "Microsoft sues Motorola, citing Android patent infringement". arstechnica.com. from the original on 2010-10-02. Retrieved 2010-10-02.
  79. ^ Paul, Ryan (2009-07-02). "New Linux patch could circumvent Microsoft's FAT patents". ArsTechnica.com. from the original on 2013-11-01. Retrieved 2013-10-30.
  80. ^ Brown, Eric (2009-07-02). . DesktopLinux.Com. Archived from the original on 2013-01-31. Retrieved 2009-08-23.
  81. ^ [9], "Common name space for long and short filenames", issued 1994-03-31  . Archived from the original on 2020-03-28. Retrieved 2021-05-07.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  82. ^ Müller, Florian (2013-12-05). "Federal Patent Court of Germany invalidates Microsoft FAT patent, appeals court may disagree". FOSS Patents. from the original on 2014-01-04. Retrieved 2014-01-12.
  83. ^ Labesius, Stefan (2017-05-28). "Bundespatentgericht erklärt VFAT-Patent erneut für nichtig". ifrOSS. from the original on 2019-08-02. Retrieved 2019-08-02.

External links edit

  • Description of the FAT32 File System: Microsoft Knowledge Base Article 154997
  • MS-DOS: Directory and Subdirectory Limitations: Microsoft Knowledge Base Article 39927
  • Overview of FAT, HPFS, and NTFS File Systems: Microsoft Knowledge Base Article 100108
  • Microsoft Technet; , copy made by Internet Archive Wayback Machine of an article with summary of limits in FAT32 which is no longer available on Microsoft website.
  • Chen, Raymond;
  • : Microsoft Knowledge Base Article 263044, copy made by Internet Archive Wayback Machine. Explains inability to work with extremely large volumes under Windows 95/98.
  • , copy made by the Internet Archive's Wayback Machine of an article with summary of limits in FAT32 which is no longer available on Microsoft website.

file, allocation, table, further, information, design, file, system, file, system, developed, personal, computers, default, filesystem, windows, operating, systems, originally, developed, 1977, floppy, disks, adapted, hard, disks, other, devices, increase, dis. Further information Design of the FAT file system File Allocation Table FAT is a file system developed for personal computers and was the default filesystem for MS DOS and Windows 9x operating systems 3 Originally developed in 1977 for use on floppy disks it was adapted for use on hard disks and other devices The increase in disk drives capacity required three major variants FAT12 FAT16 and FAT32 FAT was replaced with NTFS as the default file system on Microsoft operating systems starting with Windows XP 4 Nevertheless FAT continues to be used on flash and other solid state memory cards and modules including USB flash drives many portable and embedded devices because of its compatibility and ease of implementation 5 FATDeveloper s Microsoft NCR SCP IBM Compaq Digital Research Novell CalderaFull nameFile Allocation TableVariants8 bit FAT FAT12 FAT16 FAT16B FAT32 ExFAT FATX FAT Introduced1977 1977 with Standalone Disk BASIC 80Partition IDsMBR EBR FAT12 abbr title Values in C notation for hexadecimal numbers 0x abbr a href Partition type html PID 01h title Partition type 01 a e a Extended Attribute FAT16 abbr title Values in C notation for hexadecimal numbers 0x abbr a href Partition type html PID 04h title Partition type 04 a a href Partition type html PID 06h title Partition type 0x06 a a href Partition type html PID 0Eh title Partition type 0x0E a e a FAT32 abbr title 0x abbr a href Partition type html PID 0Bh title Partition type 0B a a href Partition type html PID 0Ch title Partition type 0x0C a e a BDP EBD0A0A2 B9E5 4433 87C0 68B6B72699C7StructuresDirectory contentsTableFile allocationLinked listBad blocksCluster taggingLimitsMax volume sizeFAT12 32 MB 256 MB for 64 KB clusters FAT16 2 GB 4 GB for 64 KB clusters FAT32 2 TB 16 TB for 4 KB sectors Max file size4 294 967 295 bytes 4 GB 1 with FAT16B and FAT32 1 Max no of filesFAT12 4 068 for 8 KB clustersFAT16 65 460 for 32 KB clustersFAT32 268 173 300 for 32 KB clustersMax filename length8 3 filename or 255 UCS 2 characters when using LFN nb 1 FeaturesDates recordedModified date time creation date time DOS 7 0 and higher only access date only available with ACCDATE enabled 2 deletion date time only with DELWATCH 2 Date range1980 01 01 to 2099 12 31 2107 12 31 Date resolution2 seconds for last modified time 10 ms for creation time 1 day for access date 2 seconds for deletion timeForksNot nativelyAttributesRead only hidden system volume directory archiveFile systempermissionsFAT12 FAT16 File directory and volume access rights for read write execute delete only with DR DOS PalmDOS Novell DOS OpenDOS FlexOS 4680 OS 4690 OS Concurrent DOS Multiuser DOS System Manager REAL 32 execute with only FlexOS 4680 OS 4690 OS individual file directory passwords not with FlexOS 4680 OS 4690 OS world group owner permission classes only with multiuser security loadedFAT32 Partial only with DR DOS REAL 32 and 4690 OSTransparentcompressionFAT12 FAT16 Per volume SuperStor Stacker DoubleSpace DriveSpaceFAT32 NoTransparentencryptionFAT12 FAT16 Per volume only with DR DOSFAT32 No Contents 1 Uses 1 1 Historical 1 2 Modern 2 Technical details 3 Variants 3 1 Original 8 bit FAT 3 2 FAT12 3 3 Initial FAT16 3 4 Logical sectored FAT 3 5 Final FAT16 3 6 FAT32 3 6 1 Maximal sizes 3 6 2 Development 4 Extensions 4 1 Extended attributes 4 2 Long file names 4 3 Forks and alternate data streams 4 4 UMSDOS permissions and filenames 4 5 FAT 5 Derivatives 5 1 Turbo FAT 5 2 FATX 5 3 exFAT 6 Patents 6 1 Challenges and lawsuits 7 See also 8 Notes 9 References 10 External linksUses editHistorical edit FAT was also used on hard disks throughout the DOS and Windows 9x eras Microsoft introduced NTFS with the Windows NT platform in 1993 but FAT remained the standard for the home user until the introduction of Windows XP in 2001 Windows Me was the final version of Windows to use FAT as its default file system For floppy disks FAT has been standardized as ECMA 107 6 and ISO IEC 9293 1994 7 superseding ISO 9293 1987 8 These standards cover FAT12 and FAT16 with only short 8 3 filename support long filenames with VFAT were partially patented 9 While FAT12 is used on floppy disks FAT16 and FAT32 are typically found on the larger media Modern edit FAT is used internally for the EFI system partition in the boot stage of EFI compliant computers 10 Hidden FAT filesystems are also used in the UEFI boot partition on modern PCs FAT is still used in drives expected to be used by multiple operating systems such as in shared Windows Linux and DOS environments Microsoft Windows additionally comes with a pre installed tool to convert a FAT file system into NTFS directly without the need to rewrite all files though this cannot be reversed easily 11 The FAT file system is used in removable media such as floppy disks super floppies memory and flash memory cards or USB flash drives FAT is supported by portable devices such as PDAs digital cameras camcorders media players and mobile phones 3 The DCF file system adopted by almost all digital cameras since 1998 defines a logical file system with 8 3 filenames and makes the use of either FAT12 FAT16 FAT32 or exFAT mandatory for its physical layer for compatibility 12 Technical details editMain article Design of the FAT file system The file system uses an index table stored on the device to identify chains of data storage areas associated with a file the File Allocation Table FAT The FAT is statically allocated at the time of formatting The table is a linked list of entries for each cluster a contiguous area of disk storage Each entry contains either the number of the next cluster in the file or else a marker indicating the end of the file unused disk space or special reserved areas of the disk The root directory of the disk contains the number of the first cluster of each file in that directory The operating system can then traverse the FAT looking up the cluster number of each successive part of the disk file as a cluster chain until the end of the file is reached Sub directories are implemented as special files containing the directory entries of their respective files Each entry in the FAT linked list is a fixed number of bits 12 16 or 32 The maximum size of a file or a disk drive that can be accessed is the product of the largest number that can be stored in the entries less a few values reserved to indicate unallocated space or the end of a list and the size of the disk cluster Even if only one byte of storage is needed to extend a file an entire cluster must be allocated to it and any single cluster can not hold more than a single file so large clusters waste much disk space if there are large numbers of small files Originally designed as an 8 bit file system the maximum number of clusters must increase as disk drive capacity increases and so the number of bits used to identify each cluster has grown The successive major variants of the FAT format are named after the number of table element bits 12 FAT12 16 FAT16 and 32 FAT32 Variants editThere are several variants of the FAT file system e g FAT12 FAT16 and FAT32 FAT16 refers to both the original group of FAT file systems with 16 bit wide cluster entries and also to later variants VFAT is an optional extension for long file names which can work on top of any FAT file system Volumes using VFAT long filenames can be read also by operating systems not supporting the VFAT extension Original 8 bit FAT edit 8 bit FATDeveloper s Microsoft NCR SCPFull name8 bit File Allocation TableIntroduced1977 1978 NCR Basic 6 for NCR1978 Standalone Disk BASIC 80 16 byte directory entries 13 14 1978 Standalone Disk BASIC 86 internal only 1979 06 04 Standalone Disk BASIC 86 for SCP 16 byte directory entries 1979 MIDAS 32 byte directory entries LimitsMax file size8 MBFile size granularityrecord granularity 128 bytes 13 14 Max filename length6 3 filename binary files 9 characters ASCII files 13 14 Max directory depthNo sub directoriesAllowed filenamecharactersASCII 0x00 and 0xFF not allowed in first character 13 14 FeaturesDates recordedNoAttributesWrite protected EBCDIC conversion read after write binary random rather than sequential file 13 14 The original FAT file system or FAT structure as it was called initially was designed and implemented by Marc McDonald 15 based on a series of discussions between McDonald and Bill Gates 15 It was introduced with 8 bit table elements 13 14 15 and valid data cluster numbers up to 0xBF 13 14 in a precursor to Microsoft s Standalone Disk BASIC 80 for an 8080 based successor nb 2 of the NCR 7200 model VI data entry terminal equipped with 8 inch 200 mm floppy disks in 1977 16 or 1978 nb 2 In 1978 Standalone Disk BASIC 80 was ported to the 8086 using an emulator on a DEC PDP 10 17 since no real 8086 systems were available at this time The FAT file system was also used in Microsoft s MDOS MIDAS 15 an operating system for 8080 Z80 platforms written by McDonald since 1979 The Standalone Disk BASIC version supported three FATs 13 14 18 whereas this was a parameter for MIDAS Reportedly MIDAS was also prepared to support 10 bit 12 bit and 16 bit FAT variants While the size of directory entries was 16 bytes in Standalone Disk BASIC 13 14 MIDAS instead occupied 32 bytes per entry Tim Paterson of Seattle Computer Products SCP was first introduced to Microsoft s FAT structure when he helped Bob O Rear adapting the Standalone Disk BASIC 86 emulator port onto SCP s S 100 bus 8086 CPU board prototype during a guest week at Microsoft in May 1979 17 The final product was shown at Lifeboat Associates booth stand at the National Computer Conference in New York 17 on June 4 7 1979 where Paterson learned about the more sophisticated FAT implementation in MDOS MIDAS 15 and McDonald talked to him about the design of the file system 16 FAT12 edit FAT12Developer s SCP Microsoft IBM Digital Research NovellFull name12 bit File Allocation TableIntroduced1980 07 QDOS 0 10 16 byte directory entries 1981 02 25 86 DOS 0 42 32 byte directory entries several reserved sectors c 1981 08 10 PC DOS 1 0 32 byte directory entries 1 reserved sector 1982 03 03 MS DOS 1 25 32 byte directory entries 1 reserved sector Partition IDsMBR EBR FAT12 abbr title Values in C notation for hexadecimal numbers 0x abbr a href Partition type html PID 01h title Partition type 01 a e a BDP EBD0A0A2 B9E5 4433 87C0 68B6B72699C7LimitsMax volume size16 MB with 4 KB clusters 32 MB with 8 KB clusters Max file sizeLimited by volume sizeFile size granularity1 byteMax no of files4 068 for 8 KB clustersMax filename length8 3 filename with OEM characters 255 UCS 2 characters nb 1 when using LFNMax directory depth32 levels or 66 characters with CDS 60 levels or more without CDS FeaturesDates recordedModified date not with 86 DOS before 0 42 modified time not with PC DOS 1 0 and 86 DOS creation date time DOS 7 0 and higher only access date only available with ACCDATE enabled 2 deletion date time only with DELWATCH 2 Date range1980 01 01 to 2099 12 31 2107 12 31 Date resolution2 seconds for last modified time 10 ms for creation time 1 day for access date 2 seconds for deletion timeAttributesRead only since DOS 2 0 hidden system volume since MS DOS 1 28 and PC DOS 2 0 directory since MS DOS 1 40 and PC DOS 2 0 archive since DOS 2 0 File systempermissionsFile directory and volume access rights for read write execute delete only with DR DOS PalmDOS Novell DOS OpenDOS FlexOS 4680 OS 4690 OS Concurrent DOS Multiuser DOS System Manager REAL 32 execute right only with FlexOS 4680 OS 4690 OS individual file directory passwords not with FlexOS 4680 OS 4690 OS world group owner permission classes only with multiuser security loadedTransparentcompressionPer volume SuperStor Stacker DoubleSpace DriveSpaceTransparentencryptionPer volume only with DR DOSBetween April and August 1980 while borrowing the FAT concept for SCP s own 8086 operating system QDOS 0 10 17 Tim Paterson extended the table elements to 12 bits 19 reduced the number of FATs to two redefined the semantics of some of the reserved cluster values and modified the disk layout so that the root directory was now located between the FAT and the data area for his implementation of FAT12 Paterson also increased the nine character 6 3 filename 13 14 length limit to eleven characters to support CP M style 8 3 filenames and File Control Blocks The format used in Microsoft Standalone Disk BASIC s 8 bit file system precursor was not supported by QDOS By August 1980 QDOS had been renamed 86 DOS 20 Starting with 86 DOS 0 42 the size and layout of directory entries was changed from 16 bytes to 32 bytes 21 in order to add a file date stamp 21 and increase the theoretical file size limit beyond the previous limit of 16 MB 21 86 DOS 1 00 became available in early 1981 Later in 1981 86 DOS evolved into Microsoft s MS DOS and IBM PC DOS 15 19 22 The capability to read previously formatted volumes with 16 byte directory entries 21 was dropped with MS DOS 1 20 FAT12 used 12 bit entries for the cluster addresses some values were reserved to mark the end of a chain of clusters to mark unusable areas of the disk or for other purposes so the maximum number of clusters was limited to 4078 23 24 To conserve disk space two 12 bit FAT entries used three consecutive 8 bit bytes on disk requiring manipulation to unpack the 12 bit values This was sufficient for the original floppy disk drives and small hard disks up to 32 megabytes The FAT16B version available with DOS 3 31 supported 32 bit sector numbers and so increased the volume size limit All the control structures fit inside the first track to avoid head movement during read and write operations Any bad sector in the control structures area would make the disk unusable The DOS formatting tool rejected such disks completely Bad sectors were allowed only in the file data area Clusters containing bad sectors were marked unusable with the reserved value 0xFF7 in the FAT While 86 DOS supported three disk formats 250 25 KB 616 KB and 1232 KB with FAT IDs 0xFF and 0xFE on 8 inch 200 mm floppy drives IBM PC DOS 1 0 released with the original IBM Personal Computer in 1981 supported only an 8 sector floppy format with a formatted capacity of 160 KB FAT ID 0xFE for single sided 5 25 inch floppy drives and PC DOS 1 1 added support for a double sided format with 320 KB FAT ID 0xFF PC DOS 2 0 introduced support for 9 sector floppy formats with 180 KB FAT ID 0xFC and 360 KB FAT ID 0xFD 86 DOS 1 00 and PC DOS 1 0 directory entries included only one date the last modified date PC DOS 1 1 added the last modified time PC DOS 1 x file attributes included a hidden bit and system bit with the remaining six bits undefined At this time DOS did not support sub directories but typically there were only a few dozen files on a diskette The PC XT was the first PC with an IBM supplied hard drive and PC DOS 2 0 supported that hard drive with FAT12 FAT ID 0xF8 The fixed assumption of 8 sectors per clusters on hard disks practically limited the maximum partition size to 16 MB for 512 byte sectors and 4 KB clusters The BIOS Parameter Block BPB was introduced with PC DOS 2 0 as well and this version also added read only archive volume label and directory attribute bits for hierarchical sub directories 25 MS DOS 3 0 introduced support for high density 1 2 MB 5 25 inch diskettes media descriptor 0xF9 which notably had 15 sectors per track hence more space for the FATs FAT12 remains in use on all common floppy disks including 1 44 MB and later 2 88 MB disks media descriptor byte 0xF0 Initial FAT16 edit FAT16Developer s Microsoft IBM Digital Research NovellFull name16 bit File Allocation Table with 16 bit sector entries Introduced1984 08 14 PC DOS 3 0 1984 08 MS DOS 3 0 Partition IDsMBR EBR FAT16 abbr title Values in C notation for hexadecimal numbers 0x abbr a href Partition type html PID 04h title Partition type 04 a e a BDP EBD0A0A2 B9E5 4433 87C0 68B6B72699C7LimitsMax file size4 294 967 295 bytes 4 GB 1 File size granularity1 byteMax no of files65 536 for 32 KB clustersMax filename length8 3 filename with OEM characters 255 UCS 2 characters nb 1 when using LFNMax directory depth32 levels or 66 characters with CDS 60 levels or more without CDS FeaturesDates recordedModified date time creation date time DOS 7 0 and higher only access date only available with ACCDATE enabled 2 deletion date time only with DELWATCH 2 Date range1980 01 01 to 2099 12 31 2107 12 31 Date resolution2 seconds for last modified time 10 ms for creation time 1 day for access date 2 seconds for deletion timeAttributesRead only hidden system volume directory archiveFile systempermissionsFile directory and volume access rights for read write execute delete only with DR DOS PalmDOS Novell DOS OpenDOS FlexOS 4680 OS 4690 OS Concurrent DOS Multiuser DOS System Manager REAL 32 execute right only with FlexOS 4680 OS 4690 OS individual file directory passwords not with FlexOS 4680 OS 4690 OS world group owner permission classes only with multiuser security loadedTransparentcompressionPer volume SuperStor Stacker DoubleSpace DriveSpaceTransparentencryptionPer volume only with DR DOSIn 1984 IBM released the PC AT which required PC DOS 3 0 to access its 20 MB hard disk 26 27 Microsoft introduced MS DOS 3 0 in parallel Cluster addresses were increased to 16 bit allowing for up to 65 526 clusters per volume However the maximum possible number of sectors and the maximum partition size of 32 MB did not change Although cluster addresses were 16 bits this format was not what today is commonly understood as FAT16 A partition type a href Partition type html PID 04h title Partition type 0x04 a indicates this form of FAT16 with less than 65 536 sectors less than 32 MB for sector size 512 The benefit of FAT16 was the use of smaller clusters making disk usage more efficient particularly for large numbers of files only a few hundred bytes in size As MS DOS 3 0 formatted all 16 MB 32 MB partitions in the FAT16 format a 20 MB hard disk formatted under MS DOS 3 0 was not accessible by MS DOS 2 0 28 MS DOS 3 0 to MS DOS 3 30 could still access FAT12 partitions under 15 MB but required all 16 MB 32 MB partitions to be FAT16 and so could not access MS DOS 2 0 partitions in this size range MS DOS 3 31 and higher could access 16 MB 32 MB FAT12 partitions again Logical sectored FAT edit See also Extended boot record MS DOS and PC DOS implementations of FAT12 and FAT16 could not access disk partitions larger than 32 megabytes Several manufacturers developed their own FAT variants within their OEM versions of MS DOS 29 Some vendors AST and NEC 29 supported eight instead of the standard four primary partition entries in their custom extended Master Boot Record MBR and they adapted MS DOS to use more than a single primary partition Other vendors worked around the volume size limits imposed by the 16 bit sector entries by increasing the apparent size of the sectors the file system operated on These logical sectors were larger up to 8192 bytes than the physical sector size still 512 bytes on the disk The DOS BIOS or System BIOS would then combine multiple physical sectors into logical sectors for the file system to work with These changes were transparent to the file system implementation in the DOS kernel The underlying DOS BIOS translated these logical sectors into physical sectors according to partitioning information and the drive s physical geometry The drawback of this approach was increased memory used for sector buffering and deblocking Since older DOS versions could not use large logical sectors the OEMs introduced new partition IDs for their FAT variants in order to hide them from off the shelf issues of MS DOS and PC DOS Known partition IDs for logical sectored FATs include a href Partition type html PID 08h title Partition type 0x08 a Commodore MS DOS 3 x a href Partition type html PID 11h title Partition type 0x11 a Leading Edge MS DOS 3 x a href Partition type html PID 14h title Partition type 0x14 a AST MS DOS 3 x a href Partition type html PID 24h title Partition type 0x24 a NEC MS DOS 3 30 29 a href Partition type html PID 56h title Partition type 0x56 a AT amp T MS DOS 3 x a href Partition type html PID E5h title Partition type 0xE5 a Tandy MS DOS a href Partition type html PID F2h title Partition type 0xF2 a Sperry IT MS DOS 3 x Unisys MS DOS 3 3 also used by Digital Research DOS Plus 2 1 30 OEM versions like Toshiba MS DOS Wyse MS DOS 3 2 and 3 3 31 as well as Zenith MS DOS are also known to have utilized logical sectoring 32 While non standard and sub optimal these FAT variants are perfectly valid according to the specifications of the file system itself citation needed Therefore even if default issues of MS DOS and PC DOS were not able to cope with them most of these vendor specific FAT12 and FAT16 variants can be mounted by more flexible file system implementations in operating systems such as DR DOS simply by changing the partition ID to one of the recognized types nb 3 Also if they no longer need to be recognized by their original operating systems existing partitions can be converted into FAT12 and FAT16 volumes more compliant with versions of MS DOS PC DOS 4 0 6 3 which do not support sector sizes different from 512 bytes 33 by switching to a BPB with 32 bit entry for the number of sectors as introduced since DOS 3 31 see FAT16B below keeping the cluster size and reducing the logical sector size in the BPB down to 512 bytes while at the same time increasing the counts of logical sectors per cluster reserved logical sectors total logical sectors and logical sectors per FAT by the same factor A parallel development in MS DOS PC DOS which allowed an increase in the maximum possible FAT size was the introduction of multiple FAT partitions on a hard disk To allow the use of more FAT partitions in a compatible way a new partition type was introduced in PC DOS 3 2 1986 the extended partition EBR 15 which is a container for an additional partition called logical drive Since PC DOS 3 3 April 1987 there is another optional extended partition containing the next logical drive and so on The MBR of a hard disk can either define up to four primary partitions or an extended partition in addition to up to three primary partitions Final FAT16 edit FAT16BDeveloper s Compaq Digital Research IBM Microsoft NovellFull name16 bit File Allocation Table with 32 bit sector entries Introduced1987 11 Compaq MS DOS 3 31 1988 06 28 DR DOS 3 31 1988 IBM DOS 4 0 1988 OS 2 1 1 1988 MS DOS 4 0 Partition IDsMBR EBR FAT16B abbr title Values in C notation for hexadecimal numbers 0x abbr a href Partition type html PID 06h title Partition type 06 a a href Partition type html PID 0Eh title Partition type 0x0E a LBA e a BDP EBD0A0A2 B9E5 4433 87C0 68B6B72699C7LimitsMin volume size8 MB with 128 byte sectors 32 MB with 512 byte sectors 256 MB with 4 KB sectors Max volume size2 GB with 32 KB clusters 4 GB with 64 KB clusters NT 4 PTS DOS EDR DOS 8 GB with 128 KB clusters and 1 or 2 KB sectors NT 4 and EDR DOS only 8 GB with 128 KB clusters and 512 byte sectors EDR DOS only 16 GB with 256 KB clusters and 2 or 4 KB sectors NT 4 only Max file size2 147 483 647 bytes 2 GB 1 without LFS 4 294 967 295 bytes 4 GB 1 with LFS limited by volume size only with FAT16 34 File size granularity1 byteMax no of files65 460 for 32 KB clustersMax filename length8 3 filename with OEM characters 255 UCS 2 characters nb 1 when using LFNMax directory depth32 levels or 66 characters with CDS 60 levels or more without CDS FeaturesDates recordedModified date time creation date time DOS 7 0 and higher only access date only available with ACCDATE enabled 2 deletion date time only with DELWATCH 2 Date range1980 01 01 to 2099 12 31 2107 12 31 Date resolution2 seconds for last modified time 10 ms for creation time 1 day for access date 2 seconds for deletion timeAttributesRead only hidden system volume directory archiveFile systempermissionsFile directory and volume access rights for read write execute delete only with DR DOS PalmDOS Novell DOS OpenDOS FlexOS 4680 OS 4690 OS Concurrent DOS Multiuser DOS System Manager REAL 32 execute right only with FlexOS 4680 OS 4690 OS individual file directory passwords not with FlexOS 4680 OS 4690 OS world group owner permission classes only with multiuser security loadedTransparentcompressionPer volume SuperStor Stacker DoubleSpace DriveSpaceTransparentencryptionPer volume only with DR DOSIn November 1987 Compaq Personal Computer DOS 3 31 a modified OEM version of MS DOS 3 3 released by Compaq with their machines introduced what today is simply known as the FAT16 format with the expansion of the 16 bit disk sector count to 32 bits in the BPB Although the on disk changes were minor the entire DOS disk driver had to be converted to use 32 bit sector numbers a task complicated by the fact that it was written in 16 bit assembly language The result was initially called the DOS 3 31 Large File System Microsoft s DSKPROBE tool refers to type a href Partition type html PID 06h title Partition type 0x06 a as BigFAT 35 whereas some older versions of a href FDISK html class mw redirect title FDISK FDISK a described it as BIGDOS Technically it is known as FAT16B Since older versions of DOS were not designed to cope with more than 65 535 sectors it was necessary to introduce a new partition type for this format in order to hide it from pre 3 31 issues of DOS The original form of FAT16 with less than 65 536 sectors had a partition type a href Partition type html PID 04h title Partition type 0x04 a To deal with disks larger than this type a href Partition type html PID 06h title Partition type 0x06 a was introduced to indicate 65 536 or more sectors In addition to this the disk driver was expanded to cope with more than 65 535 sectors as well The only other difference between the original FAT16 and the newer FAT16B format is the usage of a newer BPB format with 32 bit sector entry Therefore newer operating systems supporting the FAT16B format can cope also with the original FAT16 format without any necessary changes If partitions to be used by pre DOS 3 31 issues of DOS need to be created by modern tools the only criteria theoretically necessary to meet are a sector count of less than 65536 and the usage of the old partition ID a href Partition type html PID 04h title Partition type 0x04 a In practice however type a href Partition type html PID 01h title Partition type 0x01 a and a href Partition type html PID 04h title Partition type 0x04 a primary partitions should not be physically located outside the first 32 MB of the disk due to other restrictions in MS DOS 2 x which could not cope with them otherwise In 1988 the FAT16B improvement became more generally available through DR DOS 3 31 PC DOS 4 0 OS 2 1 1 and MS DOS 4 0 The limit on partition size was dictated by the 8 bit signed count of sectors per cluster which originally had a maximum power of two value of 64 With the standard hard disk sector size of 512 bytes this gives a maximum of 32 KB cluster size thereby fixing the definitive limit for the FAT16 partition size at 2 GB for sector size 512 On magneto optical media which can have 1 or 2 KB sectors instead of 0 5 KB this size limit is proportionally larger Much later Windows NT increased the maximum cluster size to 64 KB by considering the sectors per cluster count as unsigned However the resulting format was not compatible with any other FAT implementation of the time and it generated greater internal fragmentation Windows 98 SE and ME also supported reading and writing this variant but its disk utilities did not work with it and some FCB services are not available for such volumes This contributes to a confusing compatibility situation Prior to 1995 versions of DOS accessed the disk via CHS addressing only When Windows 95 MS DOS 7 0 introduced LBA disk access partitions could start being physically located outside the first c 8 GB of this disk and thereby out of the reach of the traditional CHS addressing scheme Partitions partially or fully located beyond the CHS barrier therefore had to be hidden from non LBA enabled operating systems by using the new partition type a href Partition type html PID 0Eh title Partition type 0x0E a in the partition table instead FAT16 partitions using this partition type are also named FAT16X 36 The only difference compared to previous FAT16 partitions is the fact that some CHS related geometry entries in the BPB record namely the number of sectors per track and the number of heads may contain no or misleading values and should not be used The number of root directory entries available for FAT12 and FAT16 is determined when the volume is formatted and is stored in a 16 bit field For a given number RDE and sector size SS the number RDS of root directory sectors is RDS ceil RDE 32 SS and RDE is normally chosen to fill these sectors i e RDE 32 RDS SS FAT12 and FAT16 media typically use 512 root directory entries on non floppy media Some third party tools like mkdosfs allow the user to set this parameter 37 FAT32 edit FAT32Developer s Microsoft CalderaIntroducedAugust 1996 Windows 95 OSR2 Partition IDsMBR EBR FAT32 abbr title Values in C notation for hexadecimal numbers 0x abbr a href Partition type html PID 0Bh title Partition type 0B a a href Partition type html PID 0Ch title Partition type 0x0C a LBA e a BDP EBD0A0A2 B9E5 4433 87C0 68B6B72699C7LimitsMin volume size32 MB 4 5 KB with 65525 clusters and 512 byte sectors 256 MB 36 KB with 65525 clusters and 4 KB sectors Max volume size2 TB with 512 byte sectors 8 TB with 2 KB sectors and 32 KB clusters 16 TB with 4 KB sectors and 64 KB clusters Max file size2 147 483 647 bytes 2 GiB 1 byte without LFS 4 294 967 295 bytes 4 GiB 1 byte 1 with LFS 274 877 906 943 bytes 256 GiB 1 byte only with FAT32 34 File size granularity1 byteMax no of files268 173 300 for 32 KB clustersMax filename length8 3 filename with OEM characters 255 UCS 2 characters nb 1 when using LFNMax directory depth32 levels or 66 characters with CDS 60 levels or more without CDS FeaturesDates recordedModified date time creation date time DOS 7 0 and higher only access date only available with ACCDATE enabled 2 deletion date time only with DELWATCH 2 Date range1980 01 01 to 2099 12 31 2107 12 31 Date resolution2 seconds for last modified time 10 ms for creation time 1 day for access date 2 seconds for deletion timeAttributesRead only hidden system volume directory archiveFile systempermissionsPartial only with DR DOS REAL 32 and 4690 OSTransparentcompressionYesIn order to overcome the volume size limit of FAT16 while at the same time allowing DOS real mode code to handle the format Microsoft designed a new version of the file system FAT32 which supported an increased number of possible clusters but could reuse most of the existing code so that the conventional memory footprint was increased by less than 5 KB under DOS 38 Cluster values are represented by 32 bit numbers of which 28 bits are used to hold the cluster number Maximal sizes edit The FAT32 boot sector uses a 32 bit field for the sector count limiting the maximal FAT32 volume size to 2 terabytes with a sector size of 512 bytes The maximum FAT32 volume size is 16 TB with a sector size of 4 096 bytes 39 40 The built in Windows shell disk format tool on Windows NT arbitrarily only supports volume sizes up to 32 GB nb 4 but Windows supports reading and writing to preexisting larger FAT32 volumes and these can be created with the command prompt PowerShell or third party tools 42 or by formatting the volume on a non Windows system or on a Windows 9x system with FAT32 support and then transferring it to the Windows NT system The maximal possible size for a file on a FAT32 volume is 4 GB minus 1 byte or 4 294 967 295 232 1 bytes This limit is a consequence of the 4 byte file length entry in the directory table and would also affect relatively huge FAT16 partitions enabled by a sufficient sector size Like FAT12 and FAT16 FAT32 does not include direct built in support for long filenames but FAT32 volumes can optionally hold VFAT long filenames in addition to short filenames in exactly the same way as VFAT long filenames have been optionally implemented for FAT12 and FAT16 volumes Development edit FAT32 was introduced with Windows 95 OSR2 MS DOS 7 1 in 1996 although reformatting was needed to use it and DriveSpace 3 the version that came with Windows 95 OSR2 and Windows 98 never supported it Windows 98 introduced a utility to convert existing hard disks from FAT16 to FAT32 without loss of data In the Windows NT line native support for FAT32 arrived in Windows 2000 A free FAT32 driver for Windows NT 4 0 was available from Winternals a company later acquired by Microsoft The acquisition of the driver from official sources is no longer possible Since 1998 Caldera s dynamically loadable DRFAT32 driver could be used to enable FAT32 support in DR DOS 43 44 The first version of DR DOS to natively support FAT32 and LBA access was OEM DR DOS 7 04 in 1999 That same year IMS introduced native FAT32 support with REAL 32 7 90 and IBM 4690 OS added FAT32 support with version 2 45 Ahead Software provided another dynamically loadable FAT32 EXE driver for DR DOS 7 03 with Nero Burning ROM in 2004 IBM introduced native FAT32 support with OEM PC DOS 7 1 in 1999 Two partition types have been reserved for FAT32 partitions a href Partition type html PID 0Bh title Partition type 0x0B a and a href Partition type html PID 0Ch title Partition type 0x0C a The latter type is also named FAT32X in order to indicate usage of LBA disk access instead of CHS 43 46 47 48 49 On such partitions CHS related geometry entries namely the CHS sector addresses in the MBR as well as the number of sectors per track and the number of heads in the EBPB record may contain no or misleading values and should not be used 50 48 49 Extensions editExtended attributes edit OS 2 heavily depends on extended attributes EAs and stores them in a hidden file called EA DATA SF in the root directory of the FAT12 or FAT16 volume This file is indexed by two previously reserved bytes in the file s or directory s directory entry at offset 0x14 51 In the FAT32 format these bytes hold the upper 16 bits of the starting cluster number of the file or directory hence making it impossible to store OS 2 EAs on FAT32 using this method However the third party FAT32 installable file system IFS driver FAT32 IFS version 0 70 and higher by Henk Kelder amp Netlabs for OS 2 eComStation and ArcaOS stores extended attributes in extra files with filenames having the string EA SF appended to the regular filename of the file to which they belong The driver also utilizes the byte at offset 0x0C in directory entries to store a special mark byte indicating the presence of extended attributes to help speed up things 52 53 This extension is critically incompatible with the FAT32 method to store files larger than 4 GB minus 1 on FAT32 volumes 34 Extended attributes are accessible via the Workplace Shell desktop through REXX scripts and many system GUI and command line utilities such as 4OS2 54 To accommodate its OS 2 subsystem Windows NT supports the handling of extended attributes in HPFS NTFS FAT12 and FAT16 It stores EAs on FAT12 FAT16 and HPFS using exactly the same scheme as OS 2 but does not support any other kind of ADS as held on NTFS volumes Trying to copy a file with any ADS other than EAs from an NTFS volume to a FAT or HPFS volume gives a warning message with the names of the ADSs that will be lost It does not support the FAT32 IFS method to store EAs on FAT32 volumes Windows 2000 onward acts exactly as Windows NT except that it ignores EAs when copying to FAT32 without any warning but shows the warning for other ADSs like Macintosh Finder Info and Macintosh Resource Fork Cygwin uses EA DATA SF files as well Long file names edit One of the user experience goals for the designers of Windows 95 was the ability to use long filenames LFNs up to 255 UTF 16 code units long nb 1 in addition to classic 8 3 filenames SFNs For backward and forward compatibility LFNs were implemented as an optional extension on top of the existing FAT file system structures using a workaround in the way directory entries are laid out This transparent method to store long file names in the existing FAT file systems without altering their data structures is usually known as VFAT for Virtual FAT after the Windows 95 virtual device driver nb 5 Non VFAT enabled operating systems can still access the files under their short file name alias without restrictions however the associated long file names may be lost when files with long filenames are copied under non VFAT aware operating systems In Windows NT support for VFAT long filenames began with version 3 5 Linux provides a VFAT filesystem driver to work with FAT volumes with VFAT long filenames For some time a UVFAT driver was available to provide combined support for UMSDOS style permissions with VFAT long filenames OS 2 added long filename support to FAT using extended attributes EA before the introduction of VFAT Thus VFAT long filenames are invisible to OS 2 and EA long filenames are invisible to Windows therefore experienced users of both operating systems would have to manually rename the files Human68K supported up to 18 3 filenames and Shift JIS Kanji characters in a proprietary FAT file system variant In order to support Java applications the FlexOS based IBM 4690 OS version 2 introduced its own virtual file system VFS architecture to store long filenames in the FAT file system in a backwards compatible fashion If enabled the virtual filenames VFN are available under separate logical drive letters whereas the real filenames RFN remain available under the original drive letters 55 Forks and alternate data streams edit The FAT file system itself is not designed for supporting alternate data streams ADS but some operating systems that heavily depend on them have devised various methods for handling them on FAT volumes Such methods either store the additional information in extra files and directories classic Mac OS and macOS or give new semantics to previously unused fields of the FAT on disk data structures OS 2 and Windows NT Mac OS using PC Exchange stores its various dates file attributes and long filenames in a hidden file called FINDER DAT and resource forks a common Mac OS ADS in a subdirectory called RESOURCE FRK in every directory where they are used From PC Exchange 2 1 onwards they store the Mac OS long filenames as standard FAT long filenames and convert FAT filenames longer than 31 characters to unique 31 character filenames which can then be made visible to Macintosh applications macOS stores resource forks and metadata file attributes other ADS using AppleDouble format in a hidden file with a name constructed from the owner filename prefixed with and Finder stores some folder and file metadata in a hidden file called a href DS Store html title DS Store DS Store a but note that Finder uses DS Store even on macOS native filesystem HFS UMSDOS permissions and filenames edit Further information FAT filesystem and Linux Early Linux distributions also supported a format known as UMSDOS a FAT variant with Unix file attributes such as long file name and access permissions stored in a separate file called linux UMSDOS fell into disuse after VFAT was released and it is not enabled by default in Linux from version 2 5 7 onwards 56 For some time Linux also provided combined support for UMSDOS style permissions and VFAT long filenames through UVFAT FAT edit In 2007 the open FAT draft proposed how to store larger files up to 256 GB minus 1 byte or 274 877 906 943 238 1 bytes on slightly modified and otherwise backward compatible FAT32 volumes 34 but imposes a risk that disk tools or FAT32 implementations not aware of this extension may truncate or delete files exceeding the normal FAT32 file size limit Support for FAT32 and FAT16 is limited to some versions of DR DOS and not available in mainstream operating systems 57 This extension is critically incompatible with the EAS option of the FAT32 IFS method to store OS 2 extended attributes on FAT32 volumes Derivatives editTurbo FAT edit Main article Turbo FAT In its NetWare File System NWFS Novell implemented a heavily modified variant of a FAT file system for the NetWare operating system For larger files it utilized a performance feature named Turbo FAT FATX edit FATX is a family of file systems designed for Microsoft s Xbox video game console hard disk drives and memory cards 58 59 introduced in 2001 While resembling the same basic design ideas as FAT16 and FAT32 the FATX16 and FATX32 on disk structures are simplified but fundamentally incompatible with normal FAT16 and FAT32 file systems making it impossible for normal FAT file system drivers to mount such volumes The non bootable superblock sector is 4 KB in size and holds an 18 byte large BPB like structure completely different from normal BPBs Clusters are typically 16 KB in size and there is only one copy of the FAT on the Xbox Directory entries are 64 bytes in size instead of the normal 32 bytes Files can have filenames up to 42 characters long using the OEM character set and be up to 4 GB minus 1 byte in size The on disk timestamps hold creation modification and access dates and times but differ from FAT in FAT the epoch is 1980 in FATX the epoch is 2000 On the Xbox 360 the epoch is 1980 60 exFAT edit Main article exFAT exFAT is a file system introduced with Windows Embedded CE 6 0 in November 2006 and brought to the Windows NT family with Vista Service Pack 1 and Windows XP Service Pack 3 or separate installation of Windows XP Update KB955704 It is loosely based on the File Allocation Table architecture but incompatible proprietary and protected by patents 61 exFAT is intended for use on flash drives and memory cards such as SDXC and Memory Stick XC where FAT32 is otherwise used Vendors usually pre format SDXC cards with it Its main benefit is its exceeding of the 4 GB file size limit as file size references are stored with eight instead of four bytes increasing the limit to 264 1 bytes Microsoft s GUI and command line format utilities offer it as an alternative to NTFS and for smaller partitions to FAT16B and FAT32 The MBR partition type is a href Partition type html PID 07h title Partition type 0x07 a the same as used for IFS HPFS and NTFS Logical geometry information located in the VBR is stored in a format not resembling any kind of BPB In early 2010 the file system was reverse engineered by the SANS Institute 62 On August 28 2019 Microsoft published the technical specification for exFAT so that it can be used in the Linux kernel and other operating systems 63 Patents editMicrosoft applied for and was granted a series of patents for key parts of the FAT file system in the mid 1990s All four pertain to long filename extensions to FAT first seen in Windows 95 U S patent 5 579 517 64 U S patent 5 745 902 65 U S patent 5 758 352 66 U S patent 6 286 013 all expired since 2013 67 On December 3 2003 Microsoft announced 68 that it would be offering licenses for use of its FAT specification and associated intellectual property at the cost of a US 0 25 royalty per unit sold with a US 250 000 maximum royalty per license agreement 69 To this end Microsoft cited four patents on the FAT file system as the basis of its intellectual property claims In the EFI FAT32 specification 10 Microsoft specifically grants a number of rights which many readers have interpreted as permitting operating system vendors to implement FAT 70 Non Microsoft patents affecting FAT include U S patent 5 367 671 specific to the OS 2 extended object attributes expired in 2011 71 Challenges and lawsuits edit The Public Patent Foundation PUBPAT submitted evidence to the US Patent and Trademark Office USPTO in 2004 disputing the validity of U S patent 5 579 517 64 including prior art references from Xerox and IBM 72 The USPTO opened an investigation and concluded by rejecting all claims in the patent 73 The next year the USPTO further announced that following the re examination process it affirmed the rejection of 517 and additionally found U S patent 5 758 352 66 invalid on the grounds that the patent had incorrect assignees However in 2006 the USPTO ruled that features of Microsoft s implementation of the FAT system were novel and non obvious reversing both earlier decisions and leaving the patents valid 74 In February 2009 Microsoft filed a patent infringement lawsuit against TomTom alleging that the device maker s products infringe on patents related to VFAT long filenames As some TomTom products are based on Linux this marked the first time that Microsoft tried to enforce its patents against the Linux platform 75 The lawsuit was settled out of court the following month with an agreement that Microsoft be given access to four of TomTom s patents that TomTom will drop support for the VFAT long filenames from its products and that in return Microsoft not seek legal action against TomTom for the five year duration of the settlement agreement 76 In October 2010 Microsoft filed a patent infringement lawsuit against Motorola alleging several patents including two of the VFAT patents were not licensed for use in the Android operating system 77 They also submitted a complaint to the ITC 78 Developers of open source software have designed methods intended to circumvent Microsoft s patents 79 80 In 2013 patent EP0618540 common name space for long and short filenames expired since 2014 81 was invalidated in Germany 82 After the appeal was withdrawn this judgment became final on the 28th October 2015 83 See also editComparison of file systems Design of the FAT file system Drive letter assignment List of file systems Transaction Safe FAT File SystemNotes edit a b c d e f Since Windows 2000 Microsoft Windows uses UTF 16 instead of UCS 2 for the internal Unicode In UTF 16 a character code point may take up two code units a b Sources differ in regard to the first NCR data entry terminal integrating support for the FAT file system According to Stephen Manes and Paul Andrews Gates development was for a NCR 8200 in late 1977 incorrectly classified as a floppy based upgrade to the NCR 7200 which had been released in 1975 11 model I and IV and was built around an Intel 8080 8 bit processor but was cassette based only However the NCR Century 8200 was a 16 bit minicomputer onto which several data entry terminals could be hooked up Marc McDonald even remembered a NCR 8500 a mainframe of the Criterion series which can be ruled out as well Announced 1977 10 for shipment in 1978 02 NCR also introduced the NCR I 8100 series including the 8080 based NCR I 8130 and NCR I 8150 models of small business systems featuring dual floppy disks Other sources indicate that either the NCR 7200 series itself or the successor series were the actual target platform NCR Basic Plus 6 based on Microsoft Extended BASIC 80 became available for the cassette based NCR 7200 model VI in Q1 1977 The NCR 7500 series was released in 1978 based on a similar 8080 hardware but now including NCR 7520 and 7530 models featuring 8 inch diskettes NCR Basic 6 a precursor or adaptation of Standalone Disk BASIC 80 was available for them at least since 1979 One source claims that a special NCR 7200 model variant with two 8 inch diskettes and Microsoft BASIC existed and was imported by NCR Sydney into Australia the least DR DOS is able to boot off FAT12 FAT16 logical sectored media with logical sector sizes up to 1024 bytes This was a decision taken by the developer in question who assumed his decision would be revised later something that never happened 41 A driver named VFAT appeared before Windows 95 in Windows for Workgroups 3 11 but this older version was only used for implementing 32 bit file access and did not support long file names References edit a b File Systems Microsoft TechNet 2001 Archived from the original on 2011 08 12 Retrieved 2011 07 31 a b c d e Microsoft 2006 11 15 Windows 95 CD ROM CONFIG TXT File Archived 2020 07 31 at the Wayback Machine Article 135481 Revision 1 1 retrieved 2011 12 22 For each hard disk specifies whether to record the date that files are last accessed Last access dates are turned off for all drives when your computer is started in safe mode and are not maintained for floppy disks by default Syntax a href ACCDATE CONFIG SYS directive html class mw redirect title ACCDATE CONFIG SYS directive ACCDATE a drive1 drive2 a b Bhat W A 2010 Review of FAT data structure of FAT32 file system Oriental Journal of Computer Science and Technology 3 1 161 164 S2CID 58178285 Comparing NTFS and FAT file systems Microsoft Archived from the original on 2016 06 20 Retrieved 2014 01 27 A brief introduction to FAT File Allocation Table formats www wizcode com Archived from the original on September 25 2015 Retrieved September 24 2015 Volume and File Structure of Disk Cartridges for Information Interchange Standard ECMA 107 2nd ed June 1995 ECMA 1995 Archived from the original on 2018 10 07 Retrieved 2011 07 30 Information technology Volume and file structure of disk cartridges for information interchange ISO IEC 9293 1994 ISO catalogue 1994 Archived from the original on 2012 01 17 Retrieved 2012 01 06 Information processing Volume and file structure of flexible disk cartridges for information interchange ISO 9293 1987 ISO catalogue 1987 Archived from the original on 2012 01 17 Retrieved 2012 01 06 Reynolds Aaron R Adler Dennis R Lipe Ralph A Pedrizetti Ray D Parsons Jeffrey T Arun Rasipuram V 1998 05 26 Common name space for long and short filenames US Patent 5758352 Retrieved 2012 01 19 a b Microsoft Extensible Firmware Initiative FAT32 File System Specification FAT General Overview of On Disk Format Microsoft 2011 03 30 Archived from the original on 2021 07 23 Retrieved 2018 12 21 How to Convert a Drive from FAT32 to NTFS without Data Loss WindowsLoop 2021 07 11 Archived from the original on 2021 08 08 Retrieved 2021 08 08 JEIDA JEITA CIPA 2010 Standard of the Camera amp Imaging Products Association CIPA DC 009 Translation 2010 Design rule for Camera File system DCF Version 2 0 Edition 2010 PDF Archived from the original PDF on September 30 2013 Retrieved 2011 04 13 a b c d e f g h i j Xerox BASIC 80 basic 80 reference manual PDF 5 0 Microsoft Xerox 1979 610P70641 Archived PDF from the original on 2016 03 04 Retrieved 2014 06 02 NB For Microsoft Standalone Disk Disk Extended 8K BASIC 80 Standalone Disk Extended BASIC 86 BASIC Compiler release 5 0 a b c d e f g h i j MICROSOFT BASIC 80 version 5 0 reference manual BASIC 80 Interpreter and Compiler Addendum Release 5 1 PDF 5 1 Microsoft 1979 Archived PDF from the original on 2016 03 04 Retrieved 2014 06 02 NB For Microsoft Standalone Disk Disk Extended 8K BASIC 80 Standalone Disk Extended BASIC 86 BASIC Compiler release 5 1 a b c d e f g Duncan Ray Bostwick Steve Burgoyne Keith 1988 The MS DOS Encyclopedia versions 1 0 through 3 2 Completely reworked ed Redmond Washington USA Microsoft Press ISBN 1 55615 049 0 LCCN 87 21452 OCLC 16581341 xix 1570 pages 26 cm NB This edition was published in 1988 after extensive rework of the withdrawn 1986 first edition by a different team of authors 1 Archived 2018 10 14 at the Wayback Machine a b Manes Stephen Andrews Paul 1993 Gates How Microsoft s Mogul Reinvented an Industry and Made Himself the Richest Man in America Doubleday ISBN 0 385 42075 7 a b c d Hunter David 1983 Tim Paterson The roots of DOS Softalk for the IBM Personal Computer March 1983 Archived from the original on 2019 09 06 Retrieved 2014 06 02 Schulman Andrew Brown Ralf D Maxey David Michels Raymond J Kyle Jim 1994 November 1993 Undocumented DOS A programmer s guide to reserved MS DOS functions and data structures expanded to include MS DOS 6 Novell DOS and Windows 3 1 2 ed Reading Massachusetts Addison Wesley p 11 ISBN 0 201 63287 X xviii 856 vi pages 3 5 floppy Errata 2 3 a b Paterson Tim 2007 09 30 Design of DOS DosMan Drivel Archived from the original on 2013 01 20 Retrieved 2011 07 04 Seattle Computer Products August 1980 86 DOS 8086 OPERATING SYSTEM 95 Byte Advertisement Vol 5 no 8 BYTE Publications Inc p 173 ISSN 0360 5280 CODEN BYTEDJ Retrieved 2013 08 18 4 Archived 2020 02 01 at the Wayback Machine NB The SCP advertisement already calls the product 86 DOS but does not mention a specific version number Version 0 3 is known to be called 86 DOS already so the name change must have taken place either for version 0 2 or immediately afterwards in August 1980 a b c d Seattle Computer Products 1981 SCP 86 DOS 1 0 Addendum PDF Archived PDF from the original on 2012 10 03 Retrieved 2013 03 10 Wallace James Erickson Jim 1992 Hard Drive Bill Gates and the Making of the Microsoft Empire John Wiley amp Sons ISBN 0 471 56886 4 Norton Peter 1986 Inside the IBM PC Revised and Enlarged Brady ISBN 0 89303 583 1 p 157 Jenkinson Brian Sammes A J 2000 Forensic Computing A Practitioner s Guide Practitioner Series Berlin Springer p 157 ISBN 1 85233 299 9 only 2 12 that is 4096 allocation units or clusters can be addressed In fact the number is less than this since 000h and 001h are not used and FF0h to FFFh are reserved or used for other purposes leaving 002h to FEFh 2 to 4079 as the range of possible clusters Paterson Tim 1983 An Inside Look at MS DOS Byte Archived from the original on July 20 2011 Retrieved 2011 07 18 The numbering starts with 2 the first two numbers 0 and 1 are reserved IBM 1984 IBM PC DOS 3 0 announcement letter IBM 1985 IBM PC DOS Technical Reference First Edition P N 6024181 dated February 1985 Microsoft Knowledge Base article MS DOS Partitioning Summary Archived from the original on 2018 06 12 Retrieved 2018 06 02 a b c FYI Installing DR DOS on NEC DOS 3 3 Partitions Novell 1993 01 05 FYI M 1101 archived from the original on 2016 03 04 retrieved 2014 08 12 Brouwer Andries List of partition identifiers for PCs Archived from the original on 2019 04 23 Retrieved 2012 01 11 Q78407 Wyse DOS 3 3 Partitions Incompatible with MS DOS 5 x and 6 x Microsoft 2000 12 17 dead link Alt URL Q68176 Upgrading Pre 4 0 Systems with Logical Drive s gt 32 MB Microsoft 2000 12 17 dead link Alt URL Brouwer Andries Properties of partition tables Archived from the original on 2019 04 23 Retrieved 2012 01 11 a b c d Kuhnt Udo Georgiev Luchezar I Davis Jeremy 2007 FAT draft revision 2 2 ed Archived from the original FATPLUS TXT on 2015 02 19 Retrieved 2015 08 05 Dskprobe Overview Data Recovery Microsoft TechNet 2003 03 28 Archived from the original on 2011 07 03 Retrieved 2011 08 03 Errors Creating Files or Folders in the Root Directory Microsoft Help and Support 2004 12 16 Archived from the original on 2020 07 31 Retrieved 2006 10 14 mkdosfs man page Archived from the original on 2006 10 07 Retrieved 2006 11 21 Windows 98 Resource Kit Chapter 10 Disks and File Systems Microsoft TechNet 1998 Archived from the original on 2012 05 01 Retrieved 2012 07 16 Limitations of FAT32 File System Microsoft Knowledge Base 2007 03 26 Archived from the original on 2020 07 31 Retrieved 2011 08 21 Clusters cannot be 64 kilobytes KB or larger Limitations of the FAT32 File System in Windows XP Microsoft Knowledge Base 2007 12 01 Archived from the original on 2020 07 31 Retrieved 2011 08 21 Explained The thinking behind the 32GB Windows Format limit on FAT32 Glenn Walter 2017 07 20 How to Format USB Drives Larger Than 32GB With FAT32 on Windows How To Geek Archived from the original on 2021 01 26 Retrieved 2021 01 26 a b README TXT Caldera DR DOS FAT32 Enabled Boot Disk DRFAT32 Caldera Inc 1998 07 24 DRFAT32 SYS R1 00 INT 13h Interface for FAT32 Redirector Caldera Inc 1998 09 11 IBM 4690 OS User s Guide Version 5 2 IBM document SC30 4134 01 2008 01 10 5 Archived 2022 01 25 at the Wayback Machine Karpowitz Christina 1998 09 23 PowerQuest PartitionMagic 4 0 now available PowerQuest Archived from the original on 1999 02 08 Retrieved 2015 04 17 Livingston Brian 1998 10 28 FAT 32X may operate differently than FAT 32 on large hard drives InfoWorld Vol 20 no 43 Archived from the original on 2015 11 12 Retrieved 2015 04 17 a b Duitz Neal 2001 07 17 Can anyone explain FAT32X Win98 Private FAQ Windows 98 Consumer Preview Program Archived from the original on 2004 06 13 Retrieved 2015 04 17 a b Costanzo Lance 1998 05 14 FAT32X Archived from the original on 1998 05 21 Retrieved 2015 04 17 Steinberg David 1998 05 01 What is a FAT32X partition Tech Tip FAQ PowerQuest Technical Support Archived from the original on 2015 09 21 Retrieved 2015 04 17 Eager Bob Tavi Systems October 28 2000 Implementation of extended attributes on the FAT file system 6 Archived June 13 2006 at the Wayback Machine Kelder Henk 2003 FAT32 TXT for FAT32 IFS version 0 9 13 7 Archived 2013 05 11 at the Wayback Machine This byte is not modified while running Windows 95 and neighter sic by SCANDISK or DEFRAG If another program sets the value to 0x00 for a file that has EAs these EAs will no longer be found using DosFindFirst Next calls only The other OS 2 calls for retrieving EAs DosQueryPathInfo DosQueryFileInfo and DosEnumAttribute do not rely on this byte Also the opposite could occur In this situation only the performance of directory scans will be decreased Both situations are corrected by CHKDSK Kelder Henk FAT32 TXT for FAT32 IFS version 0 74 Macarlo Inc Archived from the original on March 30 2012 Retrieved January 14 2012 Comment This older version of the README file still discusses the old 0xEA and 0xEC magic values Eager Bob 2000 10 28 Implementation of extended attributes on the FAT file system Tavi OS 2 pages Archived from the original on 2006 06 13 Retrieved 2006 10 14 IBM 4690 OS Programming Guide Version 5 2 IBM document SC30 4137 01 2007 12 06 8 Archived 2022 01 25 at the Wayback Machine Release notes for v2 5 7 The Linux Kernel archives 2002 03 12 Archived from the original on 2006 04 15 Retrieved 2006 10 14 Kuhnt Udo 2011 07 21 DR DOS OpenDOS Enhancement Project Archived from the original on 2016 07 06 Retrieved 2015 04 20 FATX Specification free60 wiki Archived from the original on 2018 07 26 Retrieved 2011 08 16 de Quincey Andrew Murray Pitts Lucien 2008 08 29 Xbox partitioning and file system details 0 13 Xbox Linux project Archived from the original on 2010 06 17 Retrieved 2014 05 25 Steil Michael 2008 02 26 2003 Differences between Xbox FATX and MS DOS FAT Xbox Linux project Archived from the original on 2010 06 17 Retrieved 2014 05 25 Microsoft exFAT File System Intellectual Property licensing program Microsoft Archived from the original on May 7 2013 Retrieved 2013 04 23 Reverse Engineering the Microsoft exFAT File System SANS Institute Archived from the original on 2021 04 21 Retrieved 2021 03 20 exFAT in the Linux kernel Yes Microsoft Open Source Blog 2019 08 28 Archived from the original on 2019 09 01 Retrieved 2019 10 06 a b US 5579517 Reynolds Aaron R Adler Dennis R amp Lipe Ralph A et al Common name space for long and short filenames issued 1996 US 5745902 Miller Thomas J amp Kimura Gary D Method and system for accessing a file using file names having different file name formats issued 1998 a b US 5758352 Reynolds Aaron R Adler Dennis R amp Lipe Ralph A et al Common name space for long and short filenames issued 1998 US 6286013 Reynolds Aaron R Adler Dennis R amp Lipe Ralph A et al Method and system for providing a common name space for long and short file names in an operating system issued 1996 Microsoft com Archived August 22 2009 at the Wayback Machine FAT File System Intellectual Property Licensing Microsoft Archived from the original on 2016 09 21 Garrett Matthew 2012 01 19 EFI and Linux the future is here and it s awful linux conf au YouTube Archived from the original on 2021 11 02 Retrieved 2014 01 12 US 5367671 Feigenbaum Barry A amp Miro Felix System for accessing extended object attribute EA data through file name or EA handle linkages in path tables issued 1994 Ravicher Daniel B 2004 04 15 PUBPAT s Request for Reexamination of Microsoft s FAT Patent PDF Public Patent Foundation Archived PDF from the original on 2013 06 07 Retrieved 2014 01 12 USPTO 2004 09 30 Patent Office s Office Action Rejecting Microsoft FAT Patent PDF Public Patent Foundation Archived PDF from the original on 2013 05 26 Retrieved 2014 01 12 Broache Anne 2006 01 10 Microsoft s file system patent upheld CNET News Archived from the original on 2016 05 03 Retrieved 2016 04 07 Paul Ryan 2009 02 25 Microsoft suit over FAT patents could open OSS Pandora s Box arstechnica com Archived from the original on 2009 02 27 Retrieved 2009 02 28 Fried Ina 2009 03 30 Microsoft TomTom settle patent dispute cnet com Archived from the original on 2009 08 05 Retrieved 2009 08 22 Microsoft Motorola Patent Suit 2010 10 01 Archived from the original on 2010 10 06 Retrieved 2010 10 02 Protalinski Emil 2010 10 01 Microsoft sues Motorola citing Android patent infringement arstechnica com Archived from the original on 2010 10 02 Retrieved 2010 10 02 Paul Ryan 2009 07 02 New Linux patch could circumvent Microsoft s FAT patents ArsTechnica com Archived from the original on 2013 11 01 Retrieved 2013 10 30 Brown Eric 2009 07 02 Can FAT patch avoid Microsoft lawsuits DesktopLinux Com Archived from the original on 2013 01 31 Retrieved 2009 08 23 9 Common name space for long and short filenames issued 1994 03 31 EP0618540B1 Common name space for long and short filenames Google Patents Archived from the original on 2020 03 28 Retrieved 2021 05 07 a href Template Cite web html title Template Cite web cite web a CS1 maint bot original URL status unknown link Muller Florian 2013 12 05 Federal Patent Court of Germany invalidates Microsoft FAT patent appeals court may disagree FOSS Patents Archived from the original on 2014 01 04 Retrieved 2014 01 12 Labesius Stefan 2017 05 28 Bundespatentgericht erklart VFAT Patent erneut fur nichtig ifrOSS Archived from the original on 2019 08 02 Retrieved 2019 08 02 External links editDescription of the FAT32 File System Microsoft Knowledge Base Article 154997 MS DOS Directory and Subdirectory Limitations Microsoft Knowledge Base Article 39927 Overview of FAT HPFS and NTFS File Systems Microsoft Knowledge Base Article 100108 Microsoft Technet Volume and file size limits of FAT file systems copy made by Internet Archive Wayback Machine of an article with summary of limits in FAT32 which is no longer available on Microsoft website Chen Raymond Microsoft TechNet A Brief and Incomplete History of FAT32 Fdisk does not recognize full size of hard disks larger than 64 GB Microsoft Knowledge Base Article 263044 copy made by Internet Archive Wayback Machine Explains inability to work with extremely large volumes under Windows 95 98 Microsoft Windows XP FAT32 File System copy made by the Internet Archive s Wayback Machine of an article with summary of limits in FAT32 which is no longer available on Microsoft website Retrieved from https en wikipedia org w index php title File Allocation Table amp oldid 1217239036, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.