41

I conducted a quick Google search and realized that some people are referring to exFAT as FAT64.

Is exFAT just another name for FAT64?

81

There's no such thing as FAT64, at least not at this time. There's exFAT which some people refer to as FAT64.

Why do they do this? The history of the File Allocation Table is quite involved. These days, the most common implementations are FAT32 (though this is increasingly uncommon) and ExFAT. FAT32 was a significant improvement over the older FAT file systems, allowing volume sizes up to 2TB (with a sector size of 512 bytes) and up to 16 TB (with a sector size of 64KB). That's still large enough for most installations in 2016. Unfortunately, the largest file size was (one byte less than) 4GB, which is pretty small nowadays.

exFAT does away with this 4 GB limit, allowing files well into the PB region. Similarly with the volume size. It does so using 64-bit length fields. As FAT32 used 32-bit length fields, exFAT naturally acquired the nickname, FAT64.

So, yes. FAT64 and exFAT are the same thing. exFAT is the correct name.

  • 5
    But the size doesn't refer to "length fields" in general, but to the size of the cluster enumeration. Isn't that still 32 bits? – JDługosz Jun 14 '16 at 19:27
  • 3
    @JDługosz Looks like it. Wikipedia gives the limit as 2^32 - 11 clusters which agrees well with a 32-bit cluster number. This in contrast to FAT12 (12 bit cluster numbers), FAT16 (16 bit cluster numbers) and FAT32 (32 bit cluster numbers), where the number in the commonly used name directly maps to the length of the cluster number. I'm quite sure I had many, many files larger than 2^16 bytes in the FAT16 days. – a CVn Jun 15 '16 at 8:50
  • Agreed with the answer. The objective of ExFAT was to actually get rid of the FAT32 limitations like file size and partition size, which it did. That's why the 64-bit length fields and that's why the logical nickname of FAT64 (which technically it is). – Overmind Jun 15 '16 at 9:04
  • File size has always been 4 bytes since the first use of FAT on MS-DOS, though Wikipedia's history shows the 8-bit precursor was apparently 24 bits or 3 bytes. – JDługosz Jun 15 '16 at 15:20
  • 1
    The minus 11 is based on the fact the cluster 0 & 1 do not exist, cluster FF7 marks bad clusters, and for earlier FAT FF8 thru FFF (8 cells) [2+1+8=11] – Robert Shulkich Jun 15 '16 at 20:28
26

Rany is mostly correct. However FAT was not based on the length field, it was based on the size of the index value. So, with floppies you had FAT12, where each cell in the FAT table was 12 bits, then FAT16, and then FAT32, which was 32 bits in size, BUT only USED 28 bits. exFat also uses 32 bit cell entries, but ALL 32 bits are used, and allows for 2^32 clusters with a maximum cluster size of 32GiB for a total file system of approx 128PiB

The file system was being called FAT64 because without knowing the structure of the file system, everyone just assumed it doubled the FAT from 32 to 64, and that is not the case. The creation of exFAT was to solve many problems. The 4gb barrier to file size was a biggie because a lot of video with high quality HD comes into play, where hours of video takes a lot of storage. Especially running high HD (1080P) and super high (4K) which can hit that barrier in 10-15 minutes. But the file system was also built for performance, especially for video recording. Higher write speeds, less overhead. For that, there is less FAT updates, the bitmap was introduced, contiguous file improvements, pre-allocated file spaces, to reduce overhead. exFAT is the standard file system for SDXC memory cards, because of the improvements in the the exFAT file system. One more thing: exFAT is also built to be flash memory compatible, less writes, block boundaries for better flash memory performance.

13

While exFAT borrows some concepts of FAT, there are major differences, so the claim that exFAT is (basically) FAT64 is simply wrong.

Between FAT12 and 16 only the size of the allocation table was changed. FAT32 had an even larger (32 bits per entry) allocation table, some new concepts (a variable address for the root directory, quick lookup table for the next free entry, redundancy BPBs, …) were introduced. (keep in mind that VFAT, i.e. long file names and such) don’t have a connection with FAT32, as they are simply a (quite clever) hack into how directories are managed)

When writing an exFAT file system, simply using a FAT32 driver and extending the allocation table again will get you nowhere (simply because the allocation table still is 32 bit wide), but exFAT introduces a volume bitmap for quick lookup of allocated sectors, uses the allocation table only for files not stored in one piece (otherwise it simply uses datarun entries), and has a totally different format how directories are stored.

5

Yes, exFAT is the official name and FAT64 is its synonym.

  • 13
    Do you have a citation for this? – a CVn Jun 14 '16 at 13:24
  • 1
    no, I don't have a citation for that, any resource I've found mention the both together, but there it's not explicitly said so. – Máté Juhász Jun 14 '16 at 13:26
  • 6
    Note that this answer is, I firmly believe, correct and was posted before my more in-depth answer. – ChrisInEdmonton Jun 14 '16 at 16:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.