Post Syndicated from corbet original https://lwn.net/Articles/1017449/
The Userspace
I/O (UIO) subsystem was first added to the kernel by
Hans J. Koch for the 2.6.32 release in 2007. Its purpose is to facilitate
the writing of drivers (mostly) in user space; to that end, it provides
access to a number of resources that user-space code normally cannot touch.
One piece that is missing, though, is DMA addresses. A proposal to
fill that gap from Bastien Curutchet is running into some opposition,
though.