The invisible work of preparing PC BIOSes for the year 2000
Some time ago, I told stories of the anxiety on the evening of December 31, 1999 at Microsoft and at Microsoft Press.
This prompted a now-retired colleague of mine to share a story about the run-up to the year 2000.
The core kernel team had wrapped up their Windows 2000 work well before the end of the year 1999.¹ But instead of the traditional next step of having them start working on the next version of Windows, this group of really smart people were put to work on gnarly low-level problems related to the year 2000 problem.
Testing revealed that a lot of machines could not boot Windows after December 31, 1999 due to BIOS errors that dated back to the early 1990’s. Microsoft contacted the manufacturers of these BIOSes with details of the problems, but some of them could not be fixed because the offending code was burned into a ROM that was not flashable. Or because the machines were so old that the manufacturers no longer supported them. Or because the manufacturers went out of business.
In the cases where no fix was forthcoming from the manufacturer, those smart people made changes to the Windows kernel to work around the buggy BIOSes.
Disaster averted. Computers continued to boot successfully on January 1, 2000.
Y2K was boring because the period of time leading up to it was very non-boring.
¹ This is not particularly surprising. The lowest layer of the operating system is at the bottom of the dependency chart, so you want it to stabilize first, so that other layers can build atop it confidently.