On 13 Apr 2020, at 13:06, Andrew Warkentin <andreww591@gmail.com<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