FAT and SLACK?
DATA IS STORED on hard drives in specially numbered clusters, which the FAT keeps a record of
so it knows where to find the data when it is requested. The FAT16 file system can only address
65,518 clusters on a partition, regardless of the size of the disk. This means that the larger
the disk partition the larger the cluster size will be.
FAT16
Partition Size (up to) Cluster Size
16M 4,096 bytes (FAT12)
32M 2,048 bytes (DOS versions < 4.0)
128M 2,048 bytes (DOS versions >= 4.0)
256M 4,096 bytes
512M 8,192 bytes
1G 16,384 bytes
2G 32,768 bytes
[FAT16 only supports partition up to 2G]
FAT32
Partition Size (up to) Cluster Size
260M 512 bytes
8G 4K
16G 8K
32G 16K
32G to 2T 32K
[FAT32 supports partition up to 2T]
The FAT16 file system is designed in such a way that disk partitions of more than around
256M use unnecessarily large cluster sizes, resulting in significant amounts of "slack"
space on the hard drive. "Slack" space is the unused storage space within each cluster - if
an 11K file is saved on a drive with a cluster size of 16K, 5K of the space within the
cluster it was saved becomes unusable for as long as the ifle resides there.
Each file on the partition is stored in a series of clusters through the same method. Once
one cluster is full, the next one is written to and so on, until the file is completely
written to disk. It may at first appear inconsequential, but slack space really adds up.
In fact, the optimal partition size for data storage with FAT16 file system is less than
128M, which by today's standard is almost completely unworkable. A 512M FAT partition, for
example, uses clusters of 8,192 bytes each and a 2G FAT partition uses a huge 32K of space
for each cluster.
Here is where FAT32 might come in very handy because for partitions up to 8G in size, FAT32
will use clusters of only 4K resulting in a significant reduction of slack space. Also, we
know that in the future hard disks are going to increase in size to accomodate our
storage needs. Thus a file system such as FAT32 that recognises and makes use of drives
up to a staggering 2 terabytes (2T) in size, as well as the improvement in available drive
space, would seem to be a useful tool for users in years to come.
There is a downside, however. Smaller cluster sizes mean there will be more clusters on a partition
and the more clusters there are, the longer it may take for drives to access data. Microsoft makes
no argument about this, althought it says that for the average user FAT32 performance degradation will be
"negligible". It says that for programs "heavily dependent on large sequential read or write operations,
FAT32 may result in a modest performance degradation".
On the other hand, more of the actual space on the disk drive is made available to you through FAT32,
but on the other you are asking your hard drive to do more work, which can result in a loss of performance.
COMPATIBILITY
FAT32 isn't currently compatible with other operating systems such as DOS, Linux and OS/2, nor it is
completely backward compatible with programs designed for FAT16 systems.
It would be great if every OS used the same file system without problems. However, this is almost
impossible because the file system used by each OS is often specific to that OS and usually dislikes other file
systems trying to get in the way. The advent of FAT32 does little to change this scenario and it looks as though
programs like System Commander and the like will be a useful choice for those that prefer or need to have multiple
operating systems on the same computer.
FAT32 is not all that different to FAT16, however and most programs designed for FAt16 will work with FAT32. Notable
exceptions are programs that take a hard look at the FAT such as antivirus, disk compression and disk defragmentation tools.
While this constitutes a small portion of available software, it happens to be a very useful portion when it comes to system
maintenance.
At present, there are a few programs that simply won't work with FAT32, although Microsoft promises it is working closely with vendors
to support them and to help in "reviving their products to support FAT32".
Part of the problem with program compatibility is in the different ways the FAT is stored and configured.
Whereas FAT16 stores all its information in the MBR (Master Boot Record) on the first table of the first drive, FAT32 does things slightly
different.
NEW FEATURES
There are many interesting changes in FAT32 that make it more reliable and flexible.
Firstly, the boot information structure (otherwise known as the BPB) has been extended and a new disk structure
called BIGFATBOOTFINFO has been added. This tracks free clusters on your drive which allows FAT32 to compensate
for the increased number of clusters and improve write times to the drive.
On top of this, the root directory no longer needs to be on the root, per se and a back-up
copy of the FAT is also accessible in case of damage to the default copy. Also, the root directory
of a FAT32 drive is just an ordinary cluster chain which means that there is no limitation on the number of root directory
entries - a problem that's plagued FAT16 since its inception.
A very interesting ability of FAT32 is that it allows for partitions to be dynamically resized, a function
previously only available with third-party utilities such as Partition Magic. This is due to the
back-up FAT which no longer needs to be mirrored, allowing it to be active as an original FAT. While
information on this feature is scarce, presumably a drive can be resized by saving changes to the non-active FAT and then
rebooting using the newly changed FAT.
Dynamic resizing has not been implemented in current release of FAT32 found in OSR2 though it is likely to appear in Windows 98.
UPGRADING TO FAT32
Currently, FAT32 is an option under OSR2 and unless you only run Windows 95 on your machine,
there are no compelling reasons to utilise it. This is partly because the only operating system
that can currently read FAT32 is OSR2. Moreover, it is possible some of your existing software
will run into problems, particularly disk-based utilities.
However, if you have a large hard drive that you'd like to squeeze every last byte out of, using
FAT32 is certainly the way to go.
If you are worried about cross-platform compatibility, a number of industrious programers have come up with
solutions for other file systems to access files on FAT32 partitions. There is an excellent web page
listing the various patches available at http://students.ceid.upatras.gr/~gef/fs/index.html
If you are using OSR2 and do decide to go ahead and implement FAT32, it is a fairly simple procedure and there are even a few tricks
and tips to help you customise how it works as well. Firstly, to format a hard drive of over 512M with
FAT32, you need to enable "large disk support" inside FDISK (the OSR@ version only). Next you'll need
to back up your data and reboot after enabling large disk access, the format the drive. However, note
that the OSR2 version of FDISK will not prompt you to reboot after enabling FAT32 support. You have to
do this manually before you format the drive.
There are also a few undocumented features of OSR2 relating to the installation of FAT32 that allow
you to tinker with your settings if your so choose (at your own risk). With FDISK, if your use the flag
/FPRMT it will allow you to format partitions less than 512M, although this is recommended for advanced
users only. Secondly, if you are thinking that 4K is too large for a cluster size, there is an undocumented
feature of the OSR2 FORMAT command:
FORMAT /z:n
where "n" multiplied by 512 bytes equals your cluster size. This enables you to set the cluster size to your
liking irrespective of the settiings shown above. Take note that your cluster size directly limits the
maximum size of your partition.
The bottom line is that you probably don't need FAT32 at the moment. Given the ever increasing
size of hard drives and the limitations of FAT16, there is no doubt that FAT32 will slowly become the
dominant file system for Windows 98 and beyond.
|