Situation improved only when it became clear that IBM PC line (the mother of practically all modern PCs) gradually became de-facto the standard in the industry (and not only). And when there is a dominant system on the market, all others have to take into account in order to survive. Main data carrier of that time was a floppy disk and the format used by IBM became the standard for the industry.
Although from today’s perspective it is of historical value only. Diskettes have already ceased to be the primary means of data transfer. But the problem we are trying to unveil in this article is that practically all modern operating systems support more than one file system. At the same time the level of support varies and sometimes can be changed with the help of additional software.
So, lets familiarize with main and available file systems and their pros and cons.
FAT — old, limited but ubiquitous
We will start from the oldest file system that emerged during MS DOS times, and nevertheless still present today.
Pros – simple, compact service areas and long presence on the market. The first two come form the third one – in 1980 when the system appeared, computers were so ‘powerful’ and data carriers were so ‘capacious’ that nothing complex could have been used. However, it’s been long time since the original version FAT12 is not used because the size of disk with this system cannot exceed 32 MB.
It becomes more interesting if we talk about 23 years old FAT16 where the size of file and partition is up to 2 GB. Theoretically the capacity of partition could reach 4 GB using 64 Kb clusters, but this option is not standard so it is not supported everywhere. Therefore this option is acceptable for low capacity storage devices. Users still have a lot of the latter. At the time of flash drives with capacity of up to 1 Gb, FAT16 was quite suitable because of low capacity requirements for personal needs. Thus, for example, FAT16 formatted 128 Mb flash drive gave the user 128 621 744 bytes, and if FAT32 is used — only 127 921 152 bytes. On the one hand it’s nothing and on the other – five years back 700 Kb was a great deal of concern. It is no without reason that Microsoft does not recommend using FAT32 on partitions less than 512 Mb.
The last, still valid sphere of application of this system – phones, players, cameras and other devices supporting SD or microSD cards but not supporting SDHC (its not manufactured any more but still is used). The standard file system for such cards is FAT16, that is why the majority of such devices do not support any other system. In this case it is advised to format the card only on the device itself and not on a computer. The reason behind it is that Windows XP (at least we know about it for sure) sometimes manages to format the card for FAT32 even if you point out that it has to be FAT16, resulting in camera not able to see the card. The problem can be solved using some alternative formatting program – on your PC.
FAT32 — wise compromise between compatibility and other features
In contrast to its predecessor, FAT32 is the most popular system for external storage devices. 90% of flash drives and over half of external hard drives come from factories formatted to this file system. Why? Originally FAT32 support appeared in August 1996 along with Windows 95 OSR2 and if someone still uses old OS on computer then he/she most probably won’t try to connect the modern external storage device :) And in most cases he/she won’t be able to.
However, when using FAT32 becomes inconvenient, people start using other systems. Main and essential cons of this file system is that files cannot exceed 4 Gb in size. Accordingly, you won’t be able to store DVD images, large archives and some movies. Rather, you can store it by breaking into parts and then put the pieces together before using, which is not convenient at all. Or you can foresee such breakup in advance. This is the reason that stands behind preferring other systems to this one.
As far as volume size formatted to FAT32 is concerned, theoretically its size can be up to 8 Tb which is quite a lot even as of today (not to speak of the time when this system was created). Though, it is not as simple as it may sound — Microsoft believes that it is not desirable to make volumes over 32 Gb. Moreover, it doesn’t simply believes, it made corresponding changes to built-in format programs in Windows XP and newer versions of its system. Particularly sad is the result an attempt to format, for example, a 64 Gb flash drive with standard tools: for FAT32 (according to Microsoft) it is too large, and using NTFS on removable media (again according to Microsoft) is not allowed. Both issues are easily resolved using outside formatting tools. Thus, for example, a simple console program fat32format easily works with volumes up to 2 Tb (maximum for static partitions in Windows XP).
Its not all smooth with Windows 98 and ME, despite the fact that using FAT32 for them has no alternative. The thing is that some built-in tools in these systems remain 16-bit. And maximum size of addressed memory block in such programs is around 16 Mb, partitions on which FAT is large, are inaccessible. It means the inability to partitions over ≈127,5 Gb (around 133 Gb) in full.
Other operating system do not have such issues and issues described above are resolvable. It allows us to consider this file system as suitable in cases when maximum compatibility of external storage device with the whole gamut of computer and electronics is required. Especially in cases when there is no need to store files over 4 Gb in size – then there won’t be any visible cons in practice.
NTFS — fast, powerful, but excessive
Until recently this file system was the only reliable tool to overcome the issue of large files on Windows-run computers. Of course not all Windows versions — 9x line does not support NTFS, although compatibility with such systems is by far not required any more. The worst is that not all electronics support NTFS. In addition, such partitions are supported by MacOS and Linux computers — at least they can read data from such partitions and upon installation of special drivers it often even turns on write finction. With the help of additional drivers you can make Windows 98 and even DOS to support NTFS.
What’s good in this file system? Firstly, volume size limits and file size limits can be considered as none: both can reach up to 16 exabytes (one exabyte contains approximately one million terabytes). Secondly, you can get faster work performance especially if you have directories containing large amount of files; for example, when there are several thousand files, the difference in performance of FAT32 and NTFS is clearly noticeable. Thirdly, this system is more failure-proof, at least due to journalling. Fourthly, it can work with small size clusters (not only can, but intended to do so), therefore disk space loss when storing small files in NTFS is much less than in FAT32, not to speak of exFAT. Fifthly, quite convenient possibility is builtin data compression support. Of course, archiving ‘on the fly’ is less effective than with the help of special archivers with serious algorithms, nevertheless it is done in a transparent for user way and in case of nicely compressed data gives a noticeable effect. So, there is nothing surprising that NTFS dominates in internal hard drives.
However on external hard drive there are some disadvantages. Most painless is inability to get many advantages of the system. In particular, not many users transfer uncompressed data these days: even if are talking about office documents, starting from 2007 they are automatically compressed when saved, all the more in case of photo and video files. Yes, and large amount of files in the directory is a rare thing, more typical picture is when you have a dozen of large size files. In addition, improved due to caching performance can be a two-edged sword – it is not advised to disconnect NTFS formatted storage devices without “Safe removal” option or similar options. All mentioned inconveniences are typical for all external storage devices, although there are some additional issues for devices based on flash memory. Firstly, it is recommended to turn off journaling in this case (since the resource of mass-produced flash drives is limited). Secondly, the speed of such storage devices essentially depends on uniformity of all file system structures and clusters in terms of wipe-out block boundary, which could be quite critical for NTFS with its small sized clustersо. As the experience of many users indicates that the best speed results can be achieved by using 32 Kb clusters, i.e. smaller then for FAT32.
On top of that we will add compatibility issues, which brings us to the conclusion that using NTFS on removable media is not that justifiable. However, as it is shown above (and will be shown below)m sometimes this option has no alternative.
exFAT — the future of flash drives and not only
In a situation when FAT32 is not enough and NTFS is not optimal enough, it is no wander that Microsoft (after 10 years from developing FAT32) updated the FAT again. New version named exFAT made its debut in Windows CE 6 because it was most suitable for builtin systems and electronics, but later it was supported by desktop computers. So what’s changed in this version?
Firstly, no file size limit, now the size can reach up to 16 exabytes. Secondly, increase cluster size: in previous system it was maintained within 32 Kb (sometimes using supported-by-all 64 Kb), in exFAT maximum size of cluster is 32 Mb, so there is a 1024 times increase. No doubts that it is inconvenient for small files, yet such files are not that popular anymore, in return they managed to reduce the size of file allocation table accordingly and by doing that it reduced the RAM requirements for working with large size volumes. Naturally, a 32 Gb volume size limit was also cancelled for exFAT as this limitation is not required anymore. First to make use of it were SD card manufacturers who are tied up with FAT standards. For SD 1.х version specifications FAT16 was a standard (that determined maximum capacity of 2 Gb), version 2.0 looks up to FAT32 (SDHC cards up to 32 Gb), and in new version 3.0 for large capacity cards exFAT is used as a standard (accordingly, SDXC cards do not have capacity limits form practical point of view).
We cannot argue that all improvements were only quantitative, we have found some quality improvements as well. No more restrictions to the number of files in the directory. It’s not that they were pain in the … before, but still, now, for example, camera manufacturers are not required to distribute photos by folders, they can record everything in the card’s root. More essential improvement — free space bitmap, which, if used correctly, allows reducing fragmentation. There is no journalling in the new system – it is too simple for it, and its not desirable operation for flash media (the primary target of exFAT). Plus the developers envisaged a potential possibility of increasing failure-proof properties.
So, the system is good. It has everything you need and nothing you don’t need. So why people still choose, wouldn’t it be better that all devices use exFAT? It is so because for external storage media, as it has already been mentioned several times above, the compatibility is very important, therefore what’s the point in the properties of your flash drive’s file system if you can use it only on each tenth computer? exFAT still remains in this situation. You can safely use it only on computers using Windows Vista with SP 1, Windows Server 2008 and Windows Seven. I think MacOS X 10.6 also supports it, although, most probably system update will be required. By the way, Apple could have not support this novelty from Microsoft but included cardreaders supporting SDXC cards into its last computer line, and that required compatibility with exFAT. For Linux you will have to integrate the driver yourself (and there are two of them: standard supports only read operations, whereas write operations are supported by the one using FUSE). Windows XP users are luckier, because already at the beginning of 2009, Windows Update included official update KB955704, adding exFAT support to systems with SP2 and SP3, but it is not an obligatory update, so you won’t find it on all conputers. As far as electronics is concerned, it is as sad as with previous Windows versions — the lucky exception are a few modern devices supporting SDXC (they don’t have options), however on other devices it is still easier to see NTFS support than exFAT.