The Windows 95 setup was text-based for a good reason, Microsoft employee reveals

The Evolution of Windows 95 Setup

In the early days of personal computing, the experience of installing a new operating system was far from the visually engaging processes we encounter today. When users first attempted to install Windows 95, they were greeted not by a vibrant graphical interface but by a stark text-based environment. While MS-DOS had the capacity to handle graphics, the Windows development team opted for a more innovative route, leveraging existing code to streamline the installation experience.

Raymond Chen, a veteran Microsoft employee with over three decades of involvement in the evolution of Windows, recently revisited this intricate journey on his well-regarded “Old New Thing” blog. He shed light on the complex engineering behind the Windows 95 setup, which required the integration of three distinct operating system environments to cater to the diverse needs of users.

Chen noted that while it was theoretically possible for Microsoft engineers to create a graphical setup application, the primitive nature of DOS graphics posed significant challenges. The prompt-based operating system did not inhibit the display of images, yet programmers faced the daunting task of manually coding every graphical function.

According to Chen, MS-DOS offered minimal graphical capabilities, limited to a BIOS call that could plot a single pixel. This method was far from optimal; direct access to the frame buffer was essential for enhancing graphics performance. Consequently, the Windows 95 setup team found themselves in a position where they might need to develop a graphics library from the ground up.

As they embarked on this endeavor, the team recognized that Windows 95’s minimum requirements included a VGA video card, eliminating the need to accommodate older video standards like CGA or EGA. The setup program necessitated the creation of dialog boxes, prompting programmers to design a new window manager equipped with keyboard navigation for seamless interaction.

Furthermore, the setup application had to cater to ideogram-based languages, such as Japanese and Chinese, while also incorporating simple animations. This additional complexity was essential for establishing the foundational infrastructure required to initiate the Windows 95 environment. Chen emphasized that this included full support for extended and expanded memory through a dedicated protected mode manager.

In essence, the developers were tasked with constructing a new operating system merely to facilitate the Windows 95 setup, a seemingly inefficient use of resources given that Microsoft already possessed a well-suited product for the job. The final version of the Windows 95 setup utilized the Windows 3.1 runtime, which encompassed all necessary components to manage graphics under MS-DOS, complete with debugged video drivers, a graphics library, and a dialog manager.

This practice of code recycling remains a cornerstone of Microsoft’s approach, as contemporary Windows versions still require the installation of a “miniature” operating system to initiate the setup process. Today, this compact OS environment is known as the Windows Preinstallation Environment, which also serves the dual purpose of attempting to repair Windows in the event of operational issues.

Winsage
The Windows 95 setup was text-based for a good reason, Microsoft employee reveals