exFAT

From Wikipedia, the free encyclopedia
Jump to: navigation, search
exFAT
Developer Microsoft
Full name Extended File Allocation Table
Introduced November 2006 (Windows Embedded CE 6.0)
Partition identifier MBR/EBR: 0x07 (same as for HPFS/NTFS)
BDP/GPT: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Structures
Directory contents Table
File allocation bitmap, linked list
Bad blocks Cluster tagging
Limits
Max. file size 16 EiB[nb 1]
Max. number of files up to 2,796,202 per directory[1]
Max. filename length 255 UTF-16 characters
Max. volume size 64 ZiB, 512 TiB recommended[2]
Allowed characters in filenames Unicode UTF-16 except U+0000 (NUL) through U+001F (US) / (slash) \ (backslash) : (colon) * (asterisk) ? (Question mark) " (quote) < (less than) > (greater than) and | (pipe)
Features
Dates recorded Creation, modified, access
Date range 1980-01-01 to 2107-12-31
Date resolution 10 ms
Forks No
Attributes Read-only, hidden, system, volume label, subdirectory, archive
File system permissions ACL (Windows CE 6 only)
Transparent compression No
Transparent encryption No
Supported operating systems Windows Embedded CE 6.0
Windows XP (including x64) SP2 and later (optional[2])
Windows Server 2003 SP2 (optional[2])
Windows Vista SP1 and later
Windows 7
Windows 8
Windows Server 2008
Windows Server 2008 R2
Linux (via FUSE or non-mainline kernel driver)
Mac OS X 10.6.5 and later

exFAT (Extended File Allocation Table) is a Microsoft file system optimized for flash drives.[3] It is proprietary and patented.[1] It is supported in Windows XP and Windows Server 2003 with update KB955704,[2] Windows Embedded CE 6.0, Windows Vista with Service Pack 1,[4] Windows Server 2008,[5] Windows 7, Windows 8, Windows Server 2008 R2 (except Windows Server 2008 Server Core), Mac OS X Snow Leopard starting from 10.6.5,[6] Mac OS X Lion, OS X Mountain Lion, and OS X Mavericks.

exFAT can be used where the NTFS file system is not a feasible solution (due to data structure overhead), or where the file size limit of the standard FAT32 file system (that is, without FAT32+ extension[7]) is unacceptable.

Unlike NTFS, exFAT cannot pre-allocate disk space for a file by just marking arbitrary space on disk as 'allocated'. As in FAT, when creating a file of known length, exFAT must perform a complete physical write equal to the size of the file.

exFAT is also supported in a number of media devices such as modern flat panel TVs,[8] media centers, and portable media players.[9]

Advantages[edit]

