There ARE plenty of mistakes in the history of Windows, don't get me wrong.
Microsoft has gone well out of their way to keep backwards compatibility from release to release, even if it means other features won't be added. Every few years they break this trend and they give everyone multiple years of notice.
There are often very good reasons for some of the things that appear to be insane, as any regular reader of Raymond Chen's "The Old New Thing" blog will testify.
Arguably, if anyone I know of would have a valid opinion of Windows' level of insanity, it would be Raymond Chen, as he's had his hands in the Windows source code for 2-3 decades at this point. He continues to work as a developer at Microsoft, so I'm quite confident that the level of "batshit insanity" in Windows is quite low and getting lower by the day.
The fact that it was put into the keyboard controller was probably as it is a simple soc[1] with (in the case of a keyboard controller) about 256 bytes of ram and about 1-4K of rom. Which resources was probably still available to the motherboard designers without complicated logic or additional components. It is not the weirdest fix to imagine. note: modern variant of the keyboard controller can sometimes be flashed which is fun to play around with.
I never had any direct contact with Microsoft code, but was surrounded by people who did.
It should be noted that Windows NT/Vista/XP/7/8/10 are a different lineage, and carry very little code from the 3.1/3.11/95/98/Me codebase, aside from some UI subsystems. There was not much contact between the two groups, and (I was told) a fair bit of bad blood.
If you find somebody claiming that crashes were not, at minimum, a daily event on W95, you may commiserate over their amnesia. Many people ran Windows programs under OS/2, where only the programs would crash, not the OS, and so less often, and they did not need to reinstall the OS.
Windows started out life as nothing more than a GUI designed to make MS-DOS look more like the Apple Macintosh.
One of Windows 3.x big strengths was it's ability to run a large number of MS-DOS programs.
But that was also it's weakness because it also meant it had to run MS-DOS and that OS was not much more than a boot loader and nothing like the modern looking operating system like OS/2.
However a big reason why OS/2 failed was because OS/2 1.x could only run a handful of MS-DOS programs and it ran them very badly.
People would use Windows 3.x ahead of OS/2 because Windows could run their MS-DOS programs.
Rumors about incompatibilities spread because people preferred to rationalize what they were already doing, and there was a lot of money in tuning and fixing messed-up Windows systems that would have dried up.
And that dog box could only run MS-DOS and no Windows programs.
Now it is true OS/2 1.x only ran on an IBM PS/2 but when it came running Windows and DOS it was no match for Windows 3.x itself.
Now OS/2 2.0 did run Windows and DOS program much better than Windows 3.x and it ran on any machine that could run MS-DOS, but it came out after Windows 95.
OS/2 2.0 did this by using the hardware support built-in to the 80386 chip and Windows 95 used that exact same hardware support to greatly improve on Windows 3.x.
Now while OS/2 2.0 was still much better than Windows 95, the race was lost only because by the time it came out Windows 95 was a smash hit.
Also OS/2 2.0 needed a high end 80386 machine with lots of (and very expensive) RAM where as Windows 95 ran just fine on low end 80386DX chips using much less RAM.
https://arstechnica.com/information-technology/2013/11/half-...
From that page:
Unfortunately, OS/2 had a crucial flaw in its design: a Synchronous Input Queue (SIQ). What this meant was that all messages to the GUI window server went through a single tollbooth. If any OS/2 native GUI app ever stopped servicing its window messages, the entire GUI would get stuck and the system froze.
In 1996, IBM released OS/2 Warp 4, which included a revamped Workplace Shell, bundled Java and development tools, and a long-awaited fix for the Synchronous Input Queue. It wasn’t nearly enough. Sales of OS/2 dwindled while sales of Windows 95 continued to rise.
Windows 95 was a smash success, breaking all previous records for sales of operating systems.
So to clarify it was OS/2 Warp 4 that finally delivered on the promise of Windows Better than Windows, but unfortunately it just came too late.
Microsoft was better able to reproduce failures when only their code ran, and took some care to make that work.
So your claims are rather reflecting your memory of your interaction with the people who did have the direct contact, and not the actual state.
In reality, Windows 3.0 and 3.1 is hugely different from 3.11, and from 95/98/Me. Starting with 3.11, there was actually the of code avoiding the lower lever calls to BIOS and DOS if possible (if the hardware allowed) but using the new 32-bit code instead.
The stability of the OS was definitely not as you describe, one could surely use the system for days without having the system crashes.
The system's design was the effect of the engineering goal of having a system that can work with very small amounts of memory, compared to the competing safer systems. With more memory available on the computer to implement the "hardware" memory protection one was able to use the "safer" systems like NT.
The wide use of that lineage vs. NT was a strong reflection of the market needs: people did have the computers with too little RAM for the "safer" systems but still wanted to run the programs that had the functionality they needed.
Additionally, the "safer" system not only demanded more RAM, but were often for some tasks less convenient.
A lot of users who "had to reinstall the system often" were actively doing "unhealthy" steps themselves: "trying" the software they didn't need, which did the interventions on the system which damaged the system.
The programs running on the OS (even on NT) typically did tend to crash regularly, however. Especially including the biggest like Microsoft Word. Fascinatingly, that was by design: it was the "knowledge" of the managers that delivering fast the new versions of programs with more features was more important than the code correctness. Just like in the web world more recently...
At the time, people running Linux on the same hardware resented being obliged to shut down after six months to upgrade their OS or disk storage. Back then, Linux was much less professionally maintained, but if it ever crashed at all it was a big deal. OS/2 likewise.
Windows crashes were not just for tinkerers. In any office, secretaries and receptionists were very used to re-booting in midday, despite shutting the machines off every night. They considered it completely normal.
Linux? In 1993 kernel was not even v1? And the distributions didn't exist? Linux was a text based toy back then, with nothing for those who needed the user space GUI programs running on 3.11 or 95, and who couldn't afford to have a computer to run the NT which was released in 1993. Since 1993 there was a safe Windows system, anybody using a less safe one, like 3.11, 95, 98, Me did that as a trade-off in order to be able to pay less for the hardware. Or to use a program which had used something that NT didn't have (an Linux surely even less). But even 3.11 already had a stable 32-bit core. Hardware was expensive then. Your memory is definitely not reflecting the actual state of that time.
Most people could not use Linux because it did not run Windows programs, or anyway because they did not feel competent to install it, but it needed no more machine than W95. OS/2 needed no more machine either, and would run Windows programs more reliably than Windows could, but cost real money and also had to be installed.
NT was pretty crashy back then, too, and a huge resource hog besides, and many Windows programs didn't run on it either. Vista was an even bigger hog. 10 is hundreds of times bigger, but RAM and disk got cheap, so we don't often notice.