I am sure there's an easy answer to this, but a spot of Googling didn't reveal anything.
Wouldn't it be really cool to have an interface into the Linux kernel which allowed devices, with major/minor numbers properly set up /dev in the usual way, to have their implementation done in user space ? At present the way I usually do it is to create a kernel module, and call the usual register_chrdev() functions to register the callbacks.
I'd love to be able to do the same, except in user space. The expected performance hit would outweigh the benefits of being able to have a device-like implementation accessable easily by other user space processes.