Linked by Thom Holwerda on Sun 22nd Jul 2007 00:33 UTC, submitted by liquidat
Linux Linus Torvalds included patches into the mainline tree which implement a stable userspace driver API into the Linux kernel. The stable driver API was already announced a year ago by Greg Kroah-Hartman. Now the last patches were uploaded and the API was included in Linus' tree. The idea of the API is to make life easier for driver developers: "This interface allows the ability to write the majority of a driver in userspace with only a very small shell of a driver in the kernel itself. It uses a char device and sysfs to interact with a userspace process to process interrupts and control memory accesses."
Permalink for comment 257151
To read all comments associated with this story, please click here.
RE: Full circle...
by butters on Sun 22nd Jul 2007 03:38 UTC in reply to "Full circle..."
butters
Member since:
2005-07-08

Now, it's going back to the Minix model....

Not really... There's no message-passing component to this driver framework. It uses a kernel component to expose kernel data to a userspace component through a pseudo-device and a pseudo-filesystem. The userspace component can behave as though it has access to kernel memory, but the kernel component is actually validating accesses and providing the mappings.

So instead a set of permitted operations, we have a set of accessible memory regions. The result is that programming userspace services is more like programming kernel services, and therefore more convenient. Furthermore, it doesn't require a programmatic interface between components, so stability is very achievable.

In a sense, it rejects the basic premise of microkernel design, which is that unprivileged servers must be restricted in terms of what operations they may perform. We don't care about operations, their names, and their purposes. We only care that unprivileged code doesn't mess with kernel memory that it shouldn't be touching. That's all the isolation that really matters.

Edited 2007-07-22 03:39

Reply Parent Score: 5