8/19/2026 at 9:45:06 PM
The architecture the DOS-based windows line, and particularly the versions that had the virtual machine manager and ran in 32-bit protected mode, is such an interesting crufty archaeological dig. The OS's are bristling with hacks to make things work in resource-constrained environments, all while having ridiculous amounts of compatibility. There's a certain perverse elegance in it.NT, being a "real" OS (with memory protection, kernel/user separation, access control, etc), seems so much more obvious (and boring) in its design compared to the earlier DOS-based Windows series. The "adults" came in and showed the kids how to make a grown-up operating system.
I don't miss the instability of the older DOS-based Windows OS's, for sure. I wouldn't want to go back there. For their time, though, they really did punch above their weight.
Edit: I didn't mean "adults" in any negative sense. I think MSFT took advantage of an opportunity for some very senior and opinionated talent.
by EvanAnderson
8/19/2026 at 10:03:29 PM
I don’t know about that “adults” comment. Microsoft grew their operating system up from a very low base where the “adults” moved theirs down. For most users, windows NT was ridiculous overkill.At the time most users and businesses didn’t own a PC that could do the virtualisation tricks required by windows 3 (o windows 2 386). A lot of places still had XT class machines right up to the end of the 1980s.
So the Microsoft guys had a pretty complex landscape in which Windows had to operate and they managed a fantastically complicated solution. They were definitely adulting hard during that time.
by smackeyacky
8/19/2026 at 11:05:06 PM
I didn't mean to imply there was something "less" about the talent creating the DOS-based Windows OS. I think it's a marvel of engineering for economy and constraints.I think NT was a means to an end (government contracts requiring a "Rainbow book"-qualified OS). It was a long time before the DOS-based Windows OS lost its position as the consumer / business offering. I think that shows MSFT knew what they had in that legacy code and leveraged it for great profit for a long time.
I think the "adults" came in and made a stuffy buttoned-down operating system meant to qualify as a "C2"-compliant OS meant to win contracts. NT doesn't have the hacky charm of the DOS-based Windows versions.
by EvanAnderson
8/20/2026 at 2:19:30 AM
> I didn't mean to imply there was something "less" about the talent creating the DOS-based Windows OS. I think it's a marvel of engineering for economy and constraints."DOS-based Windows" was not an OS. It was effectively a program which provided a green thread[0] execution model for cooperative processes to execute within and had the reliability one would expect from same.
by AdieuToLogic
8/20/2026 at 12:46:10 PM
Windows/386, and later 3.x and 9x, was a virtual machine monitor that could run 16-bit operating systems with 32-bit drivers.The desktop environment you saw was nothing but the main virtual machine, and inside that was the green thread environment you describe. But the VMM on the outside was pretty solid.
by bonzini
8/21/2026 at 3:11:06 AM
> Windows/386, and later 3.x and 9x, was a virtual machine monitor that could run 16-bit operating systems with 32-bit drivers.Those were not "DOS-based Windows". If your position is Windows/386 et al were OSs which supported running MS-DOS programs, I agree. But that is not "DOS-based" so much as "can run DOS programs."
by AdieuToLogic
8/20/2026 at 12:37:47 AM
IMHO it was an architecture far ahead of its time --- basically a hypervisor running existing DOS in VMs, with all hardware passed through by default. If they kept at it instead of abandoning for NT, by e.g. increasing protections for better isolation and reliability, while still passing through where performance mattered, we might've gotten Microsoft's take on Xen.by userbinator
8/20/2026 at 1:30:56 AM
Would HyperV and Virtualization Based Security be that take? I suppose it’s taken very far on Xbox and VBS is enabled by default on most Windows systems.by crazysim
8/20/2026 at 1:57:19 AM
It was not a hypervisor, the hardware was not virtualized. They instead used 16-bit code for the OS kernel, simply transitioning between 16 and 32-bit modes.The 16-bit code was a dead end. It was not re-enterable, so 32-bit code had to take a Win16Mutex on every kernel code.
If you ever debugged DirectX code on Win9x, you'd remember that quite vividly. The LockSurface call that provided direct access to pixels locked this mutex, so a breakpoint in a locked section caused an instant hard deadlock.
That being said, it indeed was a brilliant hack that allowed a featereful GUI to run within 2Mb of RAM with good DOS compatibility.
by cyberax
8/20/2026 at 9:13:38 AM
The hardware was virtualized, it's even in the name for drivers on Win9x: Virtual Device Driverby haileys
8/20/2026 at 6:25:09 PM
VxD-s technically allowed virtualizing devices, but only in a very limited way. The port IO instructions were easily intercepted but not much else. VxDs could use page protection tricks to redirect MMIO but this was used sparingly.Really the only serious "virtualization" was in the interrupt handling. Code in Win9x that handles interrupts had to be 16-bit and located in the lower 640kb of RAM.
Most VxDs worked like classic drivers, they encapsulated device-specific interfaces and provided more abstract application-level interfaces.
by cyberax
8/20/2026 at 7:42:33 AM
In retrospective everything is easy.by pjmlp
8/20/2026 at 6:48:06 AM
"Showstopper" is the book that explains this time in Microsoft's history. An excellent read.by jeffrallen
8/20/2026 at 12:47:52 AM
If the NT design were as obvious as you suppose, then POSIX systems would work that way too.by tom_
8/20/2026 at 12:59:52 AM
The "obviousness" about NT's design I was talking about, compared to the DOS-based Windows versions, were things like a trusted computing base, access control, kernel/user separation, memory protection, etc (stuff the DOS-based Windows versions had little to none of).POSIX systems have that stuff, too.
by EvanAnderson
8/20/2026 at 1:43:33 AM
In other words, POSIX and NT are both "traditional OS" architectures where the OS serves as a relatively heavy and thick abstraction layer that isolates userspace from the hardware, while DOS-based ("hosted DOS"?) Windows is really more like a thin bare-metal hypervisor which arbitrates or virtualises direct hardware access between VMs running DOS. From that perspective, what users think of as "Windows", i.e. the GUI and the whole Win32 environment, is actually just another DOS application running in the protected-mode environment of a DOS extender (DPMI).by userbinator
8/19/2026 at 10:26:47 PM
> The "adults" came in and showed the kids how to make a grown-up operating systemOh please — it's easy when you have the luxury of starting from scratch with unlimited budget.
DOS-based Windows had to both retain backwards compatibility with DOS applications and all their quirks and coexist with them at the same time.
The amount of hacks necessary to pull that off is an accomplishment unto itself.
Remember you couldn't really play games on NT-based Windows until Windows XP came out and even then DOS games were pretty much out until DOSbox came along.
Guess those "adults" had to stick with Solitaire and Hearts.
by pudgywalsh
8/19/2026 at 11:21:48 PM
Definitely. I think the way microsoft brought their user base along between 1990 and 2000 from Dos to 32-bit protected mode was beautifully respectful of their users. To me it's the standard for how to change a user's preferences (maybe for social change in general). I just used Dos or win16 apps less and less over the decade and eventually my use dropped to zero. At no time did I feel coerced to leave behind what I already invested in, I just came to appreciate the alternative they were offering (the opposite of a forced OTA update). By the 2000s I could already sense a slight change in tone with how strongly they were pushing those service packs for windows xp.by jasonfarnon
8/19/2026 at 10:47:42 PM
Windows games worked great on Windows 2000! There were officially inofficial packages of DirectX and such - I never had any trouble with them.I think DOS games also worked.
by ahartmetz
8/20/2026 at 7:57:11 AM
There was nothing unofficial about it -- Windows 2000 had full, official DirectX support parity with Win9x.Windows XP is where Microsoft themselves pushed the consumer market onto the NT line, but Windows 2000 was fully functional as a consumer desktop.
by theevilsharpie
8/19/2026 at 10:58:52 PM
Wow, ancient memory unlocked. Grabbing and ripping the DirectX releases. Word.by kridsdale1