4 ms·
Message passing performance is a bit of a red herring. Performance has been within a few percent of monolithic kernels for a long time. More importantly, messag
by Rusky 9y ago
Message passing performance is a bit of a red herring. Performance has been within a few percent of monolithic kernels for a long time. More importantly, message passing is already in widespread use for things like virtualization or userspace IPC anyway.
Aside from that not-entirely-reassuring "eh, it's fast enough" argument, I've seen arguments that microkernels could actually leapfrog monolithic kernels on multi-core systems, if they moved on from their obsession with single-core message passing latency. They'd no longer use the sequential dance of "enter kernel; switch processes; exit kernel; do work; enter kernel; switch back; exit kernel." Instead, they'd use "enter kernel; write message for the cache hierarchy to pass; schedule and exit kernel."
No idea how that'd turn out in practice, and it would probably involve some tradeoffs, but the idea of just entirely bypassing the whole "syscall vs message round trip" thing is appealing. Exokernels are similarly appealing, by rearranging their protection mechanisms so that things can be moved to libraries rather than server processes.