The advantages over FAT file systems include:

  • For the typical user, seamless interoperability between Windows and OS X platforms for files in excess of 4 GiB. NOTE: Windows XP may require Update for Windows XP (KB955704) to manage exFAT formatted drives.
  • Scalability to large disk sizes: 64 ZiB[nb 2] theoretical max, 512 TiB recommended max, raised from the 32-bit limit (2 TiB for sector size 512) of FAT32 partitions.[10]
  • File size limit of 16 EiB–1 byte.[nb 1] (limited by volume size), raised from 4 GiB−1 byte in a standard FAT32 filesystem.[2] (The open FAT32+[7] specification proposes an extension how to store files up to 256 GB on otherwise backward-compatible FAT32 volumes as well. This extension is available in some versions of DR-DOS so far, but is trivial to implement in other FAT32 implementations as well.)
  • Cluster size up to 32 MiB.[11]
  • Free space allocation and delete performance improved due to introduction of a free space bitmap.
  • Timestamp granularity of 10 ms (same as in FAT12/FAT16/FAT32 for creation time, but not as fine as NTFS's 100 ns).[1]
  • Optional support for UTC timestamps (starting with Vista SP2).[12]
  • Optional support for access control lists (not supported in Windows Vista SP1).[13]
  • Optional support for TexFAT, a transactional file system standard (optionally WinCE activated function).
  • Provision for OEM-definable parameters to customize the file system for specific device characteristics.[14]

Disadvantages[edit]

The disadvantages compared to FAT file systems include:

  • Microsoft has not released the official exFAT file system specification[contradiction] , and a restrictive license from Microsoft is required in order to make and distribute exFAT implementations. Microsoft also asserts patents on exFAT which make it impossible to re-implement its functionality in a compatible way without violating a large percentage of them.[15] This renders the implementation, distribution, and use of exFAT as a part of free or open-source operating systems or of commercial software, for which the vendors could not obtain a license from Microsoft, legally difficult, especially in countries that recognize United States software patents.
  • Limited support outside Windows and Mac OS X operating systems as of 2012. Most consumer electronic devices could only handle FAT12/FAT16/FAT32, rendering exFAT (and flash memory formatted with it) impractical as a universal exchange format.
  • Linux support for exFAT is still limited.[16][17][18][19][20]
  • Windows XP and Windows Vista require certain updates for exFAT support.[21][22][23]
  • Windows Vista is unable to use exFAT drives for ReadyBoost. Windows 7 removes this limitation, enabling ReadyBoost caches larger than 4 GiB.[24]
  • The standard exFAT implementation is not journaled and only uses a single file allocation table and free space map. FAT file systems instead used alternating tables, as this allowed recovery of the file system if the media was ejected during a write (which occurs frequently in practice with removable media). The optional TexFAT component adds support for additional backup tables and maps, but may not be supported.
  • Support for up to 2,796,202 files per subdirectory only.[1][nb 3] Microsoft documents a limit of 65,534 files per sub-directory for their FAT32 implementation, but other operating systems have no special limit for the number of files in a FAT32 directory. FAT32 implementations in other operating systems allow an unlimited number of files up to the number of available clusters (that is, up to 268,304,373 files on volumes without long filenames).[nb 4]

Support on other platforms[edit]

A FUSE-based implementation named fuse-exfat, or exfat-fuse, with read/write support is available for FreeBSD and multiple Linux distributions.[25][26][27][28] A kernel implementation has also been released, written by Samsung.[29] It was initially released on GitHub unintentionally,[30] and later released officially by Samsung in compliance with the GPL.[31] None of the solutions can become an official part of Linux due to the patent encumbered status of the exFAT filesystem.

Proprietary read/write solutions licensed and derived from the Microsoft exFAT implementation are available for Android,[32] Linux, and other operating systems from Paragon Software Group and Tuxera.

XCFiles (from Datalight) is a proprietary, full-featured implementation, intended to be portable to 32-bit systems.[33] Rtfs (from EBS Embedded Software) is a full-featured implementation for embedded devices.[34]

Two experimental, unofficial solutions are available for DOS. The loadable USBEXFAT driver requires Panasonic's USB stack for DOS and only works with USB storage devices; the open-source EXFAT executable is an exFAT filesystem reader, and requires the HX DOS extender to work.[35] There are no native exFAT real-mode DOS drivers, which would allow usage of, or booting from exFAT volumes.

Mac OS X Snow Leopard 10.6.5 and later can create, read, write, verify, and repair exFAT file systems.[36]

Licensing[edit]

Companies can integrate exFAT into a specific group of consumer devices, including cameras, camcorders, and digital photo frames for a flat fee. Mobile phones, PCs, and networks have a different volume pricing model.[3]

Microsoft has entered into licensing agreements with BlackBerry,[37] Panasonic, Sanyo, Sony, Canon, Aspen Avionics,[38] and BMW.[39]

See also[edit]

Notes[edit]

  1. ^ a b Although Microsoft published a different value in KB955704, the file size is in bytes and is stored as a 64 bit number. The largest theoretical file size would be 16 EiB−1 byte, the same as NTFS. However, since the true theoretical maximum volume size under the current specification cannot exceed 128 PiB, a file can never reach that file length.
  2. ^ This value was calculated based on the 64-bit value of number of sectors with a sector size of 4096 bytes. However, based on the current exFAT specification the FAT is 32 bits and the largest cluster is 25 bits resulting in a maximum addressable volume size of close to 128 PiB
  3. ^ This limit only applies to subdirectories because the maximum subdirectory is 256 MiB. There is no limit for the root directory
  4. ^ 268,304,373 files = 2^28 - 11 reserved clusters - 131,072, the minimum number of 64 KB clusters occupied for the 268,435,445 directory entries (á 32 bytes) without VFAT LFNs, which are required for 268,435,445 files with sizes between 1 and 65535 bytes. With VFATs, the 131,072 number must be multiplied by 21 (worst case), which would result in 265,682,933 files instead.

References[edit]

  1. ^ a b c d US 8321439  contains Microsoft exFAT specification (revision 1.00)
  2. ^ a b c d e "KB955704". 2009-01-27. "Description of the exFAT file system driver update package [for Windows XP and Windows Server 2003]" 
  3. ^ a b Marius Oiaga (2009-12-11). "Microsoft Licenses Windows 7's exFAT Flash File Format". Softpedia.com. 
  4. ^ Brandon LeBlanc (2007-08-28). "Vista SP1 Whitepaper". Microsoft. Retrieved 2007-08-28. 
  5. ^ "Adding Hard Disk Drives". Microsoft. Retrieved September 15, 2009. 
  6. ^ "Mac OS X 10.6.5 Notes: exFAT Support, AirPrint, Flash Player Vulnerability Fixes". Retrieved 25 November 2013. [unreliable source?]
  7. ^ a b Davis, Jeremy; Kuhnt, Udo; Georgiev, Luchezar (2007). "FATPLUS.TXT". FAT+. Draft revision 2. Retrieved 25 November 2013. [unreliable source?][self-published source?]
  8. ^ "exFAT support on Sony". Retrieved 2013-01-06. 
  9. ^ Hamm, Jeff (2009). "Extended FAT File System". Paradigm Solutions. Retrieved 2013-04-09. 
  10. ^ "Limitations of the FAT32 File System in Windows XP". Microsoft. 2007-12-01. Retrieved 2011-02-11. 
  11. ^ Upper limit of cluster size of exFAT file system.
  12. ^ Nash, Mike (2008-10-24). "Windows Vista Service Pack 2 Beta". The Windows Blog. Retrieved 2009-10-02. 
  13. ^ "A Second Shot: Windows Vista SP1". Retrieved 25 November 2013. 
  14. ^ "OEM Parameter Definition with exFAT (Windows Embedded CE 6.0)". Retrieved 25 November 2013. 
  15. ^ "exFAT File System Licensing Program". Retrieved 2011-01-04. 
  16. ^ http://askubuntu.com/questions/370398/how-to-get-exfat-working-in-ubuntu-13-10
  17. ^ http://www.phoronix.com/scan.php?page=news_item&px=MTQ2ODc
  18. ^ http://phoronix.com/forums/showthread.php?81642-Native-Linux-Kernel-Module-Is-Out-For-Microsoft-exFAT
  19. ^ http://news.softpedia.com/news/Native-exFAT-Support-Finally-Arrives-on-Linux-365770.shtml
  20. ^ http://linuxg.net/native-support-for-exfat-filesystems-on-linux-will-be-added-soon/
  21. ^ Support for exFAT under Windows XP.
  22. ^ Information about support for exFAT under Windows Vista.
  23. ^ Windows Vista service pack 1 to support exFAT file system.
  24. ^ "exFAT Versus FAT32 Versus NTFS". 2008-02-27. Retrieved 2009-10-02. 
  25. ^ "exFAT fs and Linux". Retrieved 2009-09-28. [unreliable source?]
  26. ^ "exFAT fs on FUSE". Retrieved 2010-05-15. 
  27. ^ "exFAT fs on linux UBUNTU". Retrieved 2012-10-11. 
  28. ^ "exFAT in FreeBSD". Retrieved 2013-04-08. 
  29. ^ "Open Source Release Center". Samsung. Retrieved 25 November 2013. 
  30. ^ Corbet, Jonathan (24 July 2013). "The exfiltrated exFAT driver". LWN.net. Retrieved 25 November 2013. 
  31. ^ "Conservancy Helps Samsung Resolve GPL Compliance Matter Amicably". Software Freedom Conservancy. 16 August 2013. Retrieved 25 November 2013. [self-published source?]
  32. ^ Clarke, Gavin (August 8, 2012). "Sharp cuts exFAT deal with Microsoft for Android mobes". The Register. Retrieved August 12, 2012. 
  33. ^ "XCFiles". Retrieved 2010-06-21. 
  34. ^ "Rtfs". Retrieved 2011-01-19. 
  35. ^ "exFAT". 2011-02-02. 
  36. ^ "fsck_exfat(8) Mac OS X Manual Page". Retrieved 25 November 2013. 
  37. ^ "Microsoft Licenses exFat to Research In Motion". 
  38. ^ "Microsoft Signs Patent Licensing Agreement With Aspen Avionics". 
  39. ^ "Microsoft Signs exFAT Licensing Agreement With BMW". 

External links[edit]