Live data from Hacker News

Ask HN: Why no stable binary kernel interface for drivers?

news.ycombinator.com

1–10 of 20 posts

Ask HN: Why no stable binary kernel interface for drivers?

#1
Linux does not have a stable binary kernel interface for drivers. This enforces either that all the drivers must be in the kernel source tree or that drivers become broken with kernel updates.

I don't want to have a political debate here about free software. But I can see ideological reasons for how Linux try to force hardware manufacturers to share the code for their drivers.

The (proprietary) driver issue is a big pain for people who want to use Linux for desktop as a workstation e.g. development. I would say that it is the biggest obstacle for adaption of Linux desktop.

Why couldn't we have long term supported kernels with decoupled drivers?

Discussion: http://lkml.iu.edu/hypermail/linux/kernel/1604.0/00998.html

Re: Ask HN: Why no stable binary kernel interface for drivers?

#2
As http://lkml.iu.edu/hypermail/linux/kernel/1604.0/03993.html states, you can get binary stability for in the order of five years from the likes of Red Hat and SuSe.

I don't know where you can get binary stability for decades, but it wouldn't surprise me if some military applications guaranteed that.

Since there's nothing stopping suppliers from selling it, there apparently isn't that much demand for it.

Re: Ask HN: Why no stable binary kernel interface for drivers?

#3
post #2

As http://lkml.iu.edu/hypermail/linux/kernel/1604.0/03993.html states, you can get binary stability for in the order of five years from the likes of Red Hat and SuSe. I don't know where you can get binary stability for decades, but it wouldn't surprise me if some military applications guaranteed that. Since there's nothing stopping suppliers from selling it, there apparently isn't that much demand for it.

> As http://lkml.iu.edu/hypermail/linux/kernel/1604.0/03993.html states, you can get binary stability for in the order of five years from the likes of Red Hat and SuSe.

Yes but why can't the kernel provide a stable interface? The stable_api_nonsense.txt is just nonsense for me.

Re: Ask HN: Why no stable binary kernel interface for drivers?

#4
Maintaining the drivers together with the rest of the system allows subsystem maintainers to make broad improvements to the functioning of drivers, and encourages vendors to upstream them as free software.

If you want a stable kernel driver ABI, then you're going to have to maintain your own wrapper which will retain all of the anachronisms that have been excised from the upstream kernel.

You are perfectly at liberty to do this for yourself, just don't expect kernel maintainers to willingly make their own lives harder, reduce the quality of running kernels, and reduce the enthusiasm for releasing and upstreaming high quality drivers.

As an alternative to a stable ABI, you can just go with a single LTS release, and you can expect binary compatibility on the order of four years.

Re: Ask HN: Why no stable binary kernel interface for drivers?

#5
post #3
post #2

As http://lkml.iu.edu/hypermail/linux/kernel/1604.0/03993.html states, you can get binary stability for in the order of five years from the likes of Red Hat and SuSe. I don't know where you can get binary stability for decades, but it wouldn't surprise me if some military applications guaranteed that. Since there's nothing stopping suppliers from selling it, there apparently isn't that much demand for it.

> As http://lkml.iu.edu/hypermail/linux/kernel/1604.0/03993.html states, you can get binary stability for in the order of five years from the likes of Red Hat and SuSe. Yes but why can't the kernel provide a stable interface? The stable_api_nonsense.txt is just nonsense for me.

Not "can't," but "won't." It's not considered worth the effort; the technical benefits are too great when doing it the current way. The political side effects are a great bonus but not the main motive.

Re: Ask HN: Why no stable binary kernel interface for drivers?

#6
post #3
post #2

As http://lkml.iu.edu/hypermail/linux/kernel/1604.0/03993.html states, you can get binary stability for in the order of five years from the likes of Red Hat and SuSe. I don't know where you can get binary stability for decades, but it wouldn't surprise me if some military applications guaranteed that. Since there's nothing stopping suppliers from selling it, there apparently isn't that much demand for it.

> As http://lkml.iu.edu/hypermail/linux/kernel/1604.0/03993.html states, you can get binary stability for in the order of five years from the likes of Red Hat and SuSe. Yes but why can't the kernel provide a stable interface? The stable_api_nonsense.txt is just nonsense for me.

Because the kernel developers aren't interested in assuming the maintenance burden of maintaining (possibly many incompatible and versioned) interfaces purely for the benefit of users who maintain out of tree drivers.

Re: Ask HN: Why no stable binary kernel interface for drivers?

#7
post #2

As http://lkml.iu.edu/hypermail/linux/kernel/1604.0/03993.html states, you can get binary stability for in the order of five years from the likes of Red Hat and SuSe. I don't know where you can get binary stability for decades, but it wouldn't surprise me if some military applications guaranteed that. Since there's nothing stopping suppliers from selling it, there apparently isn't that much demand for it.

Stable API or not, every time there is a new NVIDIA driver, my Win10 boxes work and my Fedora/Ubuntu ones break. I doubt Microsoft is asking NVIDIA to keep their driver inside Microsoft repositories.

Re: Ask HN: Why no stable binary kernel interface for drivers?

#10
post #6
post #3

Earlier quoted context omitted.

> As http://lkml.iu.edu/hypermail/linux/kernel/1604.0/03993.html states, you can get binary stability for in the order of five years from the likes of Red Hat and SuSe. Yes but why can't the kernel provide a stable interface? The stable_api_nonsense.txt is just nonsense for me.

Because the kernel developers aren't interested in assuming the maintenance burden of maintaining (possibly many incompatible and versioned) interfaces purely for the benefit of users who maintain out of tree drivers.

I'm surprised driver interfaces are still changing so frequently. Ten years ago perhaps, but they're not largely sorted today twenty five years+ after Linux debut?
Post reply on HN