On binary drivers and stable interfaces
Posted Nov 10, 2005 5:52 UTC (Thu) by drag
In reply to: On binary drivers and stable interfaces
Parent article: On binary drivers and stable interfaces
Well it depends what you want.
Do you only want new kernel releases every 3 years? Because that's pretty much exactly what would happen.
For instance I like to use Ingor's 'realtime' latency patch. I wouldn't be able to use that if the last 'stable kernel abi' was released around mid-2.4.x. Stuff like that requires modifications to drivers and other related items. I need support for softirqs, changes in DMA access, make everything preemptive, etc etc.
What about power management or other things like that? It seems very obvious that nowadays that you'd want to have a mechanism for almost all kernel drivers, server-related, network-related, desktop-related, laptop-related, so that they would support more advanced power management. But how practical or plausable was that 3 years ago? And even right now there are lots of problems that need to be worked out, do you realy want no improvement in suspend-to-ram, suspend-to-sleep, and other items for the next 3 years? Thats what would happen because any improvements or changes in the code related to power management is going to have to have the support of driver-level code.
And there are other things. Like the more advanced filesystem VFS stuff and generic 802.11x protocol stack. Those things make driver developer's lives much easier and improve performance and stability for everybody, but they wouldn't be avaible to be used in new drivers with a stable ABI. Also not to mention that if you pick a stable ABI you're going to be stuck with the same bad ideas, potentionally obsolete interfaces, and such for the next 3 years.
But we'll see. OpenSolaris people love stable ABI. They like stable kernel interfaces and have no problem using closed source drivers. Once they figure out the legal hurdles of GPL software on CDDL base then the only real difference between 'Linux' and 'Solaris' will be the kernel and some other low-level stuff.
Personally I feel that the only real solution for a 'stable abi' is a Microkernel, or at least a very microkernel-like setup were you run modules in userspace seperate from the kernel itself.
So in the future hopefully it will be easy to select (just picking on debian for right now) Debian/GNU/Solaris or Debian/GNU/Linux or Debian/GNU/Hurd. Then it'll be easy for us to pick 'stable kernel ABI' vs 'rapid developement kernel' vs 'microkernel' and get the 'best tool for the job' irregardless of the actual software we want to run on it. Then the best kernel developement method will win.
I like Linux. It's fast, generally stable, and improves rapidly. It gives me all sorts of neat stuff to play with, but I have no very special attatchment to it. I do have strong attatchments to the Free software I use everyday, however. If something better comes along and is Free software like Linux, Mozilla, or BSD is then I'll use it.
(Although actually, I would like to see a specialized Free Software Single-User OS just for simple desktop and embedded applications. Something along the lines of BeOS or Windows 95 (obviously stable of course). Not every system needs to be able to run a entire Unix enterprise-ready enviroment.)
to post comments)