Monolithic kernel vs Microkernel

Here is a short video i made to help you understand better!

 The Difference between 

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)