News: 1739813650

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Why did the Windows 95 setup use Windows 3.1?

(2025/02/17)


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 [1]response came after his November [2]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.

[3]

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.

[4]

[5]

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."

[6]

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?

[7]

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.)"

[8]Haiku Beta 5 / In tests it's (Fire)foxier / It pleases us well

[9]How the OS/2 flop went on to shape modern software

[10]Windows 95 setup was three programs in a trench coat, Microsoft vet reveals

[11]Floppy discs still run a U.S. metro? Japan steps in with 'project kill floppy'

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." ®

Get our [12]Tech Resources



[1] https://devblogs.microsoft.com/oldnewthing/20250211-00/?p=110862

[2] https://www.theregister.com/2024/11/19/chen_windows_95_setup/

[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2Z7O_joV9VxBt4bCF0Go5CQAAAJA&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44Z7O_joV9VxBt4bCF0Go5CQAAAJA&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33Z7O_joV9VxBt4bCF0Go5CQAAAJA&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[6] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44Z7O_joV9VxBt4bCF0Go5CQAAAJA&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[7] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33Z7O_joV9VxBt4bCF0Go5CQAAAJA&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[8] https://www.theregister.com/2025/01/09/testing_haiku_beta_5/

[9] https://www.theregister.com/2025/01/05/microsoft_os2_flop_future/

[10] https://www.theregister.com/2024/11/19/chen_windows_95_setup/

[11] https://www.theregister.com/2024/10/24/hitachi_rail_contract_san_francisco/

[12] https://whitepapers.theregister.com/



Makes sense

Ball boy

Why re-invent the wheel? Far more economical - in time and resources - for them to have used the shell of what's already out there.

Of course, these days, using the Windows Preinstallation Environment means it's that much easier to shoehorn in some adverts and kick off the data-grab nice and early. Y'know, start as you mean to go on and all that ;-)

Huh? People kept asking those questions EVEN after their last post from Nov 24?!?

ArguablyShrugs

It explained it all already…

…and it was a perfectly cromulent explanation.

Including the bits about starting a DOS graphical installer from within win 3.1 if one upgraded in place - even if usually not a good idea with windows way back then, but hey :-)

Marketing

billdehaan

Windows 95 was competing with OS/2 at the time.

OS/2's claim to fame was that it was a new operating system, unlike Windows, which was just a graphic user interface that sat on top of DOS.\

Microsoft countered that Windows 95 was a standalone operating system that, unlike Windows 3.1, did not require DOS to run.

The fact was that Windows 95 did did run on top of a DOS boot loader and kernel. However, unlike Windows 3.1, it was not sold separately from DOS. Windows 95 was sold as a packaged that included the DOS boot loader and the GUI.

So while at a technical level, Windows 95 required a DOS kernel to boot, at a marketing level, it was an integrated package, so MS could claim that it did not require DOS to run, since users did not need to buy it separately.

After going through those conniptions to convince the world that Windows 95 was not just a "clown suit for DOS" (as the joke went), having it boot to DOS to install would contradict the messaging. So, it used WIndows 3.1 instead.

Re: Marketing

kmorwath

At least it didn't require several floppies to boot the installer, as you had to do with OS/2 Warp, even if it came on a CD...

Re: Marketing

rcxb

Windows NT 4.0 (released a year after Win95 and far superior in every respect) needed 4 boot floppies, before it would read from the CD.

Re: Marketing

Sandtitz

"Windows NT 4.0 (released a year after Win95 and far superior in every respect) needed 4 boot floppies, before it would read from the CD."

Windows NT 4.0 CD was El Torito compatible from the beginning - you can boot from it and install it from there.

If however your BIOS didn't support booting from CD drive, then you needed the boot disks - all three of them. They included the IDE ATAPI driver and few usual Adaptec drivers a well, but if your system had some unorthodox SCSI / sound card / parallel port CDROM interfaces for which the boot disks didn't carry drivers, then yes - you needed a separate driver diskette for that one as well.

Re: Marketing

Charlie Clark

I seem to remember being able to boot OS/2 from CD. But that was only after they were using IDE or SCSI connections, until then you were dependent upon hardware-specific drivers and they needed space. Same was true for lots of audio and video devices at the time: Windows 95 was mainly a graphical refresh of Windows 3.11 and, as such, not much of an OS, but it was good enough for many and manufacturers found it useful to have only one OS to program for.

Re: Marketing

that one in the corner

> : Windows 95 was mainly a graphical refresh of Windows 3.11 and, as such, not much of an OS,

Well, apart from being a 32-bit pre-emptively scheduled kernel, instead of 16-bit co-operative.

But aside from the graphical refresh, the extra 16 bits for consistent flat memory addressing and the pre-emptive scheduler, what did '95 ever do for us?

Re: Marketing

williamyf

Following that logic, Novell netware (3.11 and 4.1 in particular) ran atop of DOS, because they needed DOS to boot, and you could exit from them to DOS.

The reality was that Win1.o depended heavily on MS-DOS. Win 2.0 took some of the things DOS did, and started doing those itself in 286 (or 386) protected mode. Win3.x Took even more things away from MS-DOS, ditto for Win95(SE), Win98(SE) and WinMe. So, each iteration sheded more and more of MS-DOS

With the advent of WinXP, MS-DOS was completely exorcised from the consumer OS.

Re: Marketing

BinkyTheMagicPaperclip

Whilst that was one of OS/2's marketing points, it really wasn't the major one. Having a more advanced interface, multithreading, a much better file system, the ability to multitask DOS and 16bit Windows programs next to new OS/2 apps without affecting stability was the draw. Plus it was 32 bit.

By the time '95 arrived it was good enough for most people. Long filename support hacked on, FAT32 a couple of revisions later. Multitasking that was better than Windows 3.1. DOS compatibility that was also an improvement. A vastly improved API and interface. We can argue just how much better OS/2 or 9x were, but one thing you also have to give Windows is introducing plug and play - which had some support in OS/2 but frankly was much better implemented in 9x (again you could argue about whether it's better to have present but rather flaky PnP, over largely absent PnP but a stable system it was necessary to configure yourself. It was only with Windows 2000 that PnP stopped being horrific).

OS/2's fate was sealed even before 2.0 was released, but even so it was a great OS at least until 94-95. The release of 95 killed it off (not to mention all the resource wasted on OS/2 PowerPC), and by the time Warp 4 was released in 1996 it was very clear it was at the end of the road. Windows NT 4.0 was released that year, featuring the 95 interface and a load of new features. Whilst its lack of USB support and later versions of DirectX would really start to bite in the late 90s, a lot of the OS/2 vendors started developing NT releases of their software, and the userbase switched mostly to that, with a few Unix transfers.

Re: Marketing

billdehaan

Whilst that was one of OS/2's marketing points, it really wasn't the major one.

It depends on where you were. I was working at IBM at the time on an OS/2 1.x product (part of AD/Cycle, if you remember that), and at all the trade shows, the IBM presenters pushed the "you don't need DOS" and "it doesn't sit on top of DOS" lines constantly .

OS/2 was 90% of the way there to being better than Windows for a huge number of users. What was really annoying was that instead of putting in the effort to address that 10% (the SIQ in particular), IBM just blamed the press, the retailers, and the end users for not appreciating the fact that it was better. They finally fixed the SIQ in Merlin in 1996, four years later, but if they'd done that, and addressed a number of other issues with the WPS in 1992, it would have lasted a lot longer.

OS/2's biggest problem wasn't competition from Microsoft, it was (mis)management within IBM. Some of the internal communications I saw were just jaw dropping in their delusions.

Re: Marketing

tracker1

I didn't really start switching away from OS/2 until late in nt4 lifetime and fully with windows 2000. I had a dual boot for games for a few more years though.

Last time I tried OS/2 I couldn't even hardly remember how to use the things.

Re: Marketing

Annihilator

Debunked several times over, Windows 95 wasn't "a GUI that sat on top of DOS"

https://forums.theregister.com/forum/all/2024/11/19/chen_windows_95_setup/#c_4968643

Re: Marketing

katrinab

Linux at the time needed LILO to boot.

Apart from the fact that DOS was maybe a little more capable than LILO and Linux (+GNU+XFree86 etc) far more capable than Windows, was there really any difference?

A Mess

navarac

These days, installing Windows is a convoluted mess. Out of interest, I did a clean install on a spare Desktop today. It took nearly an hour. Then, of course, you have to de-bloat all the ads and other unnecessary crap out of it before you can think to load programs and actually use it. I then clean installed Linux Mint 21.1 Cinnamon. That took about 20 minutes, including running 2 scripts to run uppdates and download all the software I use. No competition in my book. Never going back to ANY Microsoft products.

Oldie but goodie

FirstTangoInParis

I recall installing SunOS 4 using exactly the same philosophy. Boot off CD, load mini root into memory, and run that to install to disk. Plus ça change …..

Re: Oldie but goodie

the spectacularly refined chap

You could boot and install SunOS from a tape drive. On a SCSI controller it had no driver for, on to a disk on that same controller. OpenPROM and Open Firmware were designed from the outset to be extensible. No driver for that device? Well the firmware driver for it is written in Forth, we'll just carry on rolling with that in our own hosted implementation when the main OS goes up, the user can install a native driver later.

Where is the boundary of the operating system exactly, especially since the very same firmware was also the boot manager and kernel loader? The endless debates over when Windows became an operating system (as above) are utterly meaningless when considered against all the other alternatives.

Linux distros

Gene Cash

I think some of these thousands of nearly identical Linux distros could pick up a trick or two here.

But then I realize I use a distro nearly identical to Debian, except for rejecting the heresy of the People's Republic of Systemd as espoused by that vile heathen Poettering.

Anonymous Coward

I notice Windows 8, 10 and early 11 use Windows 7 during the installer (you can tell because of the Windows Basic theme). I guess its a similar reason.

Doctor Syntax

IOW bootstrapping all the installs of all these systems listed above uses a bootstrapping approach.

Annihilator

Given Windows3.1 dialog boxes survived until Windows 10 (possibly 11?), it's unsurprising:

https://www.reddit.com/r/Windows10/comments/l85hsx/windows_31_just_called_they_want_their_dialog_back/

This quote is taken from the Diamondback, the University of Maryland
student newspaper, of Tuesday, 3/10/87.

One disadvantage of the Univac system is that it does not use
Unix, a recently developed program which translates from one
computer language to another and has a built-in editing system
which identifies errors in the original program.