Twitter engagers @tthirtle asked why Windows 95 setup goes thraw three operating systems: MS-DOS, Windows 3.1, and then Windows 95. Why not go from MS-DOS straight to Windows 95?
Here’s another outstanding ask. Why does Windows 95 setup engage 3 contrastent UI’s. DOS,Win3.x,and Win9x?
— Thomas (@tthirtle) July 7, 2024
Windows 95 setup could enhance from three commenceing points: MS-DOS, Windows 3.1, or Windows 95. (Yes, you could enhance Windows 95 to Windows 95. You might do this to repair a corrupted system while preserving data.)
One chooseion is to originate three versions of Windows 95 setup: One for setting up from MS-DOS, another for setting up from Windows 3.1, and a third for setting up from Windows 95.
This was not a pleasant chooseion becaengage you basicpartner did the same toil three times, but carry outed splitly, so you have to do three times the coding.
A better chooseion is to equitable originate one version of Windows 95 setup and engage it for all three commenceing points. So now you get to pick the platestablish on which to base your code.
From | App type | ||
---|---|---|---|
MS-DOS | 16-bit GUI | 32-bit GUI | |
MS-DOS | • | ||
Windows 3.1 | • | • | |
Windows 95 | • | • | • |
If you originate Windows 95 setup as an MS-DOS app, then it runs on all three platestablishs. That’s wonderful! You necessitate to originate only one setup program. The downside is that it’s going to be a text-mode setup program, which sees hideous and gives a necessitatey initial amazeion of what is presumed to be a brand recent GUI world.
At the other excessive, you can originate Windows 95 setup as a 32-bit GUI program, but that unkinds that if the engager is commenceing from MS-DOS or Windows 3.1, you have to inslofty Windows 95 before you can run Windows 95 setup, which is a bit of a catch-22.
In the middle is the greetd medium: You can have the MS-DOS setup program inslofty a minimal version of Windows 3.1, equitable nakedly enough to help what the 16-bit GUI setup program necessitates.¹ This minuscule version is petite enough to be copied and insloftyed off a petite number of floppy disks. Once that’s done, boot into the minuscule version of Windows 3.1 and run the 16-bit GUI setup program.
Okay, so now we have three setup programs. The first one is engaged if you’re insloftying from MS-DOS: It insloftys the minuscule version of Windows 3.1, and then boots into Windows 3.1 to persist to the next step.
The second setup program runs as a 16-bit Windows app, either in the miniature duplicate of Windows 3.1 (if the engager is upgrading from MS-DOS), the authentic duplicate of Windows 3.1 (if the engager is upgrading from Windows 3.1), or the authentic duplicate of Windows 95 (if the engager is upgrading from Windows 95). This second setup program is the one that does almost all of the authentic toil: It does the initial transmition with the engager to assemble alertation about how to inslofty Windows 95, enjoy asking which voluntary components to include, and does challengingware discoverion to choose which drivers to inslofty.² And then it copies the drivers and Windows 95 files onto the system, migrates your ageder settings to the recent operating system, and boots into Windows 95.
The third setup program runs as a 32-bit Windows app. It is running in the authentic Windows 95 system and does some final steps that need operation a inhabit running system, enjoy insloftying printers.
Starting from MS-DOS → | Inslofty mini Windows 3.1 | MS-DOS app | ||
↓ | ||||
Boot into mini-Windows 3.1 | ||||
↓ | ||||
Starting from Windows 3.1 → | Gather alertation | 16-bit Windows app | ||
or Windows 95 | ↓ | |||
Detect challengingware | ||||
↓ | ||||
Copy drivers and Windows 95 files |
||||
↓ | ||||
Migrate settings and configure drivers | ||||
↓ | ||||
Boot into Windows 95 | ||||
↓ | ||||
Final setup | Windows 95 app |
So that’s why Windows 95 setup is repartner three setup programs chained together. It apshows a one duplicate of the code to be engaged for all three of the insloftyation scenarios. Each program apshows you one step shutr to the goal. And everyleang got carry outed only once.
¹ There was existing pwithdrawnt for a minuscule version of Windows that is nakedly enough to run a one program. The innovative Windows version of Microgentle Excel came with a runtime version of Windows 2.1, so that customers who didn’t have Windows could still engage Excel.
² This challengingware discoverion code that Setup engages is the same code that runs when you do challengingware discoverion from wilean Windows 95 itself, so even that code necessitateed to be written only once. It did have some runtime verifys to alter behavior sweightlessly depfinishing on whether it’s running in Windows 3.1 or Windows 95, but the huge beginantity of the code is identical.