I read Your mail on linux-kernel recently and I think the idea of
UDI is very good.
I'm currently working on the Linux Driver Development Kit
LDDK and one of the main goals of LDDK is to provide a common architecture
independent way to specify a driver. I choosed another model different from
the UDI idea: Generating drivers from minimal but flexible specification.
So encapsulation of the OS sensitive parts should be done by the generator.
I'm going to implement some useful OS services that covers DMA transfers,
memory handling, port I/O and so on.
Parts of this are already done, but it would be nice to have
more discussion on this project.