>Every time Linux on the desktop is discussed, the reaction of the Linux desktop community is predictable: defending Linux and its problems, and downplaying the difficulty that many users have. A ton of people say "it works for me on my hardware" or "I didn't need to compile any drivers" or "the games that I want to play work fine". In fact, this comment thread has good examples of this type of reaction. So what? Until it works for everyone it's just not good enough.
I'm a bit confused; have you actually had this experience when you had to compile your sound card driver in the past ten years? It would be totally reasonable for you to be unhappy if you had, but given how much you're criticizing, I have to assume that if you had this experience you would have mentioned it. Given that, it sounds like the only criticism is that someone could theoretically happen to need to do this, but that's not really any different from any other operating system; the difference is that if your sound card doesn't work on Windows, you don't have the option to compile it at all. I'm not sure how often people have driver issues on Windows these days, having not used it much since before I swapped to Linux, but I'm not going to prematurely get angry about the idea that people _could_ be having driver issues but not have the option to compile their own if I don't actually hear about anyone having these issues.
> Until it works for everyone it's just not good enough.
You are pretty well proving the GP point. There is no system that works for everyone. Windows can be very challenging to get up and running on hardware setups that are not the most common.
> Windows and MacOS don't make people do that
False. And it's funny that this is about sound drivers. I have a piece of older but perfectly working Roland audio/MIDI equipment that uses USB drivers that are no longer supported on modern MacOS. How did I get it working? By compiling a fucking driver the other day. (And yes it works perfectly out of the box on any Linux kernel for the past 20 years).
Now go ahead and move the goalposts about older hardware not mattering or some nonsense. This hasn't been the only frustration with MacOS. It took these clowns the better part of a year to fix VLAN configuration in the network setup window. The only way to configure them for a lot of hardware was to drop down to the command line - so much for working for everyone.
I don't even have to look outside the circle of people I know in person to have seen this. Googling for Windows not working with $X specific laptop instantly reveals quite a treasure trove beyond the people I know, where $X can be pretty much any Windows laptop. Everything from fingerprint readers no longer working to even simple things like the function key hotkeys no longer working.
Issues with sound drivers not working are far from unheard of on Windows laptops.
You definitely seem to have missed their point, and, in my opinion, you're being unnecessarily antagonistic.
I don't mind building my own drivers (in fact I maintain one[1]), but I would never expect the average person to have to do that. It would be entirely unreasonable.
But, the vast majority of linux users don't have to compile any drivers. Unless you have some obscure piece of hardware or one that is so new that the driver isn't mainlined yet, you don't have to worry about it.
You say you've been using linux for 20 years. which driver(s) in the last 5 or so years have you had to compile yourself?
This is absolutely not something one can say about windows (though at least nowadays it will try to fetch drivers from God knows where and often succeed). And Mac supports like 2 hardware devices all together, both of them manufactured by them — comparing an OS that exclusively run on specific hardware is just stupid and not made in good faith.
And of course, you're under no obligation to listen to any of us whine, but if, on the off chance, you happen to want more people to like Linux, it seems like taking people's experiences seriously would be a good starting point.
May I ask you what hardware did you install linux on?
In case you don't think virtualization is a valid use case, this should hold true for any drivers distributed outside the kernel. It's also true for newer hardware - WiFi 6 has been a thing lately. And over the past couple years as laptops try to compete with Apple there have in fact been sound issues, though that one hasn't bit me personally.
Again, I want to stress that I'm not imputing some moral obligation for things to be different. But it is definitely a rough edge, it absolutely requires people to futz with compiling drivers, and it's something that makes some number of technical people say "screw it, this is too much of a pain in the neck."
In my opinion, investing in a proper driver architecture with a stable interface would be a massive step toward better Linux hardware support and broader adoption.
I don't think that's a fair comparison. Parallels comes with dkms module and while the process of installing involves compiling under the covers, it's just part of installation. It's not the late 90s "compile that driver yourself completely manually" situation.
If Parallels doesn't work with new kernel, that's their compatibility issue, but being able to fix the driver yourself just gives you more options. Linux -> you can fix the driver. MacOS -> you can on new macos, with annoying extra signing and other steps. (if the source for macos is even published - for parallels that's a no) Windows -> basically wait until the vendor produces an upgrade.
Parallels says for macos 12: "Productivity and integration features are not available to this VM yet." Even if you wanted to fix it manually - you can't. (https://kb.parallels.com/au/125561/)
Basically, you get the extra option to upgrade faster than your vendor is ready on Linux - if you use that path, why show it as "I had to do manual work to make things work", rather than something positive?
Both approaches have their upsides, but I've very rarely had drivers stop working between various windows release. Of course, there are exceptions to the rule here - Yes, I also have had some drivers stop working since Windows XP. But those are rare, and getting rarer as time goes on and MS locks the kernel up, preventing drivers from doing stupid things.
On Linux, the problem only exists for out-of-tree drivers, but those will break fairly frequently for all but the simplest drivers.
As I said in my sibling comment, I don't know how I feel about a stable ABI - I do fear it would make the situation worse with more out-of-tree/proprietary drivers. But it is worth keeping in mind that it does have its upsides.
Of course, MacOS being what it is, it chose the "worst of all worlds" scenario: Proprietary drivers with no ABI stability guarantee. It's not really worth discussing as a point of comparison, MacOS has the worst driver story from the lot, only saved by its intended minimal target hw support.
I don't understand. Do you think I'm lying or something? Because I'm not, and neither are these folks:
https://www.google.com/search?q=compile+new+kernel+site%3Afo...
It's a giant pain in the neck and it's caused by pretty deliberate decisions about Linux architecture.
> In my opinion, investing in a proper driver architecture with a stable interface would be a massive step toward better Linux hardware support and broader adoption.
Eh, I have mixed feelings about this. Part of what makes Linux so great is that most of its drivers are open source - which allows the devices it supports to stay supported basically forever (though bitrot certainly is a thing). And they achieved this by making maintaining out-of-tree drivers so damn painful.
A stable interface would sort of undermine this. I honestly don't know if that'd be preferable to the status quo.
That would encourage open-source or at least source-available drivers (to allow recompiling for ABI changes), but recompilation should be straightforward and possibly automatic if the API doesn't change every couple months.
You could apply the same fix to a Linux computer and purchase known working hardware, but because you have the option of fixing the software yourself that makes it a worse operating system?
Granted, as someone who's been using Linux sporadically in various ways for the same two decades I've been a Mac-on-the-desktop user, I can't remember the last time I was left rending my shirt and wailing "if only I didn't have to compile an open source driver for [insert thing] to get basic functionality working." (Although I can remember more than one time I ran desktop Linux in a VM on a Mac, and spent several hours doing web searches for how to get [insert thing] working to find little more than other posts saying "I'm running desktop linux on a VM on a Mac and I can't get [thing] working".)
How this translates is by Apple officially dropping support for your whole computer. I guess you consider getting trapped on an old OS that stops getting security updates and becomes incompatibility with the latest applications to be superior to the situation on Linux. I do not.
Or, as others have pointed out, having to upgrade perfectly good hardware because the OS no longer supports it. That has happened to me on both Mac and Windows.
Honestly, better hardware support is one of the reasons that I have started using Linux more and more than proprietary options.
I actually really like Windows 10 but I have had way more hardware issues with it on my primary laptop. I had odd performance problems with it sometimes and the mouse pointer would lock up frequently ( Windows factory installed ). I put Windows 11 on this computer ( new enough hardware to meet all the Windows 11 asks ) hoping it would improve things. It was a disaster. My Bluetooth headphones rarely worked. Plugging wired headphones into the port would not silence the speakers. Blue screen of death ( have not see that in years - looks much friendlier now ) all the time which you know is a driver problem. Anyway, I have since out Linux on it and all my hardware woes are in the past. As I said, I actually really like Windows but it is a relief to get it off this machine.
They don't make people compile their own drivers because their respective corporations spend some good money to pay their developers to work on company provided hardware, or harware manufacturers to make their drivers first, and sometimes only their drivers. Linux developers otoh are often forced to reverse engineer closed source drivers on hardware they purchased themselves, so Linux support usually comes later.
The upside is that nearly all Linux drivers are FOSS, which makes a huge difference as there's no such thing as planned obsolescence among FOSS. Never seen a perfectly good peripheral being supported by Windows until version x, so that you install Windows 10 and that card that worked fantastic under Windows 7 or 8 isn't supported anymore? No drivers, no party. Sometimes the price to pay for running an OS that doesn't allow you compile your drivers is the purchase of new hardware along with system upgrades; that represents one of the hidden costs of closed source software that should be stressed more often.
Edit: ...and btw, it's like 15 years I don't have to compile my kernels anymore. A couple things or so have changed since 1997.
Stop claiming Linux is hard to use because it takes effort to run it on unsupported hardware... like any other OS.
No system is good enough by that definition. I've got a set of devices which either require lots of extra work or just don't work on all of Linux (parts of Lenovo dock), Windows (phone over bluetooth, also can't do clean install), MacOS (usb-c audio interface). We got to the level of "most things just work" on all of them.
> "Typically" is not good enough. Windows and MacOS don't make people do that, and neither should Linux distros.
> A ton of people say "it works for me on my hardware" or "I didn't need to compile any drivers" or "the games that I want to play work fine". In fact, this comment thread has good examples of this type of reaction. So what? Until it works for everyone it's just not good enough.
I'm also someone who has run into problems with Linux, albeit with some slightly obscure hardware, as described in my comment here: https://news.ycombinator.com/item?id=29816615
The difference is probably that on Windows installing drivers is as easy as running an .exe or an .msi file, whereas on Linux the process can be more involved due to how different distros can be from one another, how the kernel versions might require different headers and how compilation of drivers might involve dropping down to the terminal which people sometimes forget isn't comfortable for people who don't necessarily use Linux in that capacity.
Wouldn't it be incredibly nice to have something like AppImage or Flatpak, but for drivers? Not the controversial distribution/update practices (though those criticisms are more about snap), but something that's as conceptually simple as clicking on an icon in a GUI somewhere to launch the installation and handle everything behind the scenes?
As for games, look at a recent video by Linus Tech Tips, "Gaming on Linux is NOT Ready... - Daily Driver Challenge Finale ": https://youtu.be/Rlg4K16ujFw
(Linus also demonstrated accidentally bricking his distro by not reading a terminal warning about problems with installing certain packages in the 1st video of the series, which is a really good example of some of the other problems in regards to usability)
There is a lot of progress, but also a lot of problems to solve.