Retro Potato: Longtime Microsoft software engineer Raymond Chen recently responded to an intriguing retro-tech question posed by a game developer on X. The developer inquired about the three distinct user interfaces used during the Windows 95 setup process, which transitioned from DOS to Windows 3.x, and finally to the classic Win9x GUI. Chen explaining that it was a deliberate design choice to minimize the amount of code required for the Windows 95 configuration experience.
Experienced PC users may be well aware of the peculiar relationship between MS-DOS code and the GUI environment within the Win9x ecosystem. However, according to Chen, the multi-OS support built into the Windows 95 setup program was far more sophisticated than it might initially seem.
With over 30 years of experience shaping the evolution of Windows, Chen holds deep insights into the hidden intricacies of one of the world’s most widely used software platforms. Writing The Old New Thing blog, he said Windows 95 setup was designed to upgrade systems from three possible starting points – MS-DOS, Windows 3.1, and Windows 95 itself. This necessity dictated the need for compatibility with three distinct computing environments.
The setup program was primarily written as an MS-DOS application but was designed to run on three different operating systems to perform distinct tasks. The DOS portion was necessary when setup was launched from the MS-DOS prompt, as accessing the Win9x environment would have been impossible without first installing it on the hard drive.
Also see: Who wrote the BSOD screen? Former Windows developer finally has an answer
The MS-DOS setup component installed a minimal version of Windows 3.1 – just enough to support the 16-bit portion of the setup tool. After booting into this miniature Windows 3.1 environment, the 16-bit GUI setup program would launch. This application could also run in a full Windows 3.x environment or even within an already installed Windows 95 OS, enabling users to repair a corrupted system if necessary.
The 16-bit Windows application was the centerpiece of the process, Chen explained, as it handled the majority of tasks required for the “real” Windows 95 installation. This graphical interface managed user interaction, collected configuration data, determined which OS components to install, and performed hardware detection to select the appropriate drivers.
After copying the Windows 95 files and drivers to the system, the 16-bit setup booted into the Win9x environment. The third and final setup stage involved a genuine Win32 application, which finalized the installation by handling tasks such as installing printers and configuring other peripherals.
By chaining together these three setup programs, Microsoft was able to streamline development by reusing a single codebase across all three main installation scenarios. “Each program takes you one step closer to the goal. And everything got implemented only once,” the developer said.
+ There are no comments
Add yours