From: Andrew Warkentin
Mach and the other kernels influenced by it basically
destroyed the
reputation of microkernels ... a simple read() of a disk file, which is
a single kernel call on a monolithic kernel and usually two context
switches on QNX, takes at least 8 context switches - client->VFS->disk
FS->partition driver->disk driver and back again).
Hammer-nail syndrome.
When the only tool you have for creating separate subsystems is processes, you
wind up with a lot of processes. Who'd a thunk it.
A system with a segmented memory which allows subroutine calls from one subsystem
to another will have a lot less overhead. It does take hardware support to be
really efficient, though. The x86 processors had that support, until Intel dropped
it from the latest ones because nobody used it.
Excuse me while I go bang my head on a very hard wall until the pain stops.
Noel