|
|
Slide 4 of 19
When you are done filtering out all of the chaff that various researchers have thrown out about microkernels, why have so many of these systems failed?
First, fast IPC really is hard. Beyond this, though, OS-based encapsulation boundaries require marginal data copies. To get the bytes from one address space to another you have to copy them (at least logically) and this is expensive. On the other hand, you are getting fault containment and security that we don't yet know how to get any other way.
Finally, the microkernel advocates have in large measure allowed the monolithic community to control the dialogue, and have therefore been unsuccessful at focusing attention on the things that dekernelized systems do well. Benchmark suites like lmbench provide a great way to measure POSIX systems. Using it to measuring a POSIX emulator running on top of Mach is a good way to evaluate the performance of the POSIX emulation but sheds little light on the underlying Mach system. Once people decide the POSIX emulator is no good they stop looking at the underlying system.
You may have noticed, for example, that people don't talk much about some of the interesting native work that was done on Mach, like the Camelot/Avelon transaction processing system. If you have never heard of that work, my point about controlling the dialogue has been made.
I don't concede that POSIX emulation has to be bad. In a couple of slides I'll show some reasons to think otherwise. The point, however, is that POSIX benchmarks are not the right approach if you really want to evaluate a new architecture on merit.