https://www.forbes.com/sites/jasonevangelho/2020/02/15/micro...
Also, Microsoft does not do internal testing of various hardware configurations anymore:
https://www.linkedin.com/pulse/20140806183208-12100070-why-d...
They rely on end users to find problems for them:
https://www.forbes.com/sites/jasonevangelho/2018/12/12/micro...
This doesn't mean Windows doesn't have hardware dependent bugs of course.
These problems can be mitigated, though. All it takes is a company willing to lead the effort and maintain a stable, limited and tested ecosystem of software built on top of a stable, limited and tested version of Linux. And/or maintain a secure runtime environment like Google has done with Android.
The problem with this is that it invariably takes away some of the freedoms Linux users expect. Personally, if I'm not allowed to run any software I want, how I want to, and terms like "sideloading" and "jailbreaking" are thrown around, it's not Linux and I don't want it. At that point you're no longer using a general purpose machine, but a machine that someone else decided how it must be used.
Besides, like a sibling comment mentioned, bugs do happen even on Windows and macOS. This is an inescapable fact of software development. I was simply pointing out how harder it is to manage this on Linux, and yet it remains usable for many people despite of it.
And even then, Apple has never been able to promise that you can keep the software features your computer shipped with across system updates. If a feature is removed, your only path of recourse is to treat your current patch like an LTS release.
However, it’s very possible for a company to build an Apple like company by creating their own Linux distro that is well tested and guaranteed to run at least as well on their hardware as Apple’s software does on Apple’s hardware.
This is the System76 approach.
Alternatively, you could create a distro that is restricted and sell it to hardware vendors who then have the responsibility to test your distro against their hardware. This is the MS approach. There’s no reason such an approach would necessarily have any more issues than MS does.
In fact, because of the open source nature of Linux development, it’s likely that the Linux versions should do better than their proprietary counterparts, because downstream companies, teams and users can test before the product is released and point out problems before the product has even hit alpha. Heck, they can even share patches.
The real problem with Linux on the desktop is that it doesn’t have enough market power to make the kind of testing MS and Apple and their downstream clients do financially worth it.
There is no reason why the server space shouldn’t have the same issues. But the Linux server space has enough money that downstream vendors clients and users are able to invest money in testing, which has meant the advantages of open source have pretty much wiped out all the competitors in the space.
That's exactly the point, though. Linux will "never be ready for the desktop" because of the problems that this causes. Developers of software for Linux, not to mention kernel developers themselves, do not have the kind of funding that Microsoft has to test on a truly staggering number of hardware configurations. And on the opposite side of the spectrum, they don't have the luxury of supporting a comparatively small set of hardware combinations like Apple has.