I have a question regarding the performance of micro-kernels and monolithic kernels.
I heard from a certain source that micro-kernels are not really worse in terms of performance, compared to monolithic kernels. The reason stated was this - The service, (drivers, etc) are in the Layer 1/2 (on Intel architecture), the applications do not need to do a context switch to invoke the drivers. The communication between the applications can be done through IPC mechanism, whereas a context switch is needed for the same on a monolithic kernel.
But, my question is this - doesn't the driver have to communicate with the kernel (which is in Layer 0 and needs a context-switch)? So, in effect, the context-switch is still very much there, and we have IPC mechanism on top of it. So, shouldn't the performance of micro-kernels be worse than monolithics?
Sorry if I am missing anything fundamental - am quite new to the operating systems design. Any help would be very much appreciated
