FAT, FAT32, and NTFS File Systems

Under DOS and Windows 3.x, disk drives (or partitions) commonly used the FAT (file allocation table) system for storing disk files. Because the original FAT used 16-bit cluster addressing, the FAT system itself imposed limitations on how hard drives were used. (For convenience, this original FAT system is referred to as FAT16.) Since the FAT16 could handle only 216 (= 65,536) addresses, hard drives larger than 512MB needed to allocate file space in 16KB blocks.

The first break in the inefficient FAT16 file system appeared with Windows NT (version 3.1), which introduced the NTFS file system. Unlike FAT16, NTFS uses 32-bit addresses (232 = 4,294,967,296) and is no longer limited to 16KB blocks. Additionally, the NTFS file system also supports long filenames; security-access restrictions; special flags governing file usage; and last-access, last-write, and file-creation date-time stamps.

The limitation of the NTFS system, however, is that it is only accessible under Windows NT and cannot be read or even recognized from DOS or Windows 3.x, 95, or 98. In effect, any partition organized using NTFS is effectively invisible to operating systems other than Windows NT.

With the introduction of Windows 98, another new file system has been introduced: the FAT32 file system. Like NTFS, the FAT32 file system also handles 32-bit addresses (232), again erasing the old limitations imposed by the FAT16 addressing. Using the FAT32 system, the old limitations on partition and cluster size are obsolete, and even multigigabyte hard drives can exist as single partitions using 4KB clusters. More important, wasted drive space can commonly fall to as low as 2 percent or less.

But, again, there is a downside. Like Windows NT and the NTFS file system, the Windows 98 file system is incompatible with other operating systems, including DOS and Windows NT. And, in contrast, unlike NTFS, the FAT32 file system does not support multiple date-time stamps or security-access restrictions.

This means that if you are planning on running dual-operating systems such as Windows 98 and NT, you are pretty well stuck with the FAT16 file system and all of its attendant shortcomings—this is not only the lowest common denominator but the only common denominator. Of course, since hard drives are relatively cheap, efficiency is not the primary concern it would have been just a few years ago. Also, you can maintain some efficiency by using multiple partitions, even though these have their own inconveniences.

As a slight ray of hope, the next version of Windows NT, Windows NT 5.0, is expected to support the same FAT32 file system as Windows 98. This will make it possible to have a dual-boot Windows 98/NT5 system using FAT32 without restrictions on drive access. (Currently, any dual-boot system is restricted to using FAT16 to maintain drive compatibility.)

NOTE

See Chapter 1 for more information about file system differences and setting up a dual-boot system.

From the programming standpoint, the question of whether a system is using FAT16 or FAT32 addressing remains inconsequential. As long as application file I/O is carried out through the standard API functions, no special provisions are demanded or required.

© 1998 SYBEX Inc. All rights reserved.