MONOLITHIC KERNEL |
MICROKERNEL |
The entire O.S. is placed inside the kernel |
Only bare minimum code is placed inside the kernel (only basic memory management and Inter Process Communication code) |
It runs as a single large process |
Here the kernel is broken down into processes called as servers |
As all the services are placed inside the kernel, they have a single address space |
As services(Servers provide services) are separated they have different address spaces |
It is bigger in size |
It is smaller in size |
It is easy to implement/code |
It is tough to implement/code |
Performance is high (As kernel can invoke any function directly as everything is placed in the kernel) |
Performance is low (As servers are separated, so to invoke services from other servers IPC(Inter Process Communication) is needed which requires kernel’s permission and thus increases access time and lowers the performance) |
Less Secure (If one service fails, entire system crashes) |
More Secure (Even if one service crashes, others can function properly because of separation) |