Wednesday, August 22, 2012

What is the difference between a monolithic kernel and a microkernel?

Monolithic kernel has simple design. 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 examples of monolithic kernel based OSs are Linux, Unix.



operating system kernel


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.The communication in microkernels is done via message passing. The servers communicate through IPC (Interprocess Communication). Servers invoke "services" from each other by sending messages. The separation has advantage that if one server fails other server can still work efficiently. The example of microkernel based OS are Mac OS X and Windows NT.

OTHER ANSWER

In monolithic operating system all services are provided in the operating system kernel itself. In my own understanding, monolithic operating system is one big program. Being 'one big program' all the services are associated with one another. This is prone to system crashes, because, if one particular function fails, the entire system will be brought to halt. In regards to resource management, it is difficult for the programmer to debug or implement the system. The only advantages of being monolithic are it deals with resource management rapidly. An example of a monolithic operating system will be the UNIX and MS-DOS.
             In microkernel operating system, processes are divided and stored in a different server. This key concept of the microkernel operating system is to keep the OS kernel small with basic and minimum process. Other services are stored in a different server. They communicate, via a communication channel





No comments:

Post a Comment