Content deleted Content added
m Fixed k capitalization in frequency and storage capacity units (via WP:JWB) |
m Restored kB to KB per Kilobyte#Use of term (via WP:JWB) |
||
Line 25:
| max_files_no = {{ubli
| FAT12: 4,068 for 8 [[kilobyte|KB]] clusters <!-- 2^12 − 12 (reserved clusters) − 16 (number of 8 KB clusters for directory entries) -->
| FAT16: 65,460 for 32
| FAT32: 268,173,300 for 32
}}
| max_filename_size = [[8.3 filename]], or 255 [[UCS-2]] characters when using [[Long filename|LFN]]<ref group="nb" name="NB_LFN_UNI">Since [[Windows 2000]], Microsoft Windows uses [[UTF-16]] instead of [[UCS-2]] for the [[Unicode in Microsoft Windows|internal "Unicode"]]. In UTF-16, a "character" (code point) may take up two code units.</ref>
| max_volume_size = {{ubli
| FAT12: 32 [[megabyte|MB]]<!-- with 2^16 sectors á 512 bytes, or with 8 KB clusters --> (256 MB for 64
| FAT16: 2 GB (4 GB for 64
| FAT32: 2 [[terabyte|TB]] (16 TB for [[4Kn|4 KB sectors]])
}}
Line 170:
}}
| max_volume_size = {{ubli
| 16 MB (with 4
| 32 MB (with 8
}}
| max_file_size = Limited by volume size
| file_size_granularity = 1 byte
| max_files_no = 4,068 for 8
| max_filename_size = [[8.3 filename]] with [[OEM character set|OEM]] characters, <br />255 [[UCS-2]] characters<ref group="nb" name="NB_LFN_UNI"/> when using [[Long filename|LFN]]
| max_directory_depth = 32 levels or 66 characters (with [[Current Directory Structure|CDS]]), <br />60 levels or more (without CDS)
Line 201:
| 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]],<ref name="Hunter_1983_Softalk" /> Tim Paterson extended the table elements to '''12 bits''',<ref name="Paterson_2007_Design-DOS" /> 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<ref name="Microsoft_1979_BASIC80-50" /><ref name="Microsoft_1979_BASIC80-51" /> length limit to eleven characters to support [[CP/M]]-style [[8.3 filename]]s and [[File Control Block]]s. 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]].<ref name="BYTE_1980_86-DOS" /> Starting with [[86-DOS 0.42]], the size and layout of directory entries was changed from 16 bytes to 32 bytes<ref name="SCP_1981_86-DOS_1.0_Addendum" /> in order to add a file date stamp<ref name="SCP_1981_86-DOS_1.0_Addendum" /> and increase the theoretical file size limit beyond the previous limit of 16
[[86-DOS 1.00]] became available in early 1981. Later in 1981, 86-DOS evolved into Microsoft's [[MS-DOS]] and [[IBM]] [[PC DOS]].<ref name="Duncan_1988_MS-DOS_Encyclopedia" /><ref name="Paterson_2007_Design-DOS" /><ref name="Wallace_1992_Harddrive" />
The capability to read previously formatted volumes with 16-byte directory entries<ref name="SCP_1981_86-DOS_1.0_Addendum" /> 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
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 <code>0xFF7</code> in the FAT.
While 86-DOS supported three disk formats (250.25
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 attribute]]s 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 [[floppy disk|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]] <code>0xF8</code>). 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
The ''[[BIOS Parameter Block]]'' (''BPB'') was introduced with PC DOS 2.0 as well, and this version also added read-only, [[archive bit|archive]], [[volume (computing)|volume label]], and [[Directory (file systems)|directory]] attribute bits for hierarchical sub-directories.<ref name="two" />
Line 236:
| max_file_size = 4,294,967,295 bytes (4 GB − 1)<!-- Not "limited by volume size" if volumes larger than 4 GB are possible. -->
| file_size_granularity = 1 byte
| max_files_no = 65,536 for 32
| max_filename_size = [[8.3 filename]] with [[OEM character set|OEM]] characters, 255 [[UCS-2]] characters<ref group="nb" name="NB_LFN_UNI"/> when using [[Long filename|LFN]]
| max_directory_depth = 32 levels or 66 characters (with [[Current Directory Structure|CDS]]), <br />60 levels or more (without CDS)
Line 262:
| encryption = Per-volume only with [[DR-DOS]]
}}
In 1984, IBM released the [[PC AT]], which
A [[partition type]] <code>[[Partition type#PID_04h|0x04]]</code> 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.
Line 309:
| max_volume_size = {{ubli
| 2 [[gigabyte|GB]] (with 32 [[kilobyte|KB]] clusters)
| 4 GB (with 64
| 8 GB (with 128
| 8 GB (with 128
| 16 GB (with 256
}}
| max_file_size = {{ubli
Line 320:
}}
| file_size_granularity = 1 byte
| max_files_no = 65,460 for 32
| max_filename_size = [[8.3 filename]] with [[OEM character set|OEM]] characters, <br />255 [[UCS-2]] characters<ref group="nb" name="NB_LFN_UNI"/> when using [[Long filename|LFN]]
| max_directory_depth = 32 levels or 66 characters (with [[Current Directory Structure|CDS]]), <br />60 levels or more (without CDS)
Line 354:
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 (<code>[[Partition type#PID_04h|0x04]]</code>). In practice however, type <code>[[Partition type#PID_01h|0x01]]</code> and <code>[[Partition type#PID_04h|0x04]]</code> 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 [[Signedness|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
Much later, [[Windows NT]] increased the maximum cluster size to 64
Prior to 1995, versions of DOS accessed the disk via [[Cylinder-head-sector|CHS]] addressing only. When [[Windows 95]](MS-DOS 7.0) introduced [[Logical block addressing|LBA]] disk access, partitions could start being physically located outside the first c. 8 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.
Line 380:
| min_volume_size = {{ubli
| 32 [[megabyte|MB]] – 4.5 [[kilobyte|KB]] (with 65525 clusters and 512 byte sectors)
| 256 MB – 36
}}
| max_volume_size = {{ubli
| 2 [[terabyte|TB]] (with 512 byte sectors)
| 8 TB (with 2
| 16 TB (with 4
}}
| max_file_size = {{ubli
Line 392:
| 274,877,906,943 bytes (256 GiB − 1 byte)<!-- 2^38 - 1 --> (only with FAT32+<ref name="DRDOS_FAT+_R2" />)
}}
| max_files_no = 268,173,300 for 32
| max_filename_size = [[8.3 filename]] with [[OEM character set|OEM]] characters, <br />255 [[UCS-2]] characters<ref group="nb" name="NB_LFN_UNI"/> when using [[Long filename|LFN]]
| max_directory_depth = 32 levels or 66 characters (with [[Current Directory Structure|CDS]]), <br />60 levels or more (without CDS)
Line 417:
}}
In order to overcome the volume size limit of FAT16, while at the same time allowing DOS [[Real mode|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
==== Maximal sizes ====
Line 505:
While resembling the same basic design ideas as [[#FAT16|FAT16]] and [[#FAT32|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 (file systems)|superblock]] sector is 4
=== exFAT ===
|