"Windows 95 made those memory headaches a thing of the past as MS-DOS became progressively irrelevant."
Hmmm... The key word is "progressively". Windows 95 was still an extender started from DOS and using its file access subsystem.
I clearly remember I made some tweaks so I started the computer with DOS and could choose between launching Windows 3 or launching Windows 95 from the command line. And after shuting down Windows, it returned to DOS.
The default was to launch Windows 95 (from autoexec.bat?) and powering down the machine when shutting down 95, hiding the fact that DOS was still there.
One note: every time I have told that story, someone insisted that 95 wasn't just eye candy. Of course it wasn't, it switched to protected mode so DOS wasn't active. But the file subsystem was not different and it showed.
Windows 95 used "32-bit file access" (an option in Windows 3.1) by default. Which meant it had its own file drivers and was, in effect, a full 32-bit OS chain-loaded from DOS. However, in order to keep the "DOS box" working and make sure DOS knew about all the changes to the file system, Windows 95 had to update the DOS structures in memory also. Which made it an even bigger mess of hacks than we realized.
> Windows 95 was still an extender started from DOS and using its file access subsystem.
True, but sort of beside the point for this article. Using DOS as the equivalent of a bootloader and being too lazy[1] to write a proper block device layer doesn't really change the fact that win32 applications were run in 386 protected mode with their own 4G memory space.
[1] It's not actually insane in hindsight. Hard drive integration in the early 90's was a huge mess, with vendors putting all sort of crazy junk on their boards and gluing it together with BIOS hackery. The days of pervasive standards-compliant ATA were still in the future.
It had to fall back to call BIOS only in special cases, as a backward compatibility for some older hardware/drivers. So even if you would launch it from DOS, it would for most newer hardware be just a bootstrap phase.
My memories about that are blurry but I remember there was some general problem with file access that persisted until XP adopted NT core for consumer versions. Maybe something about concurrency, not sure, sorry.
Windows 95 didn't have concurrency problems different from NT, unless you used it on the old hardware that depended on DOS drivers. The main benefits NT brought were various protection mechanisms, which is convenient for programmers, but 95 surely wasn't slower, especially with less RAM, the major factor that slowed the NT adoption was its significantly higher RAM needs. Which translated in visibly more expensive computers needed. NT was also slower for all graphical routines for a while:
"The Windows NT 3.x series of releases had placed the GDI component in the user-mode Client/Server Runtime Subsystem, but this was moved into kernel mode with Windows NT 4.0 to improve graphics performance.[23]"
Note NT 4.0 appeared a year after Windows 95. The programmers had the benefit of using Windows NT even before 95 appeared, but the advantages of 95 were clear for the "normal users" who didn't think they needed the "protection" aspects: the most popular software of the time (e.g. Microsoft Word) was unstable enough to, from time to time, crash even on NT. The more stable Word versions appeared only after the famous Gates' 2002 memo started to be applied to the Microsoft Office products:
Hmmm... The key word is "progressively". Windows 95 was still an extender started from DOS and using its file access subsystem.
I clearly remember I made some tweaks so I started the computer with DOS and could choose between launching Windows 3 or launching Windows 95 from the command line. And after shuting down Windows, it returned to DOS.
The default was to launch Windows 95 (from autoexec.bat?) and powering down the machine when shutting down 95, hiding the fact that DOS was still there.
One note: every time I have told that story, someone insisted that 95 wasn't just eye candy. Of course it wasn't, it switched to protected mode so DOS wasn't active. But the file subsystem was not different and it showed.