Linus: Re: Kernel interface changes(fwd) [plug]

Matt Kemner zombie at networx.net.au
Wed Feb 10 10:17:11 WST 1999


Typical Linus humour. :)

(background - the guy who ported drivers for the AFS (Andrew File System)
to Linux, is only able to provide them as binary modules.. Unfortunately
because the API to binary modules tends to break between kernel releases,
which is not easy to fix because the kernel was never designed to allow
binary modules, and if Linus were to try and keep binary module writers
happy it would mean not being able to make important changes that make the
kernel better for everyone else, and Linus refuses to do so)

For more info read the thread starting at:
http://www.uwsg.indiana.edu/hypermail/linux/kernel/9902.0/0702.html

And continued by Alan Cox in this 2nd thread (where after at least 30
messages Linus' replies come through)
http://www.uwsg.indiana.edu/hypermail/linux/kernel/9902.0/0726.html

 - Matt

---------- Forwarded message ----------
Date: 7 Feb 1999 08:15:24 GMT
From: Linus Torvalds <torvalds at transmeta.com>
To: linux-kernel at vger.rutgers.edu
Subject: Re: Kernel interface changes (was Re: cdrecord problems on

In article <79g5bu$spd$1 at palladium.transmeta.com>,
H. Peter Anvin <hpa at transmeta.com> wrote:
>
>* Linus Torvalds has no interest whatsoever in developing such a
>  plug-in ABI.  Someone else is welcome to do it.

No, it's even more than that.

I _refuse_ to even consider tying my hands over some binary-only module.

Hannu Savolainen tried to add some layering to make the sound modules
more "portable" among Linux kernel versions, and I disliked it for two
reasons:

 - extra layers decrease readability, and sometimes make for performance
   problems.  The readability thing is actually the larger beef I had
   with this: I just don't want to see drivers start using some strange
   wrapper format that has absolutely nothing to do with how they work. 

 - I _want_ people to expect that interfaces change. I _want_ people to
   know that binary-only modules cannot be used from release to release.
   I want people to be really really REALLY aware of the fact that when
   they use a binary-only module, they tie their hands. 

Note that the second point is mainly psychological, but it's by far the
most important one. 

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. 

Why? Because I'm a prick, and I want people to suffer? No.

Because I _know_ that I will eventually make changes that break modules. 
And I want people to expect them, and I never EVER want to see an email
in my mailbox that says "Damn you, Linus, I used this binary module for
over two years, and it worked perfectly across 150 kernel releases, and
Linux-5.6.71 broke it, and you had better fix your kernel". 

See?

I refuse to be at the mercy of any binary-only module.  And that's why I
refuse to care about them - not because of any really technical reasons,
not because I'm a callous bastard, but because I refuse to tie my hands
behind my back and hear somebody say "Bend Over, Boy, Because You Have
It Coming To You". 

I allow binary-only modules, but I want people to know that they are
_only_ ever expected to work on the one version of the kernel that they
were compiled for. Anything else is just a very nice unexpected bonus if
it happens to work.

And THAT, my friend, is why when somebody complains about AFS, I tell
them to go screw themselves, and not come complaining to me but complain
to the AFS buys and girls.  And why I'm not very interested in changing
that. 

		Linus




More information about the plug mailing list