One of the by-products of the exponential increases in hard drive sizes has been the revelation of the rather rigid limits of the FAT file system. When FAT was originally developed, it wasn't intended to be used on anything larger than a floppy disk, and some retrofitting was required to make it work with hard drives. This required the use of hybrid 16-bit addressing, and the FAT system as we know it now is also known as FAT16.
FAT16 has considerable problems when it's used on larger disks. First of all, it can't address a singe partition larger than 2 GB in size. Now although it's certainly possible to partition a disk into one or more 2 GB (or smaller) logical slices, there's also the added problem of wasted space in clusters. A 2 GB FAT partition cannot use a cluster size smaller than 32 K, which means that on the average disk there will be a great deal of wasted space. Also, there will be users who might not want to break the disk into more than one partition, logical or otherwise. More details on how cluster size and partition size affect the amount of free space remaining on the disk can be found below, in the section named "Optimizing Partition and Cluster Size."
When Windows 95's Service Release 2 was issued, it featured an add-on which remedied many of the problems of FAT16. This add-on was FAT32--a 32-bit version of the FAT file system, specifically designed to address many of the grievances many users were having with FAT16 and large disks.
FAT32 gets its name by using a 32-bit addressing scheme instead of a 16-bit one, enabling a greater number of clusters to be placed on the disk, and therefore allowing smaller initial cluster sizes for bigger disks. FAT32 also handles the root directory differently than a FAT16 drive. On a FAT16 drive, the root directory must be located in a fixed segment at the front of the disk, forcing the root directory to have a maximum of 512 entries (files or directories). FAT32 enables the root directory to live anywhere on the disk and be as long as it needs to be. FAT32 also keeps redundant backups of more critical disk information, making FAT32 partitions less susceptible to failure or data corruption. FAT16 keeps a backup copy of the file allocation table and checks against each copy to protect against corruption, but is still susceptible to corruption of directory trees, for instance.
FAT32 improves on FAT16 in a number of ways. First of all, FAT32 supports big disks. The single largest partition that FAT32 can support is 2048 gigabytes, or 2 terabytes. This should be more than enough space to satisfy even the most disk-hungry power user!
Second, FAT32 uses space more efficiently than FAT16. Its cluster sizes are smaller, because its 32-bit addressing scheme can directly address more of them.
FAT32 has many drawbacks as well as advantages. The first downside of FAT32 as opposed to FAT16 is speed. FAT32 is slightly slower in performing many common file operations. However, the difference is so marginal as to be not even noticeable--a matter of hundredths of a second. The difference becomes more pronounced for file operations that take cumulatively longer periods of time--such as thousands of write operations--but for general-purpose operations, the delay is not noticeable.
The second downside is backwards compatibility. A whole host of applications and procedures will not work with FAT32 partitions. Also, your motherboard or disk controller's BIOS must fully support logical block addressing (LBA) mode extensions for drives larger than 1,024 cylinders (512 MB). For partitions larger than 8 GB on an IDE or SCSI drive, the BIOS must support INT 13 extensions. People with older computers or hard drives should check the manufacturer's specifications to determine if there will be any compatibility problems. Anyone who has to keep these reverse-compatibility issues in mind should only use FAT32 if they are confident they will not encounter such trouble.
Using the FAT32 system under DOS 7 and Windows 95 OSR2, max partition size is kicked up to 2 TB (2 TB = 2048 GB = 2,097,152 MB = 2,147,483,648 KB = 2,199,023,255,552 bytes).
|