Windows 95: The Most Important Operating System in History

This is obviously an opinion piece and a bit of nostalgia but, despite that, Win95 being the most important OS ever is not a claim that I make lightly. I’m a student of this space and there are many great contenders but, in my opinion, none had as dramatic an effect on the entire industry, and certainly none as quickly as Win95.

So, what am I talking about? Let’s set some context:

  1. In 1995, PCs outnumbered all other computers at roughly 80M units, growing to roughly 90M by 1998. I think a case can be made that this out numbers all other general purpose computing devices combined (but I have no reference for that). For instance, by comparison, Mac sales in 2002 (the oldest number I could readily find), were only 3.1M. So by volume anything that happened on the PC was going to be important.
  2. These computers were largely running something like Windows 3.1, with various DOS 5.0 combos and the like. The state of the software development in that environment was, to be generous, terrible. Much of the most important software was running in this horrible 16 bit segmented architecture universe thrust upon us by the 8086. Much of the most important software ran with no memory protection, in shared address spaces. Even important software like critical printer drivers and disk drivers ran in that mode, “real mode” 8086. The most important GUI applications were running in that same 16-bit mode, in a shared memory space, with cooperative scheduling. Any application could readily bring down the whole system and often did. Debugging in this universe was a horrid thing requiring miracles (see the section on debugging in My History of Visual Studio)
  3. The hardware extensibility situation was horrible with many if not most things coming in the form of ISA cards, noted for being configurable only by dip switches and requiring an exact combination of driver, dip-switch, and config.sys setup. Even the simplest things like installing a Sound Blaster audio card (frequently not included by default) was an arcane process. The number of “free interrupts” and DMA channels was a sales feature of PCs. Like a thing you put on the damn sticker beside processor speed and memory. Many video cards were still based on that 8Mhz ISA bus and graphics acceleration could require very tricky driver setup which again was prone to bizarre crashes…

And that’s where the industry was… the most important computing platform was a hot mess.

Now let’s talk a moment about Windows 95 and how it is built; I won’t go into this in great detail because you can read a lot more about this sort of thing at the Wikipedia article on the subject. Suffice to say Win95 is not a jewel of algorithmic perfection by any means. It is nothing like the best operating system Microsoft knew how to build at the time, or was capable of building at the time. We have existential proof of that: look at Windows NT if you like, or consider other contemporaneous operating systems and consider “could Microsoft have built that had it put its best on such an endeavor” I think it’s easy to conclude that cleaner solutions than Win95 could have been found. But none of those were in the offing. And why?

In order to be successful Win95 had to be wildly backwards compatible with the current ecosystem including:

  • support for critical real mode drivers and DOS applications generally, including, importantly, tons of games which were generally DOS+graphics/memory extensions
  • support for every important “Win16" (i.e. Windows 3.1 or less) application in existence

To this add:

  • enable the creation of new Win32 applications compatible with Windows NT, including full address isolation and threading, and an entirely different debugging and i/o model
  • enable a 32-bit driver path you could reasonably migrate to
  • enable new plug and play devices despite the existence of O(10⁴) ISA devices that would hork things up if not properly detected “some other way” and then skillfully “dodged” by Plug and Play

Windows 95 succeeded wildly at this. The number of compromises and special cases and shims was staggering, but it worked; selling over a million units in the first day towards about 40 million units in the first year.

And what were the consequences?

Well you might like the look and feel or not like it, but importantly in just a few years we see consequences like:

  • ISA cards went from the main-thing to a side-thing to a non-thing
  • virtually everything went Plug and Play, enabling more complex cards and configurations; interrupt shortages were soon a thing of the past
  • every important application migrated from Win16 to Win32 with the old “real mode” applications dying the fastest, real mode didn’t even have to ship by Win98 (which had USB in it by default)
  • DOS drivers went the way of the dodo, the new 32 bit driver model was easier, and more stable, rendering the drivers much cleaner; more complex drivers became possible
  • bizarre mandatory user configurations were largely gone, you didn’t edit autoexec.bat or config.sys on a weekly basis anymore
  • tons of new exciting cards became available, including sound and video, high speed video became a thing, it could self configure!

These effects had further amazing consequences in the next few years; the most important thing was that the PC platform had gone from being a weird kludge to being much more reasonable and uniform. Further operating systems benefited from this tremendously; Windows 2000 and then Windows XP of course but not just the MS operating systems. The quality of Linux on PC was never better, the platform changes were tremendous for PC based servers and you could reasonably make PCs for HPC and other applications. Today’s mega computers look roughly like giant PC arrays with fabulous networking. The PC platform became so viable that Apple could reasonably build their Macs on top of a PC foundation. An unthinkable situation just a few years prior.

And why? Because above all else the industry needed a way to get to their future: the promised land of reasonable hardware and software architecture. The industry didn’t need a perfect gem of architectural beauty; what it needed was a raft that could last a few years and carry them safely to the other side. This was an incredibly difficult challenge, on highly constrained systems, with so many band-aids… but that’s exactly what happened. The Miracle that was Windows 95 enabled an entire era of desktop computing. We are still living in that era.

It’s true that things might have happened some other kind of way, but, in our reality, they didn’t. It was Windows 95 that delivered us to the future. And so, despite its many, many, warts, I believe Windows 95 can credibly be called the most important OS ever to be released. Worthy of mention beside the Titans we know and study.

I’m a software engineer at Facebook; I specialize in software performance engineering and programming tools generally. I survived Microsoft from 1988 to 2017.