Truly Free drivers could use a stable API too
Posted Nov 10, 2005 5:00 UTC (Thu) by
elanthis (guest, #6227)
Parent article:
On binary drivers and stable interfaces
Let's take a really simple situation:
1) User has Distro 4.0 installed on their machine, which has kernel 2.6.14.
2) Distro 4.0 will never provide an update to any other kernel version, because kernels need to be tested and patched and stabilized and all that effort is going into Distro 4.1 to be released in six months.
3) New hardware comes out, and it has a driver which has been included into the kernel... versions 2.6.16 and onward, anyways.
4) User buys said new hardware but has no way to get it to work without manually downloading, possibly patching, and installing the kernel, and also thereby giving up automatic security updates from the vendor.
5) User is screwed.
A stable ABI isn't really necessary, I'll note. A stable API is. With a stable API, at the very least, a tool like DKMS can do its magic and users can pop in that new GPLd driver for that new hardware, wait a couple seconds while a nice GUI install tool shows a little progress bar while GCC compiles the driver, and then have working hardware.
There are cases for stable ABIs even with purely GPLd drivers, mostly for installer needing to write to disks that lack drivers for the controller in the install image, but I suppose installers could start offering minimalistic in-memory compiler toolchains to work around that.
Today's Linux userbase can probably deal with shopping around for hardware that's several months/years old to ensure their bleeding-edge development distribution will support it, but the mainstream market just won't accept that. I'm not personally sold on the idea that we have to get the mainstream market to accept it, but there are vendors who do think so (Canonical, Linspire, etc.), so for their sake I hope the kernel developers can find some kind of solution.
I guess another way of putting it is that the kernel needs better support for out-of-tree (even 100% GPL) drivers, because in-tree drivers aren't always available to users running older systems.
(
Log in to post comments)