You'd have to look up fundamentals in OS design to figure that one out.
But, hey.
I'd look up the differences between a monolithic kernel design (linux) vs a micro kernel (mach, like used in OS X).
From what I understand running everything in userspace is what micro kernel is about. The kernel only incepts the signals from each driver (or what ever) and redirects them to each other.
A monolithic kernel want's to control everything the OS needs to interact with all the hardware and stuff.
A monolithic kernel is suppose to be faster vs a micro kernel. But a micro kernel is suppose to be more versitile and stable. They've always figured you could design around Micro kernel's limitations and make it as fast as Monolithic kernels. Trouble was (As I figured it) that people kept making monolithic kernels faster, too.
But according to the Unix design ideas that versitility/portability > speed. So a Microkernel should be a more ideal kernel design.
Micro kernels for a long time have been considured the future by computer scientists and acadamia. However Linux chooses a quite conservitive design in many ways and thus was considured quite a bit backward and obsolete for a long time, but it is still a commercial success compared to other kernel designs. Go figure. Sometimes worse is better.
I learned this from a infamious discorse between
Linus and Tanenbaum
That's about all I know...
The most interesting part was that even though Tanenbaum spent his life studing operating system design, and was probably quite correct on many technical issues (hell if I know), he was still mostly completely wrong on everything else.