Re: Moving out of the kernel to improve performance?
"excluding things like device drivers, which needed access to raw hardware and had to be in the kernel"
That's a misconception.
Obtaining initial access rights to hardware needs to be kernel-approved, but after that there is no reason a user space driver couldn't access the heck out of the hardware.
RAM is hardware as well, by the way, and I'm pretty sure user space code accesses it quite a lot.
It's to do with memory mapping and protecting all but certain memory regions from user mode access. This enforcement is all supported in hardware, and very fast.