There's been a lot of discussion about future driver model
rework. Here's what I think is the current plan:
The 2.6.15 kernel release will have the following changes:
- class devices can be nested, but must be owned by the same class.
- input subsystem is converted to dynamically handle devices.
- input subsystem is converted to use new nested class devices.
- we create a symlink in the root of the class to any nested class devices so
that programs like udev and others still have a chance to work properly now,
and in the future.
- the 071 version of udev is required as it broke with the symlink
changes (my word is libsysfs dumb at times...)
All of the above is done, in the -mm tree, and the needed udev version has
been released.
For the future, here is what is going to happen:
- struct class device is going to merge with
struct device and show up in the main /sys/devices tree, as
that's where it should all go.
- /sys/class/foo/ will just contain directories of symlinks to
the location in the /sys/devices/ tree of where those devices
are. This will keep anything from breaking in userspace
(unless we find some other horrible bug in libsysfs in
udev...)
- when doing the above, slim down
kobject/kset/subsystem/attributes to make them easier to use
as there are a lot of duplicated chunks of code floating
around, and now we know how all of this is going to work. (we
get to throw away our second version of all of this and go for
the third one. Like always. And yes, this is the second
version, 2.5 had version one and you don't want to remember
what that looked like...)
- also when doing the above, fix the apis so they get higher up
Rusty's "api scale" of usability. Right now it's just too
easy to get it all wrong (like Neal is finding out right now
with his kobject work.)
- And document things better (kerneldoc is the way to go.) I'll
try to merge in the LDD3 chapter about the driver model too,
as that's a good place to start with.
- And of course, everything is subject to change.
All of this will be hopefully be done without breaking any userspace stuff,
and any in-kernel code (out of kernel stuff is fair game, although I doubt it
will affect them, as everything is marked _GPL today anyway so no one uses it
directly.)
And this is the last time I mention to Kay, "I don't know what I'm
going to be working on in the future, you have any ideas?"
posted Thu, 27 Oct 2005 in
[/linux]