On 13 Apr 2020, at 13:06, Andrew Warkentin mailto:andreww591@gmail.com> wrote:
Kernel performance is not the only factor when it comes to performance
of microkernel OSes. An OS with a heavyweight structured RPC transport
layer with mandatory dynamic marshaling and lots of vertical
separation of subsystems into multiple processes is likely to be
slower than an OS with an unstructured stream transport layer and
subsystems that are mostly single processes, even if both are built on
the same high-performance kernel.
Sure, OS structure matters a lot, and I’m certainly known for be telling people consistently that IPC payloads of more than a few words is a strong indicator of a poor design. Microkernel IPC should be considered a protected function call mechanism, and you shouldn’t pass more by-value data than you would to a C function (see https://microkerneldude.wordpress.com/2019/03/07/how-to-and-how-not-to-use-s...).
However, microkernel OS structure is very much determined by what security properties you want to achieve, in particular, which components to trust and which not. Less trust generally means more overhead, and the cost of crossing a protection domain boundary is the critical factor that determines this overhead for a given design.
It seems that most microkernel OSes
follow the former model for some reason, and I'm not sure why.
Which OSes? I’d prefer specific data points over vague claims.
Gernot