Windows 3.1 in a Windows 95 Virtual Machine (2022)

(geoffchappell.com)

65 points | by Lammy 3 days ago

6 comments

  • pram 12 hours ago
    Windows 95 had a bunch of stuff from 3.1 built in too. You could use progman as the default shell, it had file manager, etc.
    • kristopolous 11 hours ago
      The pressure to not fuck up windows 95 was immense. You have to appreciate the landscape then.

      You had os/2 not doing that well, Amiga not doing great, NeXT hurting, riscos kinda floundering and the failures of Windows 1 and 2.

      The risk of it not slapping was immensely high. A huge amount of the company was bet on it.

      They were risk adverse all over the place with the design, it's clear to see when you do a deep dive.

      And even then, people balked at things like the 8MB ram "recommendation", which was seen as expensive at the time.

      Even after the release and into 1996, large vendors were still shipping some computers with windows 3.1 - it was an option.

      It was really both a risky product and had to be done.

      • qwerty456127 9 hours ago
        > You had os/2 not doing that well, Amiga not doing great, NeXT hurting

        What was ever wrong with these? I never actually used them but everything I know about them sounds fantastic.

        • BobbyTables2 5 hours ago
          OS/2 Warp was amazing.

          It ran Windows applications natively and crashed less than Win 3.1 — but still had some hardware compatibility issues.

          It had a fancy scripting language and a lot of neat stuff already built in — unlike Windows at the time.

          I really wanted to switch to it, but Win95 won…

          • pjmlp 3 hours ago
            Used Smalltalk for the role .NET has nowadays on Windows, and SOM was so much better than COM.

            However that price tag was horrendous as OS for home computers.

        • yjftsjthsd-h 5 hours ago
          Dunno about the others, but I heard OS/2 was amazing... if you had the hardware for it. Which was notably higher end and more expensive than what DOS and Windows could run on.
          • pjmlp 3 hours ago
            The PC I got in 1992 would have been about 1000 euros more in today's money if OS/2 ready.

            Yes it was amazing, but not worth the extra money for many of us.

        • icedchai 7 hours ago
          I loved the Amiga, but it was basically dead by 1995. Commodore had gone bankrupt, the hardware had stagnated for years, and it was impossible to add modern features like memory protection to the OS.
        • bombcar 6 hours ago
          Nothing was really wrong - they just never hit the spark that Microsoft did (and not to say it wasn't skill on their part).

          NeXT was way expensive, OS/2 was way too business-oriented until too late, Amiga was mismanaged financially, Apple's Macintosh was too expensive, etc.

        • rewgs 8 hours ago
          They were great operating systems hampered by various business missteps.
      • icedchai 10 hours ago
        Windows 95 was a game changer, especially for Internet connectivity. The built-in "dial up networking" / PPP was huge. I was working at an ISP at the time, and remember how difficult it was to get customers to download Trumpet winsock and set it up for Windows 3.x. It could take hours with a difficult customer.
        • cbdevidal 8 hours ago
          I worked at an ISP in 1997 (the “You’ve got mail” one) and thankfully the software included a winsock. Our headaches were different; They had just come out with unlimited hours and busy signals were the cause of many complaints. After that got resolved, custom modem strings were really the only complicated bits.
        • Lammy 8 hours ago
          I recall the original Windows 95 release shipping with TCP/IP but the protocol having to be manually added in the Network CPL: https://eml.berkeley.edu/wp/win95/isp.html
          • icedchai 7 hours ago
            Yes! This was still much easier than talking someone through downloading a Trumpet Winsock Zip with a comm program.
            • toast0 2 hours ago
              I did support for a tiny ISP in 1999 [1], we had to have people remove and reinstall that from time to time. Many people could just do it, but I remember one customer I spent maybe two hours on the phone walking her through it. Would put her on hold when another call came in, and then check back with her. Eventually got it all settled.

              [1] we had one T1 for internet and one T1 PRI for the modem pool, and outsourced to MegaPath for out of area dialup, and then shunted all the customers to that when the PRI stopped working

              • nicholasbraker 44 minutes ago
                Ow wow, worked ISP support in 1997 - 1999 and indeed recalled having to reinstall TCP/IP stack and tweaking setting to make stuff work. Next to that, gruesome installation of ISDN drivers (which technically were out of support for us) for a specific brand of ISDN modems the incumbent telco provided to customers.
    • dblohm7 12 hours ago
      Windows 95's USER and GDI implementation was essentially an enhanced version of Win 3.1's. user32.dll and gdi32.dll were just thunking layers. The 16-bit components were guarded by a mutex named "Win16Mutex" to ensure serialized access to them from the 32-bit side.
      • dcrazy 7 hours ago
        Reminds me of how even well into the PowerPC era, much of Mac OS was still written in 68000 assembler, including QuickDraw (the equivalent of GDI).
      • cyberax 10 hours ago
        This mutex also protected a lot of other stuff. For example, if you wanted to access a DirectDraw surface, you needed to lock it in RAM, and this acquired the Win16 mutex. So if you then called a GDI function to draw something, it deadlocked the machine.
    • ranger_danger 12 hours ago
      Yep it was even an option during the initial setup.
  • jamesu 11 hours ago
    A while back I recall watching a video about this very feature. https://www.youtube.com/watch?v=SC3TVvtuNqs
  • 29athrowaway 11 hours ago
    More impressive is the fact you can upgrade from Windows 1.0 all the way to the latest one. I am not a fan of Windows but I found this to be impressive.

    https://www.youtube.com/watch?v=9f5DnlUyaq8

    • zamadatix 10 hours ago
      > More impressive is the fact you can upgrade from Windows 1.0 all the way to the latest one.

      That's no longer true since Windows 11 went 64 bit only (with no in place upgrade path as 16->32 bit had). E.g. the linked video starts a clean slate at XP in order to switch to 64 bit from that point on.

      Still damn impressive one can make it all the way to Windows 10 (32 bit), but equally crazy IMO the upgrade story finally ended with 11.

      • bigwheels 10 hours ago
        It's actually appropriate for it to break with 11, since Windows 11 is the fork in the road where many of us stopped caring to use Windows anymore.
        • zamadatix 9 hours ago
          And for the folks that prefer to bash XP (Fisher Price UI or whatever): XP 64 was the first (and so far only) version of Windows in the chain to not be reachable by any upgrade path whatsoever (where at least Windows 11 can still be reached by upgrading 64 bit Windows 10 and so on, back to XP 64). So, arguably, it's at least (if not more) at fault than 11 - depending which brings more joy for one to blame.

          Windows 95 was really the one which made the story interesting (the important bridge between 16->32), so no help to those that preferred NT or other OSs at the time and wanted an excuse to bash it :p.

        • pjmlp 3 hours ago
          Unfortunately the alternatives aren't much better, Apple is out of my budget for home computers, and I still can't buy Linux system at the local PC store other than Raspberry PIs.
  • ranger_danger 12 hours ago
    I've never been so delighted to see Raymond proven wrong. And he doesn't even deserve to be proven wrong.
  • burnt-resistor 9 hours ago
    I'm betting those guest instances are Windows 3.1 Real Mode however and so cannot load most protected mode drivers. IIRC, there are a bunch of protected mode things like the VDM that take control over the system because there's no such thing as nested virtualization until about 2005-2006 when VMware and similar hypervisors pushed for it.
    • trollbridge 5 hours ago
      The guest instances are fully 386 Enhanced Mode instances of Windows 3.1. Windows 3.1 (and Windows/386 and Windows 3.0) is implemented as an 80386 DPMI server, much like the DOS4GW you used to play Doom, and the the actual GUI code is a DPMI client. Windows 95 is also a DPMI server.

      Windows 3.x could also run in “standard mode”, where it used a 16-bit only DPMI server. The Windows GUI system could run in real mode or as a DPMI client.

      As far as “nested virtualisation”… Windows 3.1’s DOS windows could actually in turn run more instances of Windows 3.1, because Windows/386 relied on virtual 8086 mode only and Windows 3.x used DPMI which can be nested.

    • ashleyn 8 hours ago
      The screenshot explicitly shows "386 Enhanced Mode" in the Windows 3.1 about dialog.
  • kmeisthax 6 hours ago
    [dead]