A monolithic kernel runs all operating system services and device drivers in the kernel space of memory. This provides rich hardware access but dependencies between system components mean a bug can crash the entire system. A microkernel moves most OS services like networking and filesystems into userspace processes or "servers" that communicate through a minimal kernel. This improves modularity and stability but incurs more overhead from frequent context switches between user and kernel mode.