Linux Kernel, User space drivers and interoperability

[ ]

On Linux version 2.6.23 (or .22, can’t recall right now) the UIO (User space Input Output) API was included. It brought up several discussions, quoting Andrew Morton:

“I’m a bit uncertain about the whole UIO idea, really. I have this vague feeling that we’d prefer to encourage people to move device drivers into GPL’ed kernel rather than encouraging them to do closed-source userspace implementations which will probably end up being slower, less reliable and unavailable on various architectures, distros, etc”

Well, on the internet are several references about user space drivers, reliability of in-kernel drivers, etc (here, here and here), so I won’t go that way. But I’d like to express my excitement about this new API because it will open several alternatives specially on the interoperability of different Open Source Kernels (Linux, *BSD, etc) on the driver side. It’s interesting that nobody has talked about this, having specific UIO implementations for each kernel and a common base code on the user space side (like a library) will in fact join efforts between all of us.

Written on February 13, 2008