User: Password:
Subscribe / Log in / New account

On binary drivers and stable interfaces

On binary drivers and stable interfaces

Posted Nov 10, 2005 4:31 UTC (Thu) by subhasroy (guest, #325)
Parent article: On binary drivers and stable interfaces

The current policy of Linux kernel maintainers is kernel developer friendly perhaps but neither user-friendly nor device driver developer friendly. I think it is impractical and nonscalable to forever carry around numerous historical driver code for all the old and obsolete devices in the kernel. I am not a kernel dev but all the usual arguments against stable ABI/API seem unconvincing to me.

I wish the kernel devs force themselves to think hard on designing a stable driver model and an API instead of going their merry ways. A driver model and API designed cleanly and thoughtfully can be published as stable. OS theory and practice is already mature enough to be able to do that. A new stable version can be published every 3 years for example. Such documented stable interface would help both open-source driver authors as well as proprietary driver authors. It should not impede innovation. Of course Linux kernel devs write code for fun and so they don't feel responsible for user's plights as much.

(Log in to post comments)

On binary drivers and stable interfaces

Posted Nov 10, 2005 5:52 UTC (Thu) by drag (subscriber, #31333) [Link]

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.)

On binary drivers and stable interfaces

Posted Nov 10, 2005 6:47 UTC (Thu) by cventers (guest, #31465) [Link]

Just addressing your last point about a single-user OS.

Convex predicted many years ago that the market for specialty computer
hardware would diminish as technology moved forward.

I see the same thing with software, and I think it's really evident. Why
have a special wireless-router OS when it can run Linux? Wireless routers
certainly don't need a full "enterprise UNIX" - VFS, etc...

The stock 2.6 kernel already runs on everything from embedded devices
like wireless routers, TiVOs, cell phones to huge supercomputers, and
save for some places it hasn't fully innovated yet, it shines on every
platform. I'd rather have all the interesting work going into one or a
few open source operating systems than many specialized ones. By having
one Linux kernel, for example, you have lots and lots of developers
working on one product. Compare that to (and please don't let this turn
into a flame war) BSD, where you have OpenBSD, NetBSD and FreeBSD all
working towards somewhat different goals and quite obviously *not* moving
at the pace of Linux.

On binary drivers and stable interfaces

Posted Nov 11, 2005 2:03 UTC (Fri) by bk (guest, #25617) [Link]

I agree. The single-user OS idea is valid and a good niche to explore, however there's no reason why the Linux kernel can't be part of it. Linux is a *general purpose* kernel, not a Unix operating system in and of itself.

It's a problem of userspace engineering. Although I'm going to be booed for saying it, Lindows (or whatever they're calling it now) tried to fulfill the ideal of a simple consumer desktop OS and got nothing but skepticism from the majority of people. It was single user (root), simple, largely non-configurable, point-and-click everything and so on. You could argue the *implementation* of the idea was sub-optimal (I would agree), but that says nothing about the merit of the core ideal.

Perhaps Lindows didn't go far enough; it still exposed enough of its Linux underpinnings that people reviewed it as if it were just another Linux distribution. Linux 2.6 has the facilities to completely replace the classic Unix user/group security scheme, if one had a lot of ambition and venture capital another attempt at a mass market single-user OS might be worthwhile.

On binary drivers and stable interfaces

Posted Nov 10, 2005 13:59 UTC (Thu) by wookey (subscriber, #5501) [Link]

That was a generally excellent post (thank you) spoilt by one little thing which I feel compelled to nitpick: There is no such word as 'irregardless'. You mean regardless, or irrespective.

OT: non-standard, and American, but still a word

Posted Nov 11, 2005 18:08 UTC (Fri) by illtyd (guest, #2124) [Link]

irre'gardless, a. and adv.
Chiefly N. Amer.

In non-standard or humorous use: regardless.

[Prob. blend of irrespective and regardless.]

912 in WENTWORTH Amer. Dial. Dict. 1923 Lit. Digest 17 Feb. 76 Is there such a word as irregardless in the English language? 1934 in WEBSTER (labelled Erron. or Humorous, U.S.). 1938 I. KUHN Assigned to Adventure xxx. 310, I made a grand entrance and suffered immediate and complete obliteration, except on the pay-roll, which functioned automatically to present me with a three-figure cheque every week, ‘irregardless’, as Hollywood says. 1939 C. MORLEY Kitty Foyle xxvii. 267 But she can take things in her stride, irregardless what's happened. 1955 Publ. Amer. Dial. Soc. XXIV. 19, I don't think like other people do and irregardless of how much or how little dope would cost me [etc.]. 1970 Current Trends in Linguistics X. 590 She tells the pastor that he should please quit using the word ‘irregardless’ in his sermons as there is no such word. 1971 M. MCSHANE Man who left Well Enough iv. 96 The sun poured down on Purity irregardless of the fact that it received no welcome.

from the OED online
(note that quite a few of the textual references are quotes suggesting it isn't a word, but then I'm not a linguistic prescriptivist)

On binary drivers and stable interfaces

Posted Nov 10, 2005 22:25 UTC (Thu) by hazelsct (guest, #3659) [Link]

There's a lot to pick on in your post, but I'll focus on "historical" hardware. Tons (thousands of tons?) of perfectly good electronics hardware goes to waste because of dropped software support. The Linux model prevents that from happening; from PPC Macs which will all be drop-kicked by Apple in a couple of years, to older PCI cards which vendors haven't supported in Windows since NT.

Where have you seen drivers for old hardware break, or slow down development, under Linux? Did you report the bug? I've never seen it, and I have some hardware as old as a 1990 Amiga 2000 and a 1997 Motorola StarMax (603e Power Mac clone) which still run Debian just fine -- long after the vendors dropped support. (Modern GNOME/KDE desktop performance is even quite good on the StarMax.) I really don't see the problem for users here, and in fact, freedom from planned obsolescence is a huge benefit *for* Linux users.

Put somewhat differently, there's far too much electronics scrap in the world as things stand. Do you really want to accelerate the disposal of lead-tainted hardware -- and prevent schools, developing nations, and poor entrepreneurs from using perfectly good computers -- just because the vendors of new equipment want it to be so?

Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds