Re: Development tree, PLEASE?

From: Jesper Juhl
Date: Fri Jan 20 2006 - 15:18:51 EST


On 1/20/06, Michael Loftis <mloftis@xxxxxxxxx> wrote:
>
[snip]
> I'm trying to think of a way to relate this better but I just can't.
> What's needed is a 'target' for incremental updates, things like minor
> changes, bugfixes, etc. I feel like supporting entirely new hardware

That's called a vendor kernel.
You pay the vendor money, the vendor maintains a stable (as in feature
frozen) kernel, backports bugfixes for you etc.
Take a look at the RedHat and SuSE enterprise kernels, they seem to be
what you want.

> (provided that the API is 'frozen' when it's realeased mainstream) in a
> stable kernel is fine, even adding features and functionality to existing
> stuff is fine but without having to take the whole damned enchilada of
> changes a development tree entails, which is all of the internal APIs.
> Yeah, it would/will become generally stagnant tree, but that's the point of
> a stable release.
>

In my book 'stable' means 'doesn't crash' and 'doesn't break userspace
without long advance notice', it doesn't mean 'does not evolve/goes
stale'.
And in my oppinion the current 2.6 tree succeeds in being a stable kernel.

Besides, I don't agree with your view that we break userspace all the
time as you seem to be saying in several of your mails, quite the
opposite - a lot of work goes into *not* breaking userspace.
Just take a look at how syscalls are maintained, even old obsolete
ones stay in place since removing them would break userspace. Stuff in
/proc does not get changed since that would potentially break
userspace. Look at the fact that you can still run ancient a.out
binaries on a recent 2.6.x kernel.
Even internal kernel APIs usually stay around with __deprecated or as
wrappers around new APIs for extensive periods of time.
And when stuff is removed it's announced for ages in advance. That
devfs would be removed was announced several *years* before it
actually happened. That old OSS drivers will be removed (but only for
hardware that has ALSA equivalents) has been announced months ago and
the removal won't happen for several months (at least) yet.

I'd say the kernel tries damn hard at maintaining backwards
compatibility for userspace.
It tries less hard, but still makes a pretty good effort, for internal
APIs, but the real solution to the internal API churn is to get your
code merged as it'll then get updated automagically whenever something
changes - people who remove or change internals try very hard to also
update all (in-tree) users of the old stuff - take a look at when I
removed a small thing like verify_area() if you want an example.


> It's horrificly expensive to maintain large numbers of machines (even if
> it's automated) as it is. If you're doing embedded development too or
> instead, it gets even harder when you need certain bugfixes or minor
> changes, but end up having to redevelop things or start maintaining your
> own kernel fork.
>
The solution here is to get your code merged in mainline.

[snip]

--
Jesper Juhl <jesper.juhl@xxxxxxxxx>
Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please http://www.expita.com/nomime.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/