We have a huge monoculture of Intel x86/x64 on the desktop, driven by Intel's fab advantage that smothered all alternative (and often superior) architectures. And recently, a second one has sprung up with ARM on mobile.
And it hasn't really been good for the industry.
Fortunately, the Windows monoculture in OSes has been broken, so much that MS wasn't able to extend it to mobile and has been driven to give away their OS updates.
In terms of porting, CPU architecture is far less of a problem than you might think. Tiny NeXT managed to make its OS available for four CPU architectures: 68K, i386, SPARC and HP-PA, with apparently PPC and MC88K available in-house. Write Once, Run Anywhere™, all with native binaries, no intermediate layer needed.
And these were processors with different endian-ness, RISC, CISC, sliding register windows, sparse register sets etc.
ISA fragmentation isn't much a worry for people who only run open source software. Debian is especially good at maintaining ports of tens of thousands of packages for 10 ISAs [1].
Last decade I'm not so sure. I bought the very first readily available consumer quad core CPU a decade ago (the Q6600), two years ago I upgraded and I had to pay a huge premium because I wanted more than four (I got six!) cores. And that is just starting to change today.
Not that core count is everything but consumer desktop CPUs have stagnated quite a bit. Here's to hoping AMD stirs it up a bit.
Because the compute power for consumer CPU nowadays is good enough, the effort has been in reducing energy consumption. But if you look at the server / workstation side, you can get 20+ cores in a single dice.
If you consider core count desktop CPUs have had massive increases in performance in the last year and will get another massive increase when 7nm arrives.
I would add that today, as opposed to past periods of fragmentation, there are more widely adopted universal formats, standards, and protocols. So much so that as long as different systems can support just a few key pieces of software, they'd be largely useful — no matter what runs underneath.
This is a little hyperbolic. There have been occasional superior alternatives but "often" is kinda silly. By and large, the best products won - and that is despite accepting that Intel acted in anti-competitive ways in the past (Cyrix et al).
Agreed, somewhat, but you are conflating "product" and "architecture". I specifically meant architecture.
Intel was usually at least one process generation ahead of competitors, and often more than that. With Moore's law still going at full tilt, that meant not only more transistors, but also faster transistors, completely overwhelming the architectural deficits.
> occasional superior alternatives but "often" is kinda silly
Hmm...just off the top of my head: Motorola 68K, MicroVAX, LSI-11, SPARC, AMD 29K, Power, RISC, MIPS, Transputer, Alpha, HP-PA, ARM for desktop, Motorola 88K, Fairchild Clipper, etc.
I'd be hard-pressed to name an architecture that wasn't superior to i386. But architecture did not matter. With Moore's law no longer also getting us faster transistors, it might matter again: https://rodneybrooks.com/the-end-of-moores-law/
"Fragmentation"??
We have a huge monoculture of Intel x86/x64 on the desktop, driven by Intel's fab advantage that smothered all alternative (and often superior) architectures. And recently, a second one has sprung up with ARM on mobile.
And it hasn't really been good for the industry.
Fortunately, the Windows monoculture in OSes has been broken, so much that MS wasn't able to extend it to mobile and has been driven to give away their OS updates.
In terms of porting, CPU architecture is far less of a problem than you might think. Tiny NeXT managed to make its OS available for four CPU architectures: 68K, i386, SPARC and HP-PA, with apparently PPC and MC88K available in-house. Write Once, Run Anywhere™, all with native binaries, no intermediate layer needed.
And these were processors with different endian-ness, RISC, CISC, sliding register windows, sparse register sets etc.