I’ve been skimming through the 1993 book Windows Internals by Matt Pietrek. At that time, Microsoft Windows (and a copy of Microsoft MS-DOS to bootstrap it) was already the go-to Operating System for businesses. But there were attempts to dethrone it, such as IBM’s PS/2 and of course the Apple Macintosh. What made Windows able to survive while the competition eventually fell off?
Well, one thing that stands out to me while looking through the book, and I defy anyone to read it and come to a different conclusion, is that the Intel x86 CPUs were absolutely ridiculous to program against. Probably 80% of what makes up MS-DOS and Microsoft Windows is just trying to provide a consistent, clean interface over top of the ridiculous design decisions made at Intel. For instance, the Intel 8086, 80286, and 80386 all have radically different capabilities, while maintaining backward compatibility, and these were released in 1979, 1982, and 1985, respectively. In our modern age of CPU stability (or stagnation, if you’re still bitter about the end of Moore’s Law as I am), where your 2021 Intel CPU is effectively the same as a 2004 Intel CPU (besides nice-to-have bonus features that really only matter in user-land and the OS doesn’t have to worry about), it’s hard to get a sense of what “first to market” means when the CPU architecture is changing under you every few years.
Microsoft put in the hard work of shipping Windows, and they reaped the rewards. I think that a similar thing happened to Linux. Linux was originally released in 1991, for the Intel x86 architecture. I’m sure that no one else in their right mind was even contemplating making a Unix clone for the x86. Well okay, there was MINIX, but that wasn’t really free software (source available, for a fee, so not truly libre).