On 2/9/21, Larry McVoy wrote:
The problem space that kernels address these days include SMP, NUMA,
and all sorts of other stuff. I'm not sure I could understand the Linux
kernel even if I were in my prime. It's a harder space, you need to
know a lot more, be skilled at a lot more.
My take is we're old dudes yearning for the days when everything
was simple. Remember when out of order wasn't a thing? Yeah, me too,
I gave up on trying to debug kernels when kadb couldn't tell me what I
was looking at.
--lm
Pure microkernels with indirect message destinations (i.e. not thread
IDs) can simplify things somewhat with regards to multiprocessing,
since almost all OS subsystems are just regular processes that run in
their own contexts and can structure their threads as they please, as
opposed to being kernel subsystems that have to deal with the
concurrency issues that arise from the possibility of being called
from any process context. The microkernel still has to deal with being
called in any context, but it can use simpler mechanisms for dealing
with concurrency than a monolithic kernel would because processes
don't stay in kernel mode for nearly as long as they can in a
monolithic kernel.