To read all comments associated with this story, please click here.
Maybe I've problems understanding your point, so please bear with me, but : The ABI is the Application BINARY Interface. When you really have to rebuild the driver against the source of a new kernel release, you must be in possession of the sources for the driver (which according to your statement comes from outside the kernel trees), which leads me to following scenarios :
- The driver has a (open source) license, which is incompatible with the GPL v.2 ( I can't see, how a stable ABI could cure this, btw.) which basically means , that you can't redistribute the module if you compiled it against the GPL linux kernel. So this module would have other, more practical problems rather than the rebuild-it-yourself process.
- The driver wasn't accepted in one of the main trunks of the linux kernel. If the driver is Ok, this would be a rather rare case, and I would speculate, that (given there were reasons for not accepting the driver in question other than for an incompatible license or intellectual property reasons) there are issues with this driver beyound the compile-it-yourself troubles (hint: quality issues).
- The driver is for a very very very rare device (had this case once myself with a driver for a custommade CCD chip interface) and the driver vendor sees no point in handing the driver to the kernel devs for inclusion. (Nevertheless, lack of a stable Kernel ABI was our smallest problem back then :-) )
Anything missed ?
Probably, you meant, that every time you change the kernel, you have to rebuilt the wrapper for your binary-only kernel modules (would explain, why you complained about the unstable ABI).
This issue has been discussed elsewhere (good summary of the kernel dev's point of view : http://lwn.net/Articles/159313/) , or like Linus once put it :
"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." - Linus Torvalds, 1999
You may agree or not agree with this policy, but since it's their work, and they do not break the ABI malicously (at least that's not the impression I have, YMMV though), I would suggest respecting their point of view in this matters.
Regards
The driver is Open Source. It's driver for rt2500 wireless chip. In SuSE 10.0 everything worked OK when new kernel was installed - driver was simply rebuilt. In SuSE 10.1 they removed the driver. I really tried to get used to some linux distros (Mandriva, Slackware, SuSE, KateOS, Fedora) and none of them supported WLAN correctly - I mean that there was no good user interface. KDE's WiFi Manager works OK, but I want automatic switch among networks as Windows does, and it does it the right way. So I got rid of Linux.
>> "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." - Linus Torvalds, 1999
What a crap. Because L.T. said this it doesn't mean it's true. I don't give a damn if driver is open source or not - device should just work when plugged in. I don't want to run stupid hardware managers - setup that came on CD from vendor is enough or OS should automatically search for driver. I'm not talking about old non-PnP hardware which I have thrown away couple of years ago.
Standard answer:
http://lxr.linux.no/source/Documentation/stable_api_nonsense.txt
It's the "standard" answer, but it's still wrong. There have been stable in-kernel device interfaces in Unix since 1975, if not earlier, and Unix has suffered none of the problems Greg seems to think comes from such things, nor has Linux yet to show an improvement in in-kernel driver interfaces over where Unix was as long ago as 1985.
The main reason why Linux in-kernel interfaces suffer so much churn is that what passes for "design" in Linux is reactive rather than pro-active.







Member since:
2005-08-19
I hate those ABI changes in linux with every damn release. And they're saying that Windows drivers stop working in the new versions of system. Why do I have to rebuild drivers that came from outside the kernel every release ?