File Allocation Table

Source: Wikipedia, the free encyclopedia.

FAT
DoubleSpace, DriveSpace
  • FAT32: No
  • Transparent
    encryption
    • FAT12/FAT16: Per-volume only with DR-DOS
  • FAT32: No
  • 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]

    Uses

    Historical

    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

    FAT is used internally for 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,

    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

    The file system uses an index table stored on the device to identify chains of data storage areas associated with a file, the

    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

    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

    8-bit FAT
    6.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

    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.

    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

    FAT12
    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

    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]
    The capability to read previously formatted volumes with 16-byte directory entries
    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.

    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

    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

    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

    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

    FAT16
    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

    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 (

    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:

    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.[

    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

    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

    FAT16B
    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.
    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

    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

    magneto-optical
    media, which can have 1 or 2 KB sectors instead of 0.5 KB, this size limit is proportionally larger.

    Much later,

    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

    FAT32
    4690 OS
    Transparent
    compression
    Yes

    In order to overcome the volume size limit of FAT16, while at the same time allowing DOS

    32-bit
    numbers, of which 28 bits are used to hold the cluster number.

    Maximal sizes

    The FAT32 boot sector uses a 32-bit field for the sector count, limiting the maximal FAT32 volume size to 2 

    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

    FAT32 was introduced with

    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

    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,

    number of heads in the EBPB record, may contain no or misleading values and should not be used.[50][48][49]

    Extensions

    Extended attributes

    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

    command-line utilities (such as 4OS2).[54]

    To accommodate its

    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

    One of the

    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.

    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.

    characters in a proprietary FAT file system variant.

    In order to support

    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

    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

    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.

    HFS+
    ).

    UMSDOS permissions and filenames

    Early Linux distributions also supported a format known as

    UVFAT
    .

    FAT+

    In 2007 the open FAT+ draft proposed how to store

    OS/2 extended attributes
    on FAT32 volumes.)

    Derivatives

    Turbo FAT

    In its

    Turbo FAT
    .

    FATX

    FATX is a family of file systems designed for

    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

    2000. On the Xbox 360, the epoch is 1980.[60]

    exFAT

    exFAT is a file system introduced with

    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

    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

    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

    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

    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

    Notes

    References

    1. ^ a b "File Systems". Microsoft TechNet. 2001. Archived from the original on 2011-08-12. Retrieved 2011-07-31.
    2. ^
      ACCDATE
      =drive1+|- [drive2+|-]...
      "
    3. ^
      S2CID 58178285
      .
    4. ^ "Comparing NTFS and FAT file systems". Microsoft. Archived from the original on 2016-06-20. Retrieved 2014-01-27.
    5. ^ "A brief introduction to FAT (File Allocation Table) formats". 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. Archived 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. Archived 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. Archived 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. Archived 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. Archived from the original on 2021-08-08. Retrieved 2021-08-08.
    12. ^ JEIDA/JEITA/CIPA (2010). "Standard of the Camera & 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.
    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)
    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. 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)
    15. ^
      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
      )
    16. ^ .
    17. ^ 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.
    18. ISBN 0-201-63287-X. (xviii+856+vi pages, 3.5"-floppy) Errata: [2][3]
    19. ^ a b Paterson, Tim (2007-09-30). "Design of DOS". DosMan Drivel. Archived from the original on 2013-01-20. Retrieved 2011-07-04.
    20. 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.)
    21. ^ 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.
    22. , p. 157
    23. . ... 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.
    24. ^ 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.
    25. ^ IBM (1984). IBM PC DOS 3.0 announcement letter.
    26. ^ IBM (1985). IBM PC DOS Technical Reference. First Edition, P/N 6024181, dated February 1985.
    27. ^ "Microsoft Knowledge Base article: "MS-DOS Partitioning Summary"". Archived from the original on 2018-06-12. Retrieved 2018-06-02.
    28. ^ 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
    29. ^ Brouwer, Andries. "List of partition identifiers for PCs". Archived from the original on 2019-04-23. Retrieved 2012-01-11.
    30. ^ "Q78407: Wyse DOS 3.3 Partitions Incompatible with MS-DOS 5.x and 6.x". Microsoft. 2000-12-17.[dead link] Alt URL
    31. ^ "Q68176: Upgrading Pre-4.0 Systems with Logical Drive(s) > 32 MB". Microsoft. 2000-12-17.[dead link] Alt URL
    32. ^ Brouwer, Andries. "Properties of partition tables". Archived from the original on 2019-04-23. Retrieved 2012-01-11.
    33. ^ 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.
    34. ^ "Dskprobe Overview: Data Recovery". Microsoft TechNet. 2003-03-28. Archived from the original on 2011-07-03. Retrieved 2011-08-03.
    35. ^ "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.
    36. ^ "mkdosfs man page". Archived from the original on 2006-10-07. Retrieved 2006-11-21.
    37. ^ "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.
    38. ^ "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
    39. ^ "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.
    40. ^ "Explained: The thinking behind the 32GB Windows Format limit on FAT32".
    41. ^ 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.
    42. ^ a b README.TXT – Caldera DR-DOS FAT32 Enabled Boot Disk (DRFAT32). Caldera, Inc. 1998-07-24.
    43. ^ DRFAT32.SYS R1.00 INT 13h Interface for FAT32 Redirector, Caldera, Inc., 1998-09-11
    44. ^ 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)
    45. ^ Karpowitz, Christina (1998-09-23). "PowerQuest PartitionMagic 4.0 now available". PowerQuest. Archived from the original on 1999-02-08. Retrieved 2015-04-17.
    46. ^ 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.
    47. ^ 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.
    48. ^ a b Costanzo, Lance (1998-05-14). "FAT32X". Archived from the original on 1998-05-21. Retrieved 2015-04-17.
    49. ^ 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.
    50. ^ 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)
    51. 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
      ".
    52. ^ 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.
    53. ^ 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.
    54. ^ 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)
    55. ^ "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.
    56. ^ Kuhnt, Udo (2011-07-21). "DR-DOS/OpenDOS Enhancement Project". Archived from the original on 2016-07-06. Retrieved 2015-04-20.
    57. ^ "FATX Specification". free60 wiki. Archived from the original on 2018-07-26. Retrieved 2011-08-16.
    58. ^ 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.
    59. ^ 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.
    60. ^ Microsoft. "exFAT File System Intellectual Property licensing program". Microsoft. Archived from the original on May 7, 2013. Retrieved 2013-04-23.
    61. ^ "Reverse Engineering the Microsoft exFAT File System | SANS Institute". Archived from the original on 2021-04-21. Retrieved 2021-03-20.
    62. ^ "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.
    63. ^ 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 
    64. ^ 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 
    65. ^ 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 
    66. ^ 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 
    67. ^ Microsoft.com Archived August 22, 2009, at the Wayback Machine
    68. ^ "FAT File System". Intellectual Property Licensing. Microsoft. Archived from the original on 2016-09-21.
    69. ^ 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.
    70. ^ 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 
    71. ^ 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.
    72. (PDF) from the original on 2013-05-26. Retrieved 2014-01-12.
    73. ^ 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.
    74. ^ 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.
    75. ^ Fried, Ina (2009-03-30). "Microsoft, TomTom settle patent dispute". cnet.com. Archived from the original on 2009-08-05. Retrieved 2009-08-22.
    76. ^ "Microsoft Motorola Patent Suit". 2010-10-01. Archived from the original on 2010-10-06. Retrieved 2010-10-02.
    77. ^ 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.
    78. ^ 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.
    79. ^ 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.
    80. ^ [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.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
    81. ^ Müller, 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.
    82. ^ Labesius, Stefan (2017-05-28). "Bundespatentgericht erklärt VFAT-Patent erneut für nichtig". ifrOSS. Archived from the original on 2019-08-02. Retrieved 2019-08-02.

    External links