To view parent comment, click here.
To read all comments associated with this story, please click here.
IMO, going with Mach was a very bad decision. Micro-kernels are necessarily slower, but Mach is just notorious for bad performance. They should have gone with something like L4 which is known for extremely good performance (for a micro-kernel anyways).
By the way, 5-10 years from now, performance of micro-kernels should be comparable to monolithic kernels. The reason micro-kernels are so slow is the constant context switching, which wouldn't matter if the processor had a tagged TLB. With a tagged TLB, each TLB entry is tagged with an address space, so context switching would not require a full TLB flush, only a tag change (i.e. changing a register). Intel and AMD both have plans to introduce a tagged TLB in their processors sometime soon due to much better virtualization performance.
dude, processors have been using tagged TLBs (as well as other TLB managing techniques) for eons. Heck, I think the MIPS R4000 had it in silicon almost 2 decades ago. Commercial AMD64 procs have been using tagged TLB designs for a while too.
Furthermore, microkernels are not necessarily that bad when it comes to context switch issues (in fact context switch overhead hasn't been an issue for the better part of the past decade at least due to the sheer difference between the quantum timer tick of modern processors and its pipeline clock, as well as things like out-of-order etc. Also, most of the servers in the microkernel are in the same privilege ring and don't have to necessarily trigger a compound context switch.
A lot of people criticise X86, but it is funny how the baroque protection and privilege mechanisms, ended up being quite beneficial for kernel operation.







Member since:
2006-01-23
More interesting to me is how it compares to Darwin since they're both using the Mach kernel.
It sounds a lot like Darwin, as mentioned by Avie Tevanian, in the fact that they readily tore the kernel apart and put it back together.