Re: [RFC] Splitting kernel headers and deprecating __KERNEL__

Alexandre Oliva
2004-12-01T19:41:42Z

On Nov 30, 2004, Linus Torvalds <torvalds@osdl.org> wrote:

> On Tue, 30 Nov 2004, Alexandre Oliva wrote:

>> On Nov 30, 2004, Linus Torvalds <torvalds@osdl.org> wrote:

>> > If you want to use a legal analogy, the ABI is not a contract, it's a
>> > public _license_.

>> I didn't mean to use a legal analogy. I meant contract in the
>> software engineering sense. Sorry if that wasn't clear.

> Then your definition of a "contract" is flawed or your world-view has
> nothing to do with reality.

It's not my definition, it's a definition used in software
engineering. Sure, if you ask a legal mind, you'll get a different
answer. If you ask a bridge player, you'll get yet another
definition. That's why we have jargons in which common-use words have
their meanings narrowed to the specifics of certain fields. And
that's why it's so hard for specialists in different fields to talk to
each other at times when there's disagreement about the precise
meaning of certain words.

> An ABI is not a contract.

Not a legal contract, for sure.

An ABI is a definition of an interface, including operations with pre-
and post-conditions, data structures with their invariants, constants,
file formats, etc. Most of that is covered by the software
engineering term `contract'.

Sure enough, the headers we're talking about describe only a very
small portion on that; pretty much only data structures and
constants. It certainly doesn't *specify* the entire ABI, it only
highlights portions of it.

Anyhow, all of this is beyond the point. I see you've decreed that
people can introduce `user' directories in the kernel now. Would you
please reconsider and choose a dir name that would enable the same ABI
headers to be used by kernel and userland, without adding a directory
to /usr/include that has no indication that it comes from the kernel?

Thanks,

--
Alexandre Oliva http://www.ic.unicamp.br/~oliva/
Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}