6 ms·
They are conflating two different issues: Linux' lack of stable binary interface for drivers, and Linux being open source. It's the lack of stable ABI that's pr
by tmoravec 5y ago
They are conflating two different issues: Linux' lack of stable binary interface for drivers, and Linux being open source. It's the lack of stable ABI that's preventing third parties from maintaining decent drivers for Linux (plus the lack of economic incentives of course).
- marcodiego 5y agoThe lack of stable ABI is not a problem if the driver is merged.
- hef19898 5y agoI think it is much more the latter, the missing economic incentives, than anything else.
- cerved 5y agothat would be the first point if anything
- Lorkki 5y agoI believe USB HID drivers have been in userspace for quite some time, in part precisely to provide a stable interface. I'm not sure why the Wacom drivers are an exception though: https://linuxwacom.github.io/ https://linuxwacom.github.io/
- tremon 5y agoYou are conflating two issues as well: the manufacturers' insistence on closed-source drivers and Linux' non-stable (binary!) ABI. If the manufacturers were to upstream their drivers in the Linux kernel, they wouldn't need to update their drivers for every ABI change.
- stavros 5y agoHm, interesting, I hadn't thought of that. I know that Linux is fine mainlining drivers and updating them whenever the ABI changes, but what's the rationale behind not offering a stable ABI?
- cbhl 5y agoThe two are related. Offering a stable ABI would discourage hardware manufacturers from mainlining drivers.
- tremon 5y agoThere's been various explanations and rationales provided over the years, but from Linus' own words in 1999 (see https://lwn.net/Articles/159313/ https://lwn.net/Articles/159313/): Basically, I want people to know that when they use binary-only modules, it's THEIR problem. I want people to know that in their bones, and I want it shouted out from the rooftops. I want people to wake up in a cold sweat every once in a while if they use binary-only modules. The less activist stance is simply that maintaining a stable ABI requires either accumulating lots of backwards compatibility layers over time, or to stop improving certain parts of the kernel. Neither option has won out over the current situation.
- 2muchcoffeeman 5y agoI know nothing about this topic. Is there a reasonable work around to this? To provide something stable for hardware manufacturers but allowing the current kernel practices to continue?
- hutzlibu 5y agoThere is none. When linus stance is, that he wants to make it intentionally hard, for binary blobs, than this won't change. I am all for open source drivers. But I would prefer working proprietary ones, if the alternative is buggy as hell.
- rsaxvc 5y agoI think Nvidia uses their own shim layer.
- franga2000 5y agoI always thought they insisted on breaking ABI specifically to incentivise open-sourcing and mainlining drivers. If given a stable ABI, manufacturers have shown (as seen on Windows) that they will just release a binary driver once and never touch it again. This is a big reason why old hardware support is so much better on Linux...for the hardware that was supported in the first place of course.
- tmoravec 5y agoIt's often not easy or even possible to simply open-source the drivers. What if there are any patents at play? How about third (fourth?) party dependencies? I'm sure the legal would take major offence with slapping GPL on the code and releasing it. I can also imagine a company like Wacom fighting cheap Chinese copies - I can't imagine persuading the business folks to make the copycat's life way easier by open sourcing the logic. As long as Linux says it's either mainline or the highway, well, companies will be reluctant to put in the resources I'm afraid.
- adrian_b 5y agoPatents by definition are public information. You may have thought about trade secrets. Nevertheless, any trade secrets which are needed in the interface that is necessary for a device to be used by its owner, can easily be reverse engineered by someone with enough money, i.e. by all the important competitors. So hoping that not providing documentation for the interface of your devices is a method to fight your powerful competitors is an illusion. This method works only against your normal customers, by preventing them to find reasons to buy more of your products, for applications that you do not support, e.g. use under other operating systems. Trade secrets are useful and they may be effectively protected when they do not concern the normal operation of a product, e.g. when they are used during the fabrication of a product.
- atchoo 5y agoAvoiding patent infringement claims is probably a significant motivation to stay closed source. There are just too many patents on obvious solutions any engineer would come up with.
- vineyardmike 5y ago> Patents by definition are public information. But you don't always have the right to use them, or share them. If company A owns a patent, and company B buys a license, company B may not have the rights to release their code to GPL and share it into mainline linux.
- ho_schi 5y agoNo need for an ABI with open-source drivers because Linux and drivers shall be open source. What matters is the API and modifications to this can be maintained by upstream. If your hardware drivers aren't open source the promises of the GPL break: read code (trust) modify code (fix) redistribute (share) redistribute modified code (improve) When this model works you get high quality support, performance, over long time. Example: Sandy Bridge (GPU HD3000) from Intel: Linux OpenGL 3.3 Windows OpenGL 3.1 MacOS OpenGL 3.2 // I'm not sure! At time of the hardware availability that didn't matter much but with modern applications and engines it does. If you use Linux and Steam you may benefit from that. Android "Google/Linux" failed here because Google didn't pushed neither ARM nor Qualcomm. This and separately maintained modifications through manufacturers are the reason that Android devices cannot be trusted and struggle with updates. You cannot bump the Linux kernel if you don't get an updated driver. And you cannot cannot bump the Google part because of the manufacturer patches which weren't upstreamed. Android is an example of how open-source collaboration should not be done. Even Jolla failed and use closed-source drivers, which meant the need to remain ABI compatible, which meant the cannot upgrade the kernel, which meant the cannot fix issues within BTRFS. Purism avoided that all with much hard work together with NXP! They just need to make the device smaller and cheaper. Sorry Purism. But 800 bucks are even for a nerd/developer-device expensive. Valve did a clever thing with using AMD for the Steamdeck. Noteworthy: Linux and GLIBC provide stable APIs and ABIs for the userspace, hopefully also Systemd. External developers and users rely on the promise of API and ABI stability.
- WhyNotHugo 5y agoThe lack of a stable ABI does not prevent maintaining decent drivers, hundreds of drivers have been up-streamed onto the kernel and work fine. The lack of a stable ABI makes out-of-tree harder to maintain, but the whole point of Linux is that you don't need to maintain them out-of-tree.