Why did Windows 95 setup use three operating systems?

(devblogs.microsoft.com)

109 points | by mooreds 4 hours ago ago

38 comments

  • xeromal 3 hours ago

    I love that little nugget of info at the end. You could originally run excel standalone without an OS and it came with windows 2.1 bundled

    • tech234a 29 minutes ago

      Only a thumbnail from the Wikipedia page mentioned in the article was saved to the Internet Archive [1], but it appears the same image was uploaded to Wikia: https://static.wikia.nocookie.net/windows/images/3/34/Excel2....

      The original description of the file uploaded to Wikipedia read [2]:

      Microsoft Excel 2.1 included a run-time version of Windows 2.1

      This was a stripped-down version of Windows that had no shell and could run just the four applications shown here in the "Run..." dialog.

      The spreadsheets shown are the sample data included with Excel.

      [1]: https://web.archive.org/web/20090831110358/http://en.wikiped...

      [2]: https://web.archive.org/web/20081013141728/http://en.wikiped...

    • simonjgreen an hour ago

      Most interesting part of the whole thing for me! The later WinPE environments are some of the most overlooked computer environments out there but they were absolutely everywhere. EPOS, ATMs, digital signage, vending machines.

      And of course the subject of so many BSOD photos…

      • KerrAvon 7 minutes ago

        None of that stuff was pre-NT, though. Windows 2.1 was not something you'd want to deploy on an ATM.

    • rusk 3 hours ago

      I think it needed DOS … just not the Windows “shell”

      • skissane 41 minutes ago

        It came bundled with a stripped down version of Windows 2.x - missing the application launcher (in Windows 1.x/2.x known as MS-DOS Executive, replaced by Program Manager and File Manager in Windows 3.x), so it could only be used to run one application (Excel) unless you fiddled with its configuration.

        Yes it needed DOS because pre-3.11 Windows versions actually used the DOS kernel for all file access. When 32-bit file access was introduced in WfW 3.11, that was no longer true-but it was an optional feature you could turn off. In all pre-NT Windows versions, Windows is deeply integrated with DOS, even though in 9x/Me that integration is largely for backward compatibility and mostly unused when running 32-bit apps - but still so deeply ingrained into the system that it can’t work without it.

        IIRC, Microsoft tried to sell the same stripped down single-app-only Windows version to other vendors, but found few takers. The cut-down Windows 3.x version used by Windows 95 Setup is essentially the 3.x version of the same thing. Digital Research likewise offered a single app version of their GEM GUI to ISVs, and that saw somewhat greater uptake.

  • impoppy 37 minutes ago

    > Raymond has been involved in the evolution of Windows for more than 30 years. He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

    Way to go Mr. Raymond!

  • reddalo 3 hours ago

    Don't modern versions of Windows do the same? For example, I clearly remember that the Windows 10 installer first launches a Windows 7-like environment.

    • zokier 2 hours ago

      Aren't all modern (>xp) windowses just NT6 under the hood? Is there such clear delineation between 7 and 10 for example?

      • rbanffy an hour ago

        It feels like NT4, with 2000 on top of it, then a layer of XP, then Vista, then 7, then 8, then 10, and, finally, 11.

        It’s not uncommon to do something that lands me on a dialog box I still remember from Windows NT 3.1. The upside is that they take backwards compatibility very seriously, probably only second to IBM.

      • feldrim an hour ago

        It continued as 6.1, 6.2 and 6.3 for Windows 7, 8, and 8.1. But the NT kernel revamped for Windows 10. And they aligned the version numbers at that point. Windows 10 and 11 are both NT 10. The kernel has many differences within 6.x let alone the big leap to 10.

        • nntwozz an hour ago

          Just like macOS was Mac OS X (10) for a very long time, then they moved to 11 with Big Sur but it's really only in name.

          macOS Sequoia is version 15, whoever reaches 20 first wins right!?

      • runjake an hour ago

        There have been iterative substantial improvements to the NT architecture since Windows 2000 and later with Vista (where the UAC model started, rather poorly).

      • yjftsjthsd-h an hour ago

        They're all NT, though I'm not sure how you mean "NT6"; XP was NT 5, Windows 10 was NT 10, and I think 11 is 11.

    • heraldgeezer 2 hours ago

      Yes that is Windows Preinstallation Environment (also known as Windows PE and WinPE)

      https://learn.microsoft.com/en-us/windows-hardware/manufactu...

      https://en.wikipedia.org/wiki/Windows_Preinstallation_Enviro...

  • brian-armstrong an hour ago

    The fact that Windows can upgrade an installation in place with relatively high success is impressive. Is it possible to have an install that's been repeatedly upgraded all the way from MS-DOS without needing a reformat somewhere along the way?

    • andrepd 44 minutes ago
    • ClassyJacket an hour ago

      There's various youtubers who have tried upgrading MS OSes thru as many versions as possible and they have taken it pretty far

      • agumonkey an hour ago

        Including preserving custom user config (colors, background images)

        I feel strange about hating on MS after the 2000s

  • Animats an hour ago

    Because, when they did it right, in Windows NT 3.51, the users with legacy 16 bit applications screamed. There was a 16-bit DOS compatibility box, but it wasn't bug-compatible with DOS.

    Microsoft underestimated the inertia of the applications market. NT 3.51 was fine if you used it as a pure 32-bit operating system. You could even configure it without DOS compatibility. Few did.

    • Onavo an hour ago

      Something the Unix world can certainly learn from.

  • jmclnx 3 hours ago

    I never thought of Windows 3.1 as an OS. The other 2 was MS-DOS and Windows 95.

    • rusk 3 hours ago

      Agree, the terminology in those days was “shell”.

      Though Windows 95 was arguably similar running atop “DOS 7” it actually imposes its own 32-bit environment with its own “protected mode” drivers once booted. Dropping to DOS reverted to “real mode”.

      • Hilift an hour ago

        Another competitor shell at the time was "WordPerfect Office for DOS". Which I witnessed some people launch from Windows 3.11. I believe it had WordPerfect and what preceded GroupWise for email. https://mendelson.org/wpdos/shell.html

      • tliltocatl 2 hours ago

        So did the lastest Win3.1 for workgroups, just MS spared all the fanfare for Win95. Not sure if the 3.1 version in the installers does.

        • rusk 2 hours ago

          Windows 3.1 was just a graphical shell. All the drivers and stuff were still managed by DOS. You still needed to configure your system with config.sys

          EDIT it’s coming back to me. Windows 3.1 did have a a subsystem for running 32 bit apps called Win32 I think that’s what you mean. This was very much in the application space though.

          It still used cooperative multitasking and Win 95 introduced preemptive.

          • DHowett 2 hours ago

            Bryan Lunduke has an article about this myth, actually!

            https://lunduke.locals.com/post/4037306/myth-windows-3-1-was...

            It’s backed up by another Old New Thing article at https://devblogs.microsoft.com/oldnewthing/20100517-00/?p=14...

            The TL;DR is that Windows 3.1 effectively replaced DOS and acted as a hypervisor for it, while drivers could be written for Windows (and many were) or DOS (and presumably many more of those were actually distributed). The latter category was run in hypervised DOS and the results bridged to Windows callers.

            (Edited after submission for accuracy and to add the Old New Thing link.)

            • phire 3 minutes ago

              One of the major motivations for windows, is that the driver situation for DOS really sucked. Every single office suite had to talk directly to printers. Text mode was reasonably uniform, but printing graphics required the application to know about the printer.

              And games needed to talk directly to the video card and sound card if you wanted anything more than PC speaker beeps and non-scrolling screens on one of the default BIOS graphics modes.

              One of the major selling points of Windows 1.0 was a unified 2D graphics API, for both screen and printing. The graphics vendor would supply a driver and any windows application could use its full resolution and color capabilities needing to be explicitly coded for that graphics card. This rendering API also supported 2D accelerators, so expensive graphics card could accelerate rendering. 2D accelerators were often known as Windows accelerators.

              Windows 3.1 still relied on DOS for disk and file IO, but everything was can be done by VXD drivers, and should never need to call back to DOS or the BIOS (which was slow, especially on a 286)

              With Windows 95, Disk/File IO were moved into VXD drivers, and it was finally possible to do everything without ever leaving protected mode (though, DOS drivers were still supported).

              Read more about the history of Device drivers here: http://www.summitsoftconsulting.com/WinDDHistory.htm

              And I really enjoyed this documentary about the development of Windows 1.0: https://www.youtube.com/watch?v=vqt94b8bNVc

          • rbanffy an hour ago

            I think it’d be fair to call it more than a shell. It was also a set of libraries that implemented the common user interface elements of Windows apps, similar to the Macintosh Toolbox but not in ROM.

          • YakBizzarro 2 hours ago
            • rusk 2 hours ago

              Thanks

              ”Win32s lacked a number of Windows NT functions, including multi-threading, asynchronous I/O, newer serial port functions and many GDI extensions. This generally limited it to "Win32s applications" which were specifically designed for the Win32s platform,[4] although some standard Win32 programs would work correctly”

              • kjellsbells an hour ago

                It was a strange time back then for anyone who wanted to get online. Win3.1 had no TCP/IP stack so many folks used a third party download called Trumpet Winsock. IIRC you might have needed win32s in order to use it.

                Looking back, Microsoft were clearly in an incredibly complicat ed transitioning phase, with very little margin for error (no patching over the Internet!)

          • nkrisc 2 hours ago

            I was only 5 or 6 maybe when I used Windows 3.1 so I may be misremembering, but didn’t it have an X on the desktop to close the GUI and return to the DOS prompt?

            • mixmastamyk an hour ago

              My memory is that closing Program Manager exited windows.

  • pram 3 hours ago

    The "mini" Windows 3.1 it came with was pretty much fully functional though, you could literally boot directly into PROGMAN.EXE as the main Windows 95 shell.

    • Dalewyn 2 hours ago

      Program Manager is a shell and was actually included in Windows all the way through XP SP2 when it was phased out. You can probably run it in Windows Vista through 10 if you copy the .exe over, too.

  • rbanffy an hour ago

    If they were going to install a bare Windows 3, they could at least make an effort to ship a bare 95.