Quote: Original post by Magmai Kai Holmlor
The only real advantage of a real-world micro-kernel over the real-world monolith kernel (that I see) is that you can take advantage of additional rings of protection with the micro-kernel. This is possible because drivers and system services (e.g. tcp/ip stack) could exist in their own memory space and have their own access privileges. You can set it up so only the network service (and the kernel) can touch the network IO ports of the NICs. Someone can't load a rogue driver and take control of everything in the system. This is not how NT, VxWorks, Integrity, etc... work. They have a micro-kernel architecture, yet kernel and system services share a common memory space and IO privileges. One of the few kernels that actually does this is QNX. Often it's said that QNX has a nano-kernel architecture because it is so different from typical micro-kernels.
QNX rocks as an example of what microkernels are capable of. Stability and real-time capabilities draw from the fact that it's a well-designed microkernel arch.
But notice I said "well-designed". It's more difficult to engineer microkernel archs effectivly compared to monolitic kernels. So to sum up:
In theory, the Hurd system is more scalable, stable, and just generally more capable than Linux.
In reality, the design of Linux is such that new features are easier to implement, because of the inherent simplicity of a mono kernel. That's why, at this moment, Linux > Hurd. Will Hurd catch up? Not unless some big backers get behind it. I personally think Hurd has some major issues which need to be redesigned, but that's only my opinion.