File Allocation Table: Difference between revisions

Content deleted Content added
References: (replaced dead link to patent for reference #11)
 
(2 intermediate revisions by 2 users not shown)
Line 1:
{{Short description|File system used forby MS-DOS, Windows9X and otherWindows PCs9x}}
{{further|Design of the FAT file system}}
 
Line 358:
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 [[File control block|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 [[Cylinder-head-sector|CHS]] addressing only. When [[Windows&nbsp;95]] (MS-DOS 7.0) introduced [[Logical block addressing|LBA]] disk access, partitions could start being physically located outside the first c. 8&nbsp;GB<!-- exact value is somewhat smaller --> 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 <code>[[Partition type#PID_0Eh|0x0E]]</code> in the partition table instead. FAT16 partitions using this partition type are also named '''FAT16X'''.<ref name="Microsoft_2004_KB120138" /> 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 <code>RDE</code> and sector size <code>SS</code>, the number <code>RDS</code> of root directory sectors is <code>RDS = ceil((RDE × 32) / SS)</code>, and <code>RDE</code> is normally chosen to fill these sectors, i.e., <code>RDE × 32 = RDS × SS</code>. 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.<ref name="MKDOSFS" />
Line 474:
In order to support [[Java (programming language)|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.<ref name="IBM_4690_Programming_Guide" />
 
=== <span id="ADS"></span>Forks and alternate data streams ===
{{Unreferenced section|date=August 2025}}
 
The FAT file system itself is not designed for supporting [[fork (file system)|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]]).