A microkernel is a minimal operating system that determines simple inter-process communication, memory management, and scheduling. It runs in kernel mode but is divided into several processes called servers that each have their own address space. Applications and drivers run in user mode, while the microkernel provides default context switching. In contrast, a monolithic kernel performs more functions and services in kernel mode, allowing for better performance but risking crashing the entire system if a bug occurs. A hybrid kernel aims to improve the efficiency of monolithic kernels with the stability of microkernels.