Click to Rate and Give Feedback
Tips
We show you how to use the Get-MailboxStatistics cmdlet to view who last logged in to a mailbox, last logon date and time, and message count. ...

Read more!

All users, groups, and contacts can be members of other groups. To configure a group’s membership, follow these steps. ...

Read more!

Understand when SQL Server uses parallel processing and learn how to configure parallel processing for your database. ...

Read more!

Discover how you can service Windows images and prepare Windows PE images with the new Deployment Image Servicing and Management (DISM) command line tool available with Windows 7. ...

Read more!

If a database won’t mount, it could be because a required log file is missing or because the database is corrupted. You can diagnose many database mount problems using the Troubleshooting Assistant. ...

Read more!

Related Articles

Raymond Chen explores how forcing file handles closed can lead to a series of cascading errors.

Raymond Chen

TechNet Magazine April 2009

...

Read more!

Have you ever noticed that the cursor blinks when you take a screen capture? Raymond Chen explains why.

Raymond Chen

TechNet Magazine February 2009

...

Read more!

Drivers fail, files get corrupted, disks crash--there are numerous uncontrollable reasons why Windows might fail. But all is not lost. Wes Miller explores the kinds of things that can go wrong in a Windows system, and explains how you can troubleshoot them to get your system working again.

Wes Miller

TechNet Magazine January 2009

...

Read more!

Everyone expects something different from their browser. Some users are most concerned with security and privacy while others are more focused on customizability. Some want full standards compatibility, and others just desire ease of use. Explore the numerous new features and enhancements in Internet Explorer 8 that allow it to meet every user’s needs.

Matt Hester

TechNet Magazine April 2009

...

Read more!

Raymond explains how the one-time powerful Alpha AXP system came out of retirement to help develop a new generation of 64-bit systems.

Raymond Chen

TechNet Magazine August 2008

...

Read more!

Also by this Author

Raymond Chen looks at why Windows Vista doesn't support 16-bit icons, and wonders whether anybody has even noticed.

Raymond Chen

TechNet Magazine May 2008

...

Read more!

Depending on your point of view, cached credentials can be both a blessing and a curse. Raymond Chen explains how they work and how you can control them.

Raymond Chen

TechNet Magazine July 2009

...

Read more!

Raymond Chen explores how forcing file handles closed can lead to a series of cascading errors.

Raymond Chen

TechNet Magazine April 2009

...

Read more!

Have you ever noticed that the cursor blinks when you take a screen capture? Raymond Chen explains why.

Raymond Chen

TechNet Magazine February 2009

...

Read more!

"Are you sure you want to remove this shared file?" Raymond Chen explains why an uninstaller may ask this question when you remove a program.

Raymond Chen

TechNet Magazine April 2008

...

Read more!

Popular Articles

Without too much effort, you can deploy a terminal server to host the applications you need in your environment. But there are some important decisions you’ll need to make to ensure your implementation meets user expectations. Greg Shields discusses the various options you have and explains how they will affect you.

Greg Shields

TechNet Magazine January 2009

...

Read more!

Take a close look at SharePoint Security Accounts to see how a weak configuration can give an attacker full control over all site collections and sites.

Pav Cherny

TechNet Magazine January 2009

...

Read more!

Raymond Chen looks at the skewed relationship bugs have to errors, and explains why it's important that programmers suffer as well as give results.

Raymond Chen

TechNet Magazine October 2008

...

Read more!

Virtualization brings significant changes to disaster recovery. Here’s an introduction to how the Microsoft virtualization platform factors into your disaster recovery plan, as well as a deeper look into backup and restore options and considerations for Windows Server 2008 Hyper-V.

Adam Fazio

TechNet Magazine October 2008

...

Read more!

Windows Vista SP1 and Windows Server 2008 introduce important changes to BitLocker, including support for data volumes and improved protection against cryptographic attacks. Byron Hynes explores the new features, demonstrates how to use BitLocker on a server, and discusses some of the recent media coverage affecting BitLocker.

Byron Hynes

TechNet Magazine June 2008

...

Read more!

Our Blog

NAP monitors the health of specified computers when they attempt to connect to a network and includes a number of mechanisms to enforce health requirements. In this article, Geek of All Trades Greg Shields gives readers an overview of these enforcement mechanisms and, as an example, takes a closer look at setting ...

Read more!

Use Windows PowerShell to Manage Virtual Machines Here are a few examples of how you can use Windows PowerShell scripts to manage virtual machines running on a Server Core installation. Note that these scripts are presented as samples and may need to be customized to work in your environment.

Create a New ...

Read more!

Disabling an Unused Part of Group Policy Objects One way to disable a policy is to disable an unused part of the GPO. By disabling part of a policy that isn’t used, the application of GPOs and security will be faster.

Administer Windows Server 2008 Server Core from the Command Prompt ...

Read more!

In the August 2008 issue of TechNet Magazine, Paul Randal wrote an article Top Tips for Effective Database Maintenance.  It was geared toward "involuntary  DBAs" (IT pros who inadvertently wind up responsible for a SQL Server instance).  The article had a great response from our readers so Paul has written another ...

Read more!

Microsoft Forefront is designed to deliver an integrated security solution that makes it much easier to deploy and manage security across an organization’s IT infrastructure. In this, our annual security issue, we feature two articles that describe how Forefront Security protects instant messaging and e-mail.

Protect ...

Read more!

Windows Confidential A Brief and Incomplete History of FAT32
Raymond Chen


Why did classic Windows 95 limit local hard drives to 2GB? Some people would lead you to believe that the FAT file system team said, "Y’know, the FAT file system supports hard drives of indefinite size, but let’s impose an artificial cap just to make people’s lives more frustrating." In reality, the 2GB limit was the result of a combination of several pre-existing limitations. The maximum size of a cluster was 32KB, and the maximum number of clusters on a single drive was a shade under 65535. When you multiply this out, you find that the maximum drive size was a tick under 2GB.
You could, with some tweaking, get the cluster size up to 64KB on Windows NT®, but you would quickly regret this. If you took this chance, you’d find that many apps would end up overflowing some internal 16-bit computations and producing garbage results. This issue was particularly common among application setup programs, which ended up telling you that your freshly formatted 1GB drive was out of disk space.
Increasing the maximum cluster size doesn’t really help anyway. Even though it raises the limit on the maximum size of a drive, it does so only in a crude way. Since the cluster is the unit of storage for files on FAT drives, increasing the size of a cluster merely increases the granularity of file storage. The total number of files you can store on the drive doesn’t change; the result is simply that each file can be bigger. If all you do is increase the cluster size, there is still a limit of 65535 or so files per drive. It’s the cluster count that you have to increase.
In the FAT file system, the number of clusters per drive was limited to around 65535 because the file allocation table—the object after which the FAT file system was named—consisted of an array of 16-bit cluster numbers. With Windows® 95 OSR2, FAT32 was introduced, raising the maximum number of clusters into the millions by expanding the file allocation table to an array of 32-bit values. Note, however, that the maximum number of clusters is 0x0FFFFFFF—not the full 32-bit value of 0xFFFFFFFF. Since this is limited to a 28-bit value, programs that manipulate FAT32 file allocation tables can use the top four bits as tag bits in their internal data structures. Losing this capacity at the top end has no impact on the theoretical maximum FAT32 volume size. That’s because the FAT32 volume size is capped by the 0xFFFFFFFF maximum sector count, and at 512 bytes per sector, this results in a theoretical maximum FAT32 volume size of 2TB. (While we’re on the topic of FAT32, the maximum size of a single file is 4GB, and the maximum number of files per directory is 65535.) Long before you hit the theoretical maximum volume size, you will reach the practical limits.
FAT used linear searching and threaded file allocation information in a linked list. All these linear-time data structures were acceptable when the FAT file system was developed—at a time when floppy drives were the primary storage device. Today, however, multi-gigabyte drives are the norm and these linear-time algorithms fall apart due to the large amount of disk access required to carry out a single operation. Furthermore, the high cluster count means a ridiculously large file allocation table; as a result, even the simple act of computing how much free disk space is available can take over a minute. That’s why the first time you type the dir command, there is a long pause at the end of the directory listing: the file system is busy calculating the disk free space to display at the bottom of the directory listing. (And don’t forget that Windows 95 needed to support FAT32 when running in real mode. I certainly don’t envy the engineer who had to implement the FAT32 file system in 16-bit assembly language under extremely tight memory constraints.)
At some point you have to say, "Enough is enough." After considerable discussion, 32GB was decided upon as the arbitrary cutoff point. Windows 2000 and higher offer only NTFS when formatting larger drives. Note, however, that Windows 2000 and higher will use a FAT32 drive larger than 32GB; they simply won’t create one. (For a 32GB FAT32 drive, it takes 4 megabytes of disk I/O to compute the amount of free space.)
I remember back when FAT32 was being developed, the project lead came to my office and had me read through his engineering notebook and sign and date every page. In part, this was an opportunity for me to go over his design and discuss it with him. But primarily it was to establish the date of the invention for defensive purposes.
One final note of trivia for your next geek cocktail party: the original name for FAT32 was "BigFAT".

Raymond Chen’s Web site, blogs.msdn.com/oldnewthing, deals with Windows history and Win32 programming. He can spell xerophthalmia but not accommodate.
© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; reproduction in part or in whole without permission is prohibited.
Page view tracker