[David Leimbach]
I'm not sure I see how heavy multiplexing has to be a problem for anyone. If it's possible to do it all in one syscall, I'd go for it :). After all increasing the complexity of the upper layers is traditionally what modern microkernels do but once you have a really decent library of tools I bet a lot of the perceived complexity falls away. [maybe not so much as to make it as "easy" to code for as a monolithic kernel but good enough
)]
Is this consistent with the current philosophy of microkernels?
Our system call ABIs are typically pretty much optimized to hold as many relevant parameters as possible in registers (so as to avoid memory accesses). You could of course percieve a solution where parts of one register holds the "sycall type" and the remaning registers have semantics depending on this type. I don't see how this gains you anything at all (appart from consuming some register real estate and requiring a demultiplexer---not relly what I'd call gains). If you know that you are performing a completely different operation you might as well jump directly to the routine that implements that operation.
As Jonathan pointed out, there can be other reasons for having a single syscall, though.
eSk