- 2073 Shrawan · 2+3 marks
Microkernel vs monolithic kernel
Short answer
Microkernels offer modularity, small size, reliability (server failure do not crash kernel), flexibility, and distribution support via message passing. They are preferable for distributed OS because message passing naturally extends across machines, enabling location transparency, dynamic service placement, and tolerance of service failures.
What are the advantages of micro-kernel over monolithic-kernel? In your view, which kernel is preferable for distributed operating system and why?
Advantages of microkernel over monolithic kernel
- Modularity and flexibility: services are separate servers that can be added, replaced or upgraded without recompiling the kernel.
- Small size: the kernel is small and simple, easier to understand, test and verify.
- Reliability: failure of a server (file or driver) does not crash the kernel; it can be restarted.
- Security: the services run in user space with less privilege.
- Portability: only the small kernel depends on hardware.
- Distribution support: the same message passing is used for local and remote services, so servers may run on any node (location transparency).
- Several OS personalities can run on one microkernel.
Drawback: message passing and extra context switches make it slower than a monolithic kernel.
| Point | Monolithic kernel | Microkernel |
|---|---|---|
| Structure | All OS services (file system, memory, scheduling, drivers, networking) in one large kernel in kernel space | Only minimum functions (IPC, basic scheduling, low level memory, interrupts) in kernel |
| Other services | Part of kernel | Run as user-level servers |
| Communication | Direct procedure calls (fast) | Message passing between servers (slower) |
| Size | Large | Small |
| Reliability | A bug in one module can crash the system | A server failure does not crash the kernel |
| Flexibility, extensibility | Hard; needs recompilation | Easy; add/replace servers |
| Examples | UNIX, Linux, MS-DOS | Mach, Amoeba, Chorus, QNX |
Preferred kernel for a distributed OS
The microkernel is preferable. A distributed OS needs communication by messages across machines, transparent location of services, the ability to put different services on different nodes, to add or change services dynamically, and to tolerate the failure of services. A microkernel gives all of these, with IPC as the basic mechanism. The performance loss is acceptable compared with the network delays, and can be reduced by optimising IPC.
✓ Answer checked by Claude Opus 5.5 (high effort)
Related questions
- Short note: Monolithic and microkernel · Distributed System, chapter 3 · asked 4×
- DOS; monolithic and microkernel · Distributed System, chapter 3
- Autonomous vs distributed system · Distributed System, chapter 1
- Operating system layers · Distributed System, chapter 3
- Network OS vs distributed OS · Distributed System, chapter 3
- Models of distributed system · Distributed System, chapter 1
- Monolithic vs micro-kernel structure · Operating System, chapter 1
- Extended machine, kernel, system call · Operating System, chapter 1
- System call; monolithic and VM architecture · Operating System, chapter 1
- Layered vs monolithic OS structure · Operating System, chapter 1