7 ms·
Windows 3.1 in a Windows 95 Virtual Machine (2022)
- pram 1y agoWindows 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.
- ranger_danger 1y agoYep it was even an option during the initial setup.
- dblohm7 1y agoWindows 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.
- cyberax 1y agoThis 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.
- dcrazy 1y agoReminds 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).
- kristopolous 1y agoThe 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.
- icedchai 1y agoWindows 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.
- Lammy 1y agoI 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 https://eml.berkeley.edu/wp/win95/isp.html
- icedchai 1y agoYes! This was still much easier than talking someone through downloading a Trumpet Winsock Zip with a comm program.
- toast0 1y agoI 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 1y agoOw 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.
- ranger_danger 1y agoI've never been so delighted to see Raymond proven wrong. And he doesn't even deserve to be proven wrong.
- 29athrowaway 1y agoMore 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 https://www.youtube.com/watch?v=9f5DnlUyaq8
- zamadatix 1y 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 1y agoIt'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 1y agoAnd 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 1y agoUnfortunately 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.
- jamesu 1y agoA while back I recall watching a video about this very feature. https://www.youtube.com/watch?v=SC3TVvtuNqs https://www.youtube.com/watch?v=SC3TVvtuNqs
- burnt-resistor 1y agoI'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.
- ashleyn 1y agoThe screenshot explicitly shows "386 Enhanced Mode" in the Windows 3.1 about dialog.
- trollbridge 1y agoThe 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.
- JdeBP 1y agoThe protected mode drivers are already loaded in this scenario. The VMM and all of the VxDs are already up and running. All that's really happening here is the first VM (the "systemm VM") is running the DOS+Windows 95 kernel/user/gdi/system/network/display/keyboard and applications, and a second VM is running the DOS+Windows 3.1 kernel/user/gdi/system/network/display/keyboard and applications. The former's VMM and VxDs were largely a superset of the latter's. The only real trick is that there was a secret handshake between the DOS program WIN and the Windows KRNL386 program that has to be satisfied by whatever tries to start it in that second VM, otherwise KRNL386 just exits immediately. One cannot use WIN to start KRNL386 in the second VM. WIN does too much other than running KRNL386. It has to be something else that does the secret handshake and only tries to run KRNL386.
- kmeisthax 1y ago> There are, of course, a few caveats and a contrivance. Stick with me for Part Two and I will explain, including to give directions so that you can play too (with suitable hardware or emulators). This article is 3-4 years old - any hint of Part 2? I'm assuming those nested copies of 3.1 are stuck in Standard Mode.
- Lammy 1y agohttps://news.ycombinator.com/item?id=37384911 https://news.ycombinator.com/item?id=37384911