Updated There is at last a definitive answer to the question of why the Windows user interface slapped a 32GB limit on the formatting of FAT32 volumes and it's "because I said so," according to the engineer responsible.
While many welcomed 2021 within the walls of their own home, retired Microsoft engineer Dave Plummer marked the end of 2020 with the confession in the latest of a series of anecdotes hosted on his YouTube channel Dave's Garage.
The limit has always seemed somewhat arbitrary, particularly when one considers the theoretical 16TB maximum volume size of the file system. Using a different formatting tool or dropping into the command line can handily override the presets, but sticking with the stock user interface meant sticking with Plummer's Format dialog. And that meant a maximum of 32GB for FAT32.
In the closing years of the last century, Plummer was involved in porting the Windows 95 shell to Windows NT. Part of that was a redo of Windows Format ("it had to be a replacement and complete rewrite since the Win95 system was so markedly different") and, as well as the grungy lower-level bits going down to the API, he also knocked together the classic, stacked Format dialog over the course of an hour of user-interface creativity.
As he admired his design genius, he pondered what cluster sizes to offer the potential army of future Windows users. The options would define the size of the volume; FAT32 has a set maximum number of clusters in a volume. Making those clusters huge would make for an equally huge volume, but at a horrifying cost in terms of wasted space: select a 32-kilobyte cluster size and even the few bytes needed for a minimal Hello, World program would snaffle the full 32KB.
"We call it 'Cluster Slack'," explained Plummer in the video below, "and it is the unavoidable waste of using FAT32 on large volumes. How large is too large? At what point do you say, 'No, it's too inefficient, it would be folly to let you do that'? That is the decision I was faced with."
At the time, the largest memory card Plummer could lay his hands on for testing had a 16MB capacity.
"Perhaps I multiplied its size by a thousand," he said, "and then doubled it again for good measure, and figured that would more than suffice for the lifetime of NT 4.0. I picked the number 32GB as the limit and went on with my day."
While Microsoft's former leader Bill Gates struggled to put clear water between himself and the infamous "640K" quote of decades past, Plummer was clear that his 32GB limit would just be a temporary thing until the user interface was revised. "That, however, is a fatal mistake on my part that no one should be excused for making. With the perfect being the enemy of the good, 'good enough' has persisted for 25 years and no one seems to have made any substantial changes to Format since then."
Wait, what? El Reg notes that Windows NT 4.0 did not actually natively support FAT32, and a third-party driver by Winternals was required to provide FAT32 support on NT 4. This driver was eventually incorporated into an NT 4 service pack, and Microsoft later acquired Winternals. Windows 2000, part of the Windows NT family, did support FAT32 natively. Plummer seems to be reminiscing about his desktop user-interface design decisions for Windows NT 4.0 regardless of whatever underlying file-system functionality eventually shipped with the operating system.
NTFS and exFAT (now widely used in removable storage devices, and the specification of which was recently published by Microsoft) will cheerfully dispense with the limits imposed by Plummer's decades-old design choices (and there is always the command line option "so you can make a disk as big and inefficient as you'd like, subject to the FAT32 limits.")
However, as Plummer put it: "At the end of the day, it was a simple lack of foresight combined with the age-old problem of the temporary solution becoming de-facto permanent."
Been there, done that? Just perhaps not in an operating system running on billions of PCs around the world? Perhaps an email to Who, Me? might be in order. ®
Editor's note: This article was revised after publication to include more context on NT 4.0 and FAT32 support.