File Allocation Table ( FAT ) is the computer and family file system architecture of the industry standard file system that uses it. The FAT file system is an ongoing standard that borrows source code from the original, legacy and proven simple file system. It offers a useful performance even in lightweight applications, but it can not deliver the same performance, reliability, and scalability as some modern file systems. However, it is supported for reasons of compatibility by virtually all operating systems being developed for personal computers and many mobile devices and embedded systems, and thus is a suitable format for data exchange between computers and devices of almost all types and ages from 1981 to the time this.
Originally designed in 1977 for use on floppy disks, the FAT was quickly adapted and used almost universally on hard disks throughout DOS and Windows 9x for two decades. When disk drives evolve, the file system capabilities have been extended accordingly, resulting in three major file system variants: FAT12, FAT16 and FAT32. The FAT standard has also been expanded in other ways while generally maintaining backward compatibility with existing software.
With the introduction of more powerful computers and operating systems, as well as the development of more complex file systems for them, FAT is no longer the default file system for use on Microsoft Windows computers.
The FAT file system is still frequently found on floppy disks, flash and other solid state memory cards and modules (including USB flash drives), as well as many portable and embedded devices. FAT is the standard file system for digital cameras according to DCF specifications.
Video File Allocation Table
Overview
Draft
span> span> < span id = "Format_Date">
The file system name comes from the use of a prominent file system from the index table, File Allocation Table ( FAT ), allocated statically at formatting. The table contains an entry for each cluster , a contiguous disk storage area. Each entry contains either the next number of clusters in the file, or a marker that indicates the end of the file, unused disk space, or a special backup area of ââthe disk. The root directory of the disk contains the first cluster number of each file in that directory; the operating system can then traverse the FAT, searching for the cluster number of each successive part of the disk file as the cluster chain until the end of the file is reached. Similarly, sub-directories are implemented as special files containing directory entries of their own files.
Originally designed as an 8-bit file system, the maximum number of groups has increased significantly when disk drives have evolved, and so the number of bits used to identify each cluster has grown. The main variants of successive FAT formats are named after the number of table element bits: 12 (FAT12), 16 (FAT16), and 32 (FAT32). Except for the original 8-bit FAT precursor, each of these variants is still in use. The FAT standard has also been expanded in other ways while generally maintaining backward compatibility with existing software.
Using
The FAT file system has a long history (over three decades) of use on desktops and portable computers, and is often used in embedded solutions.
FAT offers good performance and toughness, even in very lightweight applications. It is therefore widely adopted and supported by almost all existing operating systems for personal computers as well as some home computers and many embedded systems. It also makes it a useful format for solid-state memory cards and an easy way to share data between operating systems.
The FAT file system is the default file system for removable media (with the exception of CDs and DVDs) and is thus commonly found on floppy disks, super-floppies, memory and flash memory cards or USB flash drives and is supported by most portable devices such as PDAs , digital camera, camcorder, media player, or mobile phone. While FAT12 is ubiquitous on floppy disks, FAT16 and FAT32 are usually found in larger media.
FAT is also commonly used on hard disks throughout DOS and Windows 9x eras, but its use on hard drives has declined since the introduction of Windows XP, which primarily uses the newer NTFS. FAT is still used on hard drives that are expected to be used by multiple operating systems, such as in shared environments Windows, GNU/Linux and DOS.
Due to the widespread use of FAT formatted media, many operating systems provide support for FAT through official file system handlers or third parties. For example, OS/2, GNU/Linux, FreeBSD and BeOS provide built-in support for FAT, although they also support more sophisticated file systems like ext4 or btrfs. Mac OS 9 and macOS support FAT file systems on volumes other than boot disks. AmigaOS supports FAT via CrossDOS package.
For many purposes, the NTFS file system is superior to FAT in terms of features and reliability; The main drawback is the complexity and size of overhead for small volumes as well as very limited support by anything other than NT-based Windows versions, because the exact specifications are Microsoft's trade secret. The availability of NTFS-3G since mid-2006 has led to much better NTFS support in Unix-like operating systems, greatly reducing these concerns. It is still impossible to use NTFS in operating systems such as -DOS without third-party drivers, which in turn makes it difficult to use DOS floppy for recovery purposes. Microsoft provides the Recovery Console to resolve this issue, but for security reasons, very limited what can be done via the Recovery Console by default. The movement of the recovery utility to boot CDs based on BartPE, Linux (with NTFS-3G), or WinPE erodes this vulnerability, but the complexity of NTFS prevents its application in lightweight operating systems or most embedded systems.
The DCF file system adopted by almost all digital cameras since 1998 defines a logical file system with 8.3 filenames and makes use of FAT12, FAT16, FAT32 or exFAT mandatory for its physical layer to maximize platform interoperability.
FAT is also used internally for EFI system partition (partition type 0xEF ) at the computer booting stage compatible with EFI.
FAT hidden filesystems are also used in UEFI boot partitions on modern PCs where UEFI specifications require the appropriate firmware to be able to read FAT12, FAT16 and FAT32 compliant partition.
For floppy disks, the FAT has been standardized as ECMA-107 and ISO/IEC 9293: 1994 (replacing ISO: 9293: 1987). These standards include FAT12 and FAT16 with only brief support of 8.3 file names; long filename with partially patented VFAT.
Nomenclature
Technically, the term "FAT file system" refers to the three main variants of the file system, FAT12, FAT16 and FAT32, and most parties clearly distinguish between them if necessary. In contrast to this, Microsoft typically no longer distinguishes between the three since the introduction of FAT32, and refers to FAT12 and FAT16 as "FAT", while "FAT32" is specifically treated in dialog boxes and documentation. This can sometimes cause confusion if the actual file system type being used is not mentioned or can not be explicitly specified (eg, "Do you want to format as FAT or FAT32?" Instead of "Do you want to format as FAT12, FAT16 or FAT32?").
Another common cause of confusion exists in the FAT16 file system group, since the term "FAT16" refers to both, both the entire FAT file system group with a 16-bit wide cluster entry, or a special only native implementation with 16 sector-bit entries, when it becomes necessary to distinguish between the original and the later implementation. While technically newer variants with 32-bit sector entries are called "FAT16B", this is commonly referred to as "FAT16" as well, especially since the original variant is rarely seen today and is usually only used on small media when backwards compatibility with DOS before 3.31 required.
Furthermore, the term "VFAT" has caused misunderstandings as well, since it is sometimes misused as if it would describe another variant of the FAT file system to be distinguished from the FAT12, FAT16 and FAT32 file systems, while in fact not specifying another file system, but an optional extension, which can work on top of FAT file systems, FAT12, FAT16 or FAT32. Volumes that use old VFAT file names can be read also by operating systems that do not support VFAT extensions, as long as any operating system supports the underlying file system (FAT12, FAT16, or FAT32).
Yet another cause for misunderstanding comes from some obvious redundancy and possible ambiguity in the definition of FAT volumes. Common file system types (FAT12, FAT16 or FAT32) are determined by the width of the cluster entry in FAT. The specific threshold values ââfor the number of groups (as stored in the BPB) have been established to determine the type of FAT used. Despite other properties such as volume size, sector count, BPB format, file system name in EBPB, or -in case of partitioned media- the partition ID used may often look very well suited criteria as well, they can not be reliably used to obtain this type of system files from within all scenarios. Although not common, it is technically possible to specify FAT12 or FAT16 volumes using "FAT32 EBPB" (which is a misnomer for the EBPB variant introduced with DOS 7.1), which is typically used only for FAT32 volumes. Also, while ID partitions sometimes show special properties such as hidden, secure, CHS or LBA access to the operating system, and are therefore often used in conjunction with certain file system variants only, they are not usually used to define the file system types themselves, but rather to keep an operating system (older or foreign) that does not know the partition ID of accessing partitions that can not be handled or malfunctioned. Therefore it is necessary to distinguish generic FAT file system types like FAT12, FAT16 or FAT32 from FAT partition type like FAT12, FAT16, FAT16B, FAT16X, FAT32, FAT32X etc...
Maps File Allocation Table
Type
The original 8-bit FAT
The original FAT file system (or FAT structure , as originally called) was designed and coded by Marc McDonald, based on a series of discussions between McDonald and Bill Gates. It was introduced with 8-bit table elements (and valid data cluster numbers up to 0xBF ) in the precursor for Microsoft Standalone Disk BASIC-80 for 8080 successor-based NCR 7200 data entry terminal model VI, equipped with an 8 inch (200 mm) floppy disk, in 1977/1978. In 1978, Standalone Disk BASIC-80 was ported to 8086 using an emulator on the DEC PDP-10, since no real 8086 system was available at this time. The FAT file system is also used in Microsoft MDOS/MIDAS, operating system for the 8080/Z80 platform written by McDonald since 1979. The Standalone Disk BASIC version supports three FAT, while these are parameters for MIDAS. Reportedly, MIDAS is also prepared to support 10-bit, 12-bit and 16-bit FAT variants. While the size of directory entry is 16 bytes in Standalone Disk BASIC , MIDAS occupies 32 bytes per entry.
Paterson's team from Seattle Computer Products (SCP) was first introduced to Microsoft's FAT structure when he helped Bob O'Rear adapt the Standalone Disk BASIC-86 emulator port to the SCP's S-100 bus 8086 CPU board prototype for one week guests at Microsoft in May 1979. The final product featured at Lifeboat Associates booth at the National Computer Conference in New York on June 4-7, 1979, where Paterson studied more sophisticated FAT implementations at MDOS/MIDAS and McDonald talked to him about the design file system.
FAT12
Between April and August 1980, while borrowing the FAT concept for its own 8086 QDOS 0.10 operating system, Tim Paterson extended table elements up to 12 bits , reduced the number of FATs into two, redefined the semantics of some of the reserved cluster values , and modify the disk layout, so that the root directory is now located between the FAT and the data area for implementation FAT12 . Paterson also increases the nine character file length limit (6.3) to eleven characters to support 8.3 CP/M-style file names and File Control Blocks. The format used in Microsoft The standalone file system registrar is not supported by QDOS. In August 1980, QDOS was renamed to 86-DOS. Starting with 86-DOS 0.42, the size and layout of the directory entry is changed from 16 bytes to 32 bytes to add the file date stamp and increase the theoretical file size limit beyond the previous 16 MB limit. 86-DOS 1.00 became available in early 1981. Then in 1981, 86-DOS evolved into Microsoft MS-DOS and IBM PC DOS. Ability to read previously formatted volumes with 16-byte directory entry dropped with MS-DOS 1.20.
Originally designed as a file system for floppy disks, FAT12 uses a 12-bit entry for cluster addresses in FAT, which not only limits the maximum possible maximum data set to 4078 (for the 0x002 data cluster to 0xFEF ) or in some controlled scenarios even up to 4084 (for data clusters 0x002 to 0xFF5 ), but make complicated FAT manipulations with 8-bit PCs and 16-bit registers. (While MS-DOS and PC DOS support up to 4084 data sets on the FAT12 volume in general, the 0xFF0 cluster value is treated as an additional end-chain marker on any FAT12 volume since MS- DOS/PC DOS 3.3, which also introduces the media descriptor value 0xF0 ââtt>, therefore limiting the maximum practical number of data groups to 4078 for compatibility with this operating system.)
The disk size is stored and counted as a 16-bit count of the sector, which limits the size to 32 Mi MiB for a logical sector size of 512 bytes. FAT12 is used by several manufacturers with different physical formats, but the floppy disks are generally 5.25 inches (130 mm), one side, 40 tracks, with 8 sectors per track, resulting in a capacity of 160 KiB for both. system and file areas. The FAT12 limit exceeds this capacity by a factor of ten or more. (NB) The 32 M MiB limit is then circumvented using logical sectoral FATs with logical sector sizes greater than 512 bytes in some OEM versions of MS-DOS 3.x, but this becomes unused when FAT16B becomes available with DOS 3.31, which supporting 32 -some sector numbers and thus increasing borders.)
By convention, all control structures are arranged to fit within the first track, thus avoiding head movement during read and write operations, although this varies depending on the manufacturer and the physical format of the disk. The unresolved limitation until some time later (with FAT32) is that any bad sectors in the control structure area, track 0, can prevent the disk unusable. The DOS formatting tool rejects the disk completely. Bad sectors are only allowed in the data file area and (since DOS 2.0) are marked with the reserved value 0xFF7 in FAT. They make the entire cluster that contains unusable.
While 86-DOS supports three disk formats (250.25 KiB, 616Ã, KiB and 1232Ã, KiB with FAT IDs 0xFF and 0xFE ) on an 8-inch floppy drive (200 mm), IBM PCÃ, DOS 1.0, was released with the original IBM Personal Computer in 1981, supporting only 8-sector floppy formats with formatted capacities of 160Ã,Ã KiB (FAT ID 0xFE ) for single- side 5.25 inch drives, and PCÃ, DOS 1.1 adds support for two-sided format with 320Ã,Ã KiB (FAT ID 0xFF ). PC DOS 2.0 introduces support for 9-sector floppy formats with 180Ã, KiB (FAT ID 0xFC ) and 360Ã, KiB (FAT ID 0xFD ).
The 86-DOSÃ directory entry, 1.00 and PCÃ, DOS 1.0 contains only one date, the last modified date. PCÃ, DOS 1.1 added the last modification time. The PCÃ attributes file, DOS 1.x includes hidden bits and system bits, with the remaining six bits undefined. At this time, DOS does not support a hierarchical file system, which is still acceptable, given that the number of files on a disk is usually no more than a few dozen.
PC XT is the first PC with IBM hard drives, and PCÃ,Ã DOS 2.0 supports hard drives with FAT12 (FAT ID 0xF8 ). The fixed assumption of 8 sectors per cluster on the hard disk practically limits the size of the maximum 16 MB partition to 512 bytes of sectors and 4 KiB clusters.
The BIOS Parameter Block is introduced with PCÃ,Ã DOSÃ, 2,0 as well, and this version also adds read-only, archives, label volumes, and directory attribute bits to hierarchical sub-directory.
MS-DOS 3.0 introduces support for the 5.25-inch high-density 1.2-MIB diskette (media descriptors 0xF9 ), which has 15 sectors per track, resulting in more space for FAT.
FAT12 is still used on all common floppy disks, including 1.44 MiB and then 2.88 MiB disks (media byte descriptors 0xF0 âââ ⬠). FAT16 Home
On August 14, 1984, IBM released the AT PC, which featured hard drives 20à ©, MiB and PCÃ,à DOSÃ, 3.0. Microsoft introduced MS-DOS 3.0 in parallel. The cluster address is upgraded to 16-bit, allowing up to 65,524 clusters per volume, and consequently larger file system sizes, at least in theory. However, the maximum number of sectors and maximum (partition, not disk) size of 32M MiB is unchanged. Therefore, even though the cluster address is 16 bits, this format is not the one today generally understood as FAT16 . A partition type 0x04 shows the shape of FAT16 with less than 65536 sectors (less than 32Ã, MiB for sector size 512).
With the initial implementation of FAT16 not actually providing for larger partition sizes than FAT12, the initial benefit of FAT16 is to allow the use of smaller clusters, making disk usage more efficient, especially for large numbers of files just a few hundred bytes in size.
Like MS-DOS 3.0 and higher formatted all 16 MiB-32 MiB partitions in FAT16 format, hard disk 20Ã, MiB formatted under MS-DOS 3.0 can not be accessed by MS-DOS 2.0 even though MS-DOSÃ, 2.0 can access 16 partitions MiB-32Ã, MiB FAT12. MS-DOS 3.0 can still access MS-DOSÃ, 2.0-style 8Ã cluster partition, KiB FAT12 under 15 MiMB and MS-DOS 3.31 and higher can access but not format MS-DOSÃ, 2.0-style partition of FAT12 from 16Ã,Ã MiB up to 32Ã, MiB.
FATER sectoral FAT
As hard disks grow larger and FAT12 and FAT16 file system implementations in MS-DOS/PCÃ, DOS does not provide the means to take advantage of extra storage, some manufacturers develop their own FAT variants to solve problems in their OEM MS-DOS problems.
Some vendors (AST and NEC) support eight instead of four standards, primary partition entries in their habits extend the Master Boot Record ( MBR ), and they adapt MS-DOS to use more than one primary partition.
Other vendors work around the volume size limits imposed by 16-bit sector entries and arithmetic by increasing the size of the sectors handled by the file system, thus blowing up the dimensions.
These are called logical sectors larger (up to 8192 bytes) than the physical sector size (typically 512 bytes) as expected by BIOS-13H BIOS or disk drive hardware. BIOS-DOS or BIOS The system will then merge multiple physical sectors into the logical sectors for the file system to work. This change is transparent for the implementation of the file system in the DOS kernel, because in the system volume the system file abstraction is seen as a linear sequence of logically addressable sectors, also known as absolute sectors (addressed by Logical Sector Number ( LSN ), beginning with LSN0) does not depend on the physical location of the volume on the physical medium and its geometry. The underlying DOS-BIOS translates these logical sectors to the physical sector according to the partition information and the physical geometry of the drive.
The downside of this approach is the less efficient buffering and deblocking in memory in DOS-BIOS, thus causing an increase in memory footprint for DOS data structures. Because older DOS versions are not flexible enough to work with this logical geometry, OEMs should introduce new partition IDs for their FAT variants to hide them from MS-DOS and PC DOS off-the-shelf problems. The identified partition IDs for logical 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), 0x56 (AT & amp; 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 ). OEM versions like Toshiba MS-DOS, WyseÃ, MS-DOSÃ, 3.2 and 3.3, and ZenithÃ,Ã MS-DOS are also known to have utilized the logical sector.
Although not standard and less than optimal, this FAT variant is very valid in accordance with the specification of the file system itself. Therefore, even if the default problem is MS-DOS and PCÃ, DOS can not solve it, most of these vendor-specific FAT12 and FAT16 variants can be installed by a more flexible file system implementation in an operating system such as DR-DOS, simply by changing the partition ID to one of the known types. Also, if they no longer need to be recognized by their original operating system, existing partitions can be "converted" to FAT12 and FAT16 volumes are more compatible with MS-DOS/PCÃ,î versions, DOSÃ,à 4.0-6.3, which do not support different sector sizes. of 512 bytes, by switching to BPB with 32-bit entries for sector counts, as introduced since DOS 3.31 (see FAT16B below), maintaining cluster size and reducing logical sector sizes in BPB to 512 bytes, while at the same time increasing the number of logical sectors per cluster, the logical sector provided, the total logical sector, and the logical sector per FAT by the same factor.
The parallel development in MS-DOS/PCÃ, DOS that allows an increase in the probability of a maximum FAT size is the introduction of multiple FAT partitions on the hard disk. To enable the use of more FAT partitions in a compatible way, a new partition type was introduced in PCÃ, DOSÃ, 3.2 (1986), extended partition (EBR), which is a container for an additional partition called logical drive . Since PCÃ,Ã DOSÃ,Ã 3.3 (April 1987), there is another optional optional partition that contains the next logical drive, and so on. MBR from the hard disk can specify up to four main partitions, or extended partitions in addition to three main partitions.
Final FAT16
In November 1987, Compaq Personal Computer DOS 3.31 (a modified OEM version of MS-DOS 3.3 released by Compaq with their machine) introduced what today is known as the FAT16 format, with the extension of 16-bit disk sector counts up to 32 bits in BPB. Despite changes to the small disk, the entire DOS driver disk must 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 originally called DOS 3.31 Large File System . The DSKPROBE tool Microsoft refers to the 0x06 type as BigFAT , while some older versions of FDISK describe it as BIGDOS . Technically, this is known as FAT16B .
Because older DOS versions are not designed to address more than 65535 sectors, it is necessary to introduce a new partition type for this format to hide it from pre-3.31 DOS issues. The original form FAT16 (with less than 65536 sectors) has the 0x04 partition type. To handle disks larger than this, type 0x06 was introduced to indicate 65536 or more sectors. In addition to this, the disk driver is expanded to address more than 65535 sectors as well. The only other difference between the original FAT16 and the newer FAT16B format is the use of the newer BPB format with 32-bit sector entries. Therefore, a new operating system that supports the FAT16B format can cope also with the original FAT16 format without the necessary changes.
If the partition used by pre-DOS 3.31 DOS problem needs to be made by modern tools, the only criteria that theoretically required to fulfill is the sector number less than 65536, and the use of the old partition ID ( 0x04 ). But in practice, type 0x01 and 0x04 The primary partition should not physically be beyond the first 32M MiB of the disk, because of other restrictions in MS-DOS 2.x, which can not overcome them otherwise.
In 1988, the increase in FAT16B became more commonly available through DRÃ, DOSÃ,à 3.31, PCÃ,à DOSÃ,à 4.0, OS/2Ã,à 1.1, and MS-DOSÃ,î. The partition size limit is determined by the 8-bit number of sectors per signed cluster, which originally has a maximum power-two values ââof 64. With a standard hard disk size of 512 bytes, it provides a maximum of 32 KiB cluster sizes, thus fixing the "definitive" boundary for FAT16 partition size of 2 GiB for sector size 512. In magneto-optical media, which can have 1 or 2 KiB sector instead of 0.5 KiB, this size limit is proportionally larger.
Then, Windows NT increases the maximum cluster size to 64Ã, KiB, taking into account the sector-per-cluster counted as unsigned. However, the resulting format is not compatible with other FAT implementations of the time, and it results in greater internal fragmentation. Windows 98, SE and ME also support reading and writing of this variant, but the disk utility does not work with it and some FCB services are not available for that volume. This contributes to a confusing compatibility situation.
Prior to 1995, the DOS version accessing the disks through CHS was only handled. When MS-DOSÃ, 7.0Ã,/WindowsÃ, 95 introduce LBA disk access, partitions can start physically outside of ca. 8Ã, GiB of this disk and thus beyond the scope of the traditional CHS addressing scheme. Partitions partially or completely are located outside the CHS barrier therefore must be hidden from non-LBA-enabled operating systems by using the new 0x0E partition type in the partition table instead. The FAT16 partition using this partition type is also named FAT16X . The only difference, compared to previous FAT16 partitions, is the fact that some associated CHS geometry entries in BPB records, ie number of sectors per track and head number, may contain non-misleading values ââand should not be used.
The number of available root directory entries for FAT12 and FAT16 is determined when the volume is formatted, and is stored in a 16-bit field. For the numbers given RDE
and sector size SS
, the RDS
number of the root directory sector is RDS = ceil ((RDEÃÆ'- 32)/SS)
, and RDE
are usually selected to populate these sectors, that is, RDE * 32 = RDS * SS
. FAT12 and FAT16 media typically use 512 root directory entries on non-floppy media. Some third-party tools, such as mkdosfs, allow users to set these parameters.
FAT32
To overcome the FAT16 volume size limit, while at the same time allowing real DOS mode codes to handle formatting, Microsoft designed a new version of the file system, FAT32 , which supports the possible increase in cluster number, but can reuse most of the existing code, so the conventional memory footprint increases by less than 5 KiB under DOS. The cluster value is represented by a 32-bit number, where 28 bits are used to store the cluster number. The boot sector uses a 32-bit field to calculate sectors, limiting the FAT32 volume size to 2 TiB for sector sizes of 512 bytes and 16 TiB for sector sizes of 4,096 bytes. FAT32 was introduced with MS-DOSÃ, 7.1/WindowsÃ, 95Ã, OSR2 in 1996, although reformatting is required to use it, and DriveSpace 3 (the version that comes with WindowsÃ,95Ã, OSR2 and WindowsÃ, 98) never supports it. Windows 98 introduced a utility to convert an existing hard disk from FAT16 to FAT32 without losing data. On the Windows NT line, native support for FAT32 arrives in Windows 2000. The free FAT32 driver for Windows NT 4.0 is available from Winternals, the company which was later acquired by Microsoft. The acquisition of drivers from official sources is no longer possible. Since 1998, DRDAT32 DRDAT32 drivers can be dynamically loaded to enable FAT32 support in DR-DOS. The first version of DR-DOS to natively support FAT32 and LBA access was OEM DR-DOS 7.04 in 1999. In the same year IMS introduced FAT32 genuine support with REAL/32Ã,Ã,9,90 and IBM 4690Ã,Ã OS added FAT32 support with version 2 The Ahead Software provides another dynamically loaded FAT32.EXE driver for DR-DOS 7.03 with Nero Burning ROM in 2004. The IBM DOS PC introduced FAT32 native support with OEM DOS 7.10 PCs in 2003.
The maximum possible size for files in FAT32 volumes is 4Ã, GiB minus 1 byte or 4,294,967,295 (2 32 - 1) bytes. This limit is a consequence of long file entries in the directory table and will also affect large FAT16 partitions with sufficient sector sizes. Large video files, images and DVD databases often exceed this limit.
Like the previous file system, the FAT32 file system design does not include direct direct support for long file names, but FAT32 volumes can optionally store long VFAT file names in addition to short file names in exactly the same way as long VFAT file names have been optionally implemented for volumes FAT12 and FAT16.
Two partition types have been provided for FAT32 partitions, 0x0B and 0x0C . The last type is also named FAT32X to indicate the usage of LBA disk access rather than CHS. On the partition, the CHS geometric entry, the CHS sector address in the MBR as well as the number of sectors per track and the number of heads in the EBPB record, may contain non-misleading values ââand should not be used.
Extensions
Extended Attributes
OS/2 relies heavily on the extended attribute (EA) and stores it in a hidden file called " EASPDATA.SPSF
" in the root directory of FAT12 or FAT16 volumes. This file is indexed by two bytes previously stored in file directory entries (or directories) at offset 0x14 . In FAT32 format, this byte holds the top 16 bit from the initial cluster number of a file or directory, making it impossible to store OS/2 EA on FAT32 using this method.
However, FAT32 installed third-party file system (IFS) FAT32.IFS version 0.70 and higher by Henk Kelder & amp; Netlabs for OS/2 and eComStation stores extend attributes in extra files with filenames that have the string " SPEA.SPSF
" added to the regular file names of the files they own. The driver also uses a byte at offset 0x0C in the directory entry to store a special sign indicating the presence of an extended attribute to help speed things up. (This extension is not very compatible with the FAT32 method for storing files larger than 4à ¢, GiB minus 1 on FAT32 volumes.)
Expanded attributes can be accessed through the Workplace Shell desktop, via REXX scripts, and many GUI systems and command line utilities (like 4OS2).
To accommodate the OS/2 subsystem, Windows NT supports extended attribute handling in HPFS, NTFS, FAT12 and FAT16. This keeps the EA on FAT12, FAT16 and HPFS using the exact same scheme as OS/2, but it does not support other ADS types as it is held on NTFS volumes. Attempting to copy a file with ADS other than EA from NTFS volume to FAT or HPFS volumes gives a warning message with the name of the ADS to be lost. It does not support the FAT32.IFS method for storing EA on FAT32 volumes.
Windows 2000 onwards acts exactly like Windows NT, except that it ignores EA when copying to FAT32 without any warning (but shows warnings for other ADSs, like "Macintosh Finder Info" and "Macintosh Resource Fork").
Cygwin also uses the file " EASPDATA.SPSF
".
Long filename
One of the goals of the user experience for Windows 95 designers is the ability to use long filenames (LFNs - up to 255 units of UTF-16 code), in addition to the classic 8.3 (SFN) file name. For backward compatibility and advanced LFN is implemented as an optional extension above the existing FAT file system structure using a solution in how to enter directory directories.
This transparent method to store long filenames in an existing FAT file system without changing its data structure is usually known as VFAT (for "Virtual FAT") after the Windows 95 virtual device driver.
Non-VFAT-enabled operating systems can still access files under their short file aliases without restriction; however, the associated long file names may be lost, when files with long file names are copied under a non-VFAT-aware operating system.
In Windows NT, support for long VFAT file names starts from version 3.5.
GNU/Linux provides the VFAT filesystem driver to work with FAT volumes with long VFAT file names. For a while, UVFAT drivers are available to provide combined support for UMSDOS style permissions with long VFAT file names.
OS/2 adds long filename support for FAT using extended attribute (EA) prior to VFAT introduction; thus, the long VFAT file name is not visible by OS/2, and long EA file names are not visible to Windows, therefore experienced users of both operating systems must manually rename the files.
Human68K is supported up to 18.3 filenames and (Shift JIS) Kanji characters in a proprietary FAT file system variant.
To support Java applications, IBM 4690 OS version 2 based FlexOS introduces its own virtual file system architecture (VFS) to store long filenames in the FAT file system in a backward compatible manner. If enabled, the virtual file name (VFN) is available under separate logical drive letters, while the original file name (RFN) remains available under the original drive letter.
Forks and Alternative Data Flow
The FAT file system itself is not designed to support Alternate Data Streams (ADS), but some operating systems that depend heavily on them have found various methods to handle them in FAT drives. Such methods store additional information in extra files and directories (Mac OS and classic macos), or provide new semantics to previously unused data fields from FAT on-disk data structures (OS/2 and Windows NT).
MacÃ, OS using PC Exchange stores various dates, file attributes and long file names in a hidden file called " FINDER.DAT
", and a resource fork (common Mac OS OS) in a subdirectory called "< code> RESOURCE.FRK ", in each directory where they are used. From PCÃ,à ExchangeÃ,Ã,2,1 and so on, they store the Macà file names, the old OS as the standard long FAT file name and convert the FAT file names to more than 31 characters to a unique 31-character file name, which can then be made visible by the Macintosh app.
macos saves forks and resource metadata (file attributes, other ADSs) using AppleDouble format in hidden files with names built from owner file names beginning with "._
", and the Finder stores multiple folders and files metadata in a hidden file named ".DS_Store
" (but note that the Finder uses .DS_Store
even on the native MacOS filesystem, HFS).
Permissions and UMSDOS file name
The initial distribution of GNU/Linux also supports a format known as UMSDOS, a FAT variant with Unix file attributes (such as long file names and access permissions) stored in separate files called " - linux -.---
". UMSDOS becomes unused after VFAT is released and is not enabled by default in Linux from version 2.5.7 and beyond. For some time, Linux also provides combined support for UMSDOS style permissions and long VFAT file names via UVFAT.
Derivatives
Turbo FAT
In NetWare File System (NWFS) Novell implements a highly modified variant of the FAT file system for the NetWare operating system. For larger files are used performance features named Turbo FAT.
FATX
FATX is a family of file systems designed for the Xbox video game console of Microsoft hard disk drives and memory cards, introduced in 2001.
While resembling the same basic design idea as FAT16 and FAT32, the on-disk FATX16 and FATX32 structures are simplified but basically incompatible with normal FAT16 and FAT32 file systems, making it impossible to the normal FAT file system driver to mount the volume.
The non-bootable superblock sector has size 4Ã, Ki KiB and has an 18-byte BPB-like structure that is completely different from normal BPB. The cluster is generally 16 KiB and there is only one copy of FAT on the Xbox. The directory entry is 64 bytes in size instead of the normal 32 bytes. Files can have file names of up to 42 characters using OEM character sets and up to 4Ã, GiB reduced by 1 byte in size. The on-disk timestamp keeps the date of creation, modification and access and time but different from FAT: in FAT, the time is 1980; in FATX, its time is 2000. On Xbox 360, its time is 1980.
exFAT
exFAT is a file system that was 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 (and/or a separate installation of Windows XP KB955704 Update). It is loosely based on the File Allocation Table architecture, but is not compatible, proprietary and protected by patents.
exFAT is intended for use on flash drives (such as SDXC and Memory Stick XC), where FAT32 is used otherwise. Microsoft GUI and command line format utilities offer it as an alternative to NTFS (and, for smaller partitions, to FAT16B and FAT32). The type of MBR partition is 0x07 (same as used for IFS, HPFS, and NTFS). Logical geometry information located in VBR is stored in a format that does not resemble BPB type.
< span id = "FAT32B"> FAT
In 2007, the open draft FAT proposed how to store larger files up to 256Ã, GiB minus 1 byte or 274,877,906,943 (2 38 Ã,-1) bytes on slightly modified and reverse backward FAT32 volumes-compatible, but it imposes a risk that disk tools or FAT32 implementations are unaware this extension can cut or delete files beyond the normal FAT32 file size limit. Support for FAT32 and FAT16 is limited to some DR-DOS versions and is not available on the main operating system. (This extension is not very compatible with the /EAS
option of the FAT32.IFS method for storing the expanded OS/2 attributes on FAT32 volumes.)
Patent
Microsoft applied for, and awarded, a series of patents for important parts of the FAT file system in the mid-1990s. The fourth relates to the long file name extension for FAT which was first seen in Windows 95: US patent 5,579,517, US patent 5,745,902, US patent 5,758,352, US patent 6,286,013.
On December 3, 2003 Microsoft announced that it would offer a license for the use of its FAT specifications and "related intellectual property", at a royalty fee of US $ 0.25 per unit sold, with a maximum royalty of $ 250,000 per license agreement. To this end, Microsoft cites four patents on the FAT file system as the basis for its intellectual property claims.
In the EFI FAT32 specification Microsoft specifically provides a number of rights, which many readers interpret as allowing operating system vendors to implement FAT.
Non-Microsoft patents affecting FAT include: US Pat. No. 5,367,671, specific to the OS/2 expansion object attribute (expiring in 2011).
Challenges and lawsuits
The Public Patent Foundation (PUBPAT) submitted evidence to the US Patent and Trademark Office (USPTO) in 2004 that questioned the validity of US patent 5579517, including previous art references from Xerox and IBM. The USPTO opens the investigation and concludes by rejecting all claims in the patent. The following year, the USPTO further announced that after the reexamination process, it confirmed the rejection of '517 and additionally found US patent 5,758,352 invalid on the grounds that the patent was incorrect.
However, in 2006 the USPTO decided that the FAT system implementation features of Microsoft were "new and unclear", reversing both previous decisions and abandoning patents.
In February 2009, Microsoft filed a patent infringement lawsuit against TomTom stating that the device manufacturer infringes the patent associated with the long filename VFAT. Because some TomTom products are based on GNU/Linux, this marks the first time Microsoft has attempted to enforce its patent against the GNU/Linux platform. The lawsuit was settled out of court the following month with an agreement that Microsoft was granted access to four TomTom patents, that TomTom would deny support for long VFAT filenames of its products, and that in return Microsoft did not seek legal action against TomTom for a period of five years from settlement agreement.
In October 2010, Microsoft filed a patent infringement lawsuit against Motorola stating that several patents (including two VFAT patents) are not allowed for use in the Android operating system. They also filed a complaint to the ITC. Open source software developers have devised methods intended to circumvent Microsoft patents.
In 2013, the patent EP0618540 "common namespace for long and short filenames" has been canceled in Germany.
See also
- Comparison of the file system
- Design the FAT file system
- Drive letter assignment
- List of file systems
- Secure FAT Transaction File System
Note
References
External links
- FAT32 File System Description : Microsoft Knowledge Base Article 154997
- MS-DOS: Directory and Subdirectory Restrictions : Microsoft Knowledge Base Article 39927
- File System Overview FAT, HPFS, and NTFS : Microsoft Knowledge Base article 100108
- Microsoft Technet; The volume and file size limits of the FAT file system , a copy made by the Internet Archive Wayback Machine of an article with a border summary in FAT32 that is no longer available on the Microsoft website.
- Chen, Raymond; Microsoft TechNet: Brief History and Incomplete FAT32
- Fdisk does not recognize the full size of hard disks larger than 64 GB : Microsoft Knowledge Base article 263044
- Microsoft Windows XP: FAT32 File System , a copy made by the Internet Return Machine Archive of an article with a border summary in FAT32 that is no longer available on the Microsoft website.
Source of the article : Wikipedia