Monolithic vs Micro-kernel code example

Example: monolithic kernel vs microkernel

Monolithic kernel is a single large process running entirely 
in a single address space. It is a single static binary file. 
All kernel services exist and execute in the kernel address space. 
The kernel can invoke functions directly. 
Examples of monolithic kernel based OSs: Unix, Linux.

In microkernels, the 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. 
Servers invoke "services" from each other by sending messages via 
IPC (Interprocess Communication). 
This separation has the advantage that if one server fails, 
other servers can still work efficiently. 
Examples of microkernel based OSs: Mac OS X and Windows NT.