Re: [RFC] Add kernel<->userspace ABI stability documentation

Greg KH
2006-03-02T04:25:25Z

On Tue, Feb 28, 2006 at 05:17:49PM -0800, Nicholas Miell wrote:
> On Tue, 2006-02-28 at 16:34 -0800, Greg KH wrote:
> > On Tue, Feb 28, 2006 at 01:32:07AM -0500, Theodore Ts'o wrote:
> > > On Mon, Feb 27, 2006 at 03:45:25PM -0800, Greg KH wrote:
> > > > > So I just don't see any upsides to documenting anything private or
> > > > > unstable. I see only downsides: it's an excuse to hide behind for
> > > > > developers.
> > > >
> > > > So should we just not even document anything we consider "unstable"?
> > > > The first trys at things are usually really wrong, and that only can be
> > > > detected after we've tried it out for a while and have a few serious
> > > > users. Should we brand anything new as "testing" if the developer feels
> > > > it is ready to go?
> > >
> > > How about "we don't let anything into mainline that we consider
> > > 'unstable' from an interface point of view"?
> >
> > In a perfect world, where we are all kick-ass programmers and never get
> > anything wrong and can always anticipate exactly how people will use the
> > interfaces we create, sure we could say this.
> >
> > But until then, there's no way this can happen :)
> >
> > For example, look at all of the gyrations that the sys_futex call went
> > through. It took people really using the thing before the final version
> > of how it would work could be added.
> >
> > And another example, /proc. How many times over the past 15 years have
> > we had to upgrade the procps package to handle the addition or change of
> > one thing or another? We evolve over time to handle the issues that
> > come up with different architectures and needs. That's what makes Linux
> > so great.
>
> This is a really bad example.
>
> All the /proc related contortions are a direct result of the fact that
> the multitudes of /proc "formats" are completely undocumented,
> non-extensible, and largely unintended for programmatic usage[1]. (/sys
> was supposed to solve some of these things, but it seems to be going the
> same route, unfortunately.)

sysfs is not going that same route at all. Sure there are a small
majority of files that are multi-line, but they are in the minority by
far.

> Honestly, despite what the ASCII fetish crowd[2] may say, Solaris got it
> right by just exporting C structs. The parsing is certainly a hell of a
> lot easier when you're dealing with actual C datatypes instead of
> character strings and people hacking on /proc are probably less likely
> to make ABI breaking changes when they're dealing with a struct instead
> of a sprintf statement.

Even Solaris documents the maturity level of its interfaces, that is all
I am trying to do here. I'm not trying to pass judgement on the quality
of any of these interfaces.

thanks,

greg k-h