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.