←back to thread

144 points ksec | 6 comments | | HN request time: 1.046s | source | bottom
Show context
charcircuit ◴[] No.44466214[source]
If Linux would add a stable kernel module API this wouldn't be a huge a problem and it would be easy for bcachefs to ship as a kernel module with his own independent release schedule.
replies(4): >>44466240 #>>44466273 #>>44467337 #>>44469160 #
1. heavyset_go ◴[] No.44467337[source]
The unstable interface is Linux's moat, and IMO, is the reason we're able to enjoy such a large ecosystem of hardware via open source operating systems.
replies(1): >>44468575 #
2. zahlman ◴[] No.44468575[source]
I'm afraid I don't follow your reasoning.
replies(2): >>44468997 #>>44469622 #
3. rcxdude ◴[] No.44468997[source]
The interface churn in linux adds a strong incentive (on top of the GPL) to upstream drivers, i.e. publish them as open source. Not doing so tends to mean you get stuck on old versions. If it had a stable interface, hardware vendors would just release crappy binary blobs and they'd only be usable on linux, and not maintainable by anyone else (and hardware vendors don't generally maintain their drivers for long)
4. heavyset_go ◴[] No.44469622[source]
With a stable driver API/ABI, vendors will just dump closed source drivers once and call it a day, or pull a Apple/Sony/Nintendo with FreeBSD, where you effectively get a closed source OS that supports your hardware.

An unstable interface means the driver source needs to be updated frequently, you can't just dump a .ko file online and expect it to work for however long the hardware lasts.

Easiest way to approach it is to attempt to upstream drivers, and potentially take advantage of free labor and maintenance in virtual perpetuity, which is good for all Linux users. If vendors don't want to spend the effort upstreaming drivers, but they need to support Linux, by necessity the drivers must be open source so they can be compiled against users' changing kernels. That's at least a step in the right direction, and should anyone want to make the effort, they're free to upstream drivers themselves.

replies(1): >>44476802 #
5. shtripok ◴[] No.44476802{3}[source]
It is very difficult to get the driver included in the upstream. This is why almost none of the Chinese equipment manufacturers do this. And those that do do it for one or two models out of 2-3 dozen produced, and this process rarely takes less than 2-3 years. That is, by the time the device is included in the kernel, it is usually already out of production for a year or more.

So don't repeat these legends from 20 years ago. However, this may not have been true even 20 years ago.

replies(1): >>44477031 #
6. heavyset_go ◴[] No.44477031{4}[source]
And yet, it's the case for plenty of manufacturers.

Yes, bad driver implementations that shit all over the kernel tree just to get hardware "working" should not be upstreamed. 99% of the time in these cases, Chinese equipment manufacturers can't be bothered to write acceptable code and it's a good thing it isn't mainlined and made someone else's problem.