What is difference between micro kernel and monolithic kernel?
The difference between micro kernel and monolithic kernel are given below
Micro Kernel – The micro kernel is broken down into separate processes, known as servers. Some of the servers run in kernel space and some run in user-space. All servers are kept separate and run in different address spaces. The very important parts like IPC(Inter process Communication), basic scheduler, basic memory handling, basic I/O primitives etc.., are put into the kernel. The communication in micro-kernels is done via message passing. Others are maintained as server processes in User Space. Micro-kernels are used in QNX, L4 and HURD. It was initially used in Mach (not Mac OS X) but later converted into a hybrid kernel. Even Minix is not a pure kernel because device drivers are compiled as part of the kernel .
Monolithic kernel – The monolithic kernel is a single large processes running entirely in a single address space. It is a single static binary file. All kernel services exist and execute in kernel address space. The kernel can invoke functions directly. The device drivers reside in the kernel space while in the Micro-kernel the device drivers reside in the user space. Monolithic kernels use signals and sockets to ensure IPC, micro-kernel approach uses message queues. Monolithic kernels are used in Unix and Linux.