Re: [RFC] Splitting kernel headers and deprecating __KERNEL__

Linus Torvalds
2004-11-30T22:22:53Z

On Tue, 30 Nov 2004, Alexandre Oliva wrote:
>
> Then maybe this is the fundamental problem. As long as the kernel
> doesn't recognize that an ABI is a contract, rather than an
> imposition, kernel developers won't care.

That's a silly analogy. Worse, it's a very flawed analogy.

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

Why? A contract is something that you cannot change unilaterally. Clearly
the kernel _can_ and will change the ABI without asking every existing
program for permission.

In a license, you can always just _expand_ the license eventually. Maybe
you originally licensed for "fly-fishing for trout", and later you can
expand that license to say "you can also catch crawfish" without impacting
your existing licensees.

And exactly as with an ABI, the only thing you can't do is _remove_ rights
without getting into trouble.

So get your analogies straight. The kernel ABI is _not_ a contract.

Linus