Re: [PATCH 01/61] Rules on how to use sysfs in userspace programs

From: Pavel Machek
Date: Thu Jul 12 2007 - 18:42:18 EST


Hi!

> > > +The kernel exported sysfs exports internal kernel implementation-details
> > > +and depends on internal kernel structures and layout. It is agreed upon
> > > +by the kernel developers that the Linux kernel does not provide a stable
> > > +internal API. As sysfs is a direct export of kernel internal
> > > +structures, the sysfs interface can not provide a stable interface eighter,
> > > +it may always change along with internal kernel changes.
> >
> > It is also agreed upon by the kernel developers that the Linux kernel
> > does have a stable user<->kernel API... so we have a small problem
> > here.
>
> I agree, that is why we have described the proper ways to use /sys in a
> manner that is acceptable to future changes in it.
>
> > Maybe solution is to declare /sys unstable, but... perhaps /sys can
> > stop mirroring internal structures? I do not think we should codify
> > our failure to keep /sys stable here.
>
> I think that /sys is to valuable to say it can just never be used by
> userspace programs. With these suggestions, do you see any problems
> with any potential future changes in the layout that you can come up
> with?

I'm afraid that userland programmers just will not read/follow
this... and we will not know.

[Perhaps CONFIG_STRESS_SYSFS_PARSERS would be useful? Move stuff
randomly to expose broken /sys users?]

Then, we'll get binary-only applications working okay relying on
specific /sys structure, and soon, we'll be unable to change /sys.

[Perhaps we can make large parts of sysfs superuser-only, so that
"normal" application can not rely on it?]
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.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/