Why did Microsoft use Windows 3.1 for the Windows 95 setup? • The Register

Veteran Microsoft engineer Raymond Chen has responded to suggestions that the Windows 95 setup was overly complicated. People wanted to know: Why not just do that whole thing in MS-DOS?
Chen’s response came after his November explanation of how the Windows 95 setup was three applications that would eventually lead to the Start Menu in Microsoft’s modern operating system.
The setup process differed based on the environment in which the application was run. If starting in MS-DOS, the setup program would install and boot a minimal version of Windows 3.1 and then fire up a 16-bit Windows app to do much of the heavy lifting. The same 16-bit app would launch if the user ran from Windows.
It was a neat solution – engineers only needed to come up with one set of code regardless of where a user fired up the setup.
However, the question remains. Why bother with that miniature version of Windows 3.1 at all? MS-DOS was perfectly capable of bitmap graphics in order to welcome users to the future in the form of Windows 95.
Chen’s patient explanation is: “Yes, MS-DOS could do graphics, in the sense that it didn’t actively prevent you from doing graphics.”
However, other than a BIOS call to plot a pixel on the screen, it didn’t do much else.
No problem – an engineer could write the requisite code. Windows 95 required a VGA-compatible graphics card, so there was no need to worry about older tech like CGA and EGA. An engineering team could also develop basic windowing services and controls to provide buttons, text boxes, and lists.
And then there are the animations and the likely requirement for more than the basic 640KB of memory. Still, it’s not a problem for an engineering team with Microsoft’s resources, right?
Chen said: “Now take a step back and look at what you’re doing. You’re writing an operating system. (Or, if you’re being charitable, you’re writing an MS-DOS shell.)”
And Microsoft, of course, already had one of those. The Windows 3.1 runtime – which was very familiar to many, many engineers.
Rarely a day goes by without someone deciding that what the world really needs is another framework or never-to-be-finished side project that does little more than recreate what is available elsewhere.
For the Windows 95 setup, Microsoft used what it already had.
Chen concluded: “Windows setup still follows this pattern of installing a miniature operating system to bootstrap the setup program. But today, the miniature operating system is Windows PE, the Windows Preinstallation Environment.” ®