File Allocation Table (FAT) is a partially patented file system developed by Microsoft for MS-DOS and is the primary file system for consumer versions of Microsoft Windows up to and including Windows Me. FAT as it applies to flexible/floppy and optical disk cartridges (FAT12 and FAT16 without LFN support) has been standardized as ECMA-107 and ISO/IEC 9293.
The FAT file system is relatively uncomplicated, and is supported by virtually all existing operating systems for personal computers. This ubiquity makes it an ideal format for floppy disks and solid-state memory cards, and a convenient way of sharing data between disparate operating systems installed on the same computer (a dual boot environment).
The most common implementations have a serious drawback in that when files are deleted and new files written to the media, their fragments tend to become scattered over the entire media, making reading and writing a slow process. Defragmentation is one solution to this, but is often a lengthy process in itself and has to be performed regularly to keep the FAT file system clean.
In order to overcome the volume size limit of FAT16, while still allowing DOS real-mode code to handle the format without unnecessarily reducing the available conventional memory, Microsoft decided to implement a newer generation of FAT, known as FAT32, with cluster counts held in a 32-bit field, of which 28 bits are currently used.
In theory, this should support a total of approximately 268,435,456 (228) clusters, allowing for drive sizes in the range of 8 terabytes with 32K clusters. On Windows 95/98/ME, due to the version of Microsoft's ScanDisk utility included with these operating systems being a 16-bit application, the FAT structure is not allowed to grow beyond 4,177,920 (< 222) clusters, placing the volume limit at 127.53 gigabytes.[4]. This limitation does not apply to Windows XP.[5]
FAT32 was introduced with Windows 95 OSR2, although reformatting was needed to use it, and 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 NT line, native support for FAT32 arrived in Windows 2000. Windows NT 4 supported FAT32 with free driver by Winternals company, later acquired by Microsoft.
Windows 2000 and Windows XP can read and write to FAT32 filesystems of any size, but the format program on these platforms can only create FAT32 filesystems up to 32 GB. Third party utilities are available which can format larger FAT32 filesystems. Thompson and Thompson (2003) write[6] that “Bizarrely, Microsoft states that this behavior is by design.” A Microsoft knowledge base article[4] indeed confirms the limitation and the "by design" statement, but gives no rationale or explanation. However, a Microsoft TechNet article states that the 32 GB limit was an arbitrary limit imposed because many tasks on a very large FAT32 filesystem become slow and inefficient.[7] Peter Norton's opinion[8] is that “Microsoft has intentionally crippled the FAT32 file system.”
The maximum possible size for a file on a FAT32 volume is 4 GiB minus 1 B (232−1 bytes). For most users, this has become the most nagging limit of FAT32 as of 2007, since video capture and editing applications and some other software can easily exceed this limit. Most new Windows machines now ship with NTFS and thus avoid these problems, but those who run dual boot systems or who move external data drives between computers with different operating systems have little choice but to stick with FAT32 (although between Windows and Linux it is possible to use ext2 or ext3 through the use of external drivers such as ext2 IFS).
Hope this helps.