Monolithic vs Micro kernel

The basic difference is that a micro kernel (MK) is very small and only provides a very minimal set of services. The majority of what are normally considered operating system services are provided by separate processes that execute outside of the kernel, and in a less privileged mode. These processes need to comunicate via some from of IPC, instead of just reading/writing to whatever data structure they want to access.

MKs tend to be fairly easy to port as the kernel is small, the porting effort is low.

Since a lot of the services provided are potentially running in userspace instead of kernel space, they can not easily trash other processes. This is a security plus.

E.g say the part of the networking stack was in userspace, and was compromised it might not be able to disrupt other processes/tasks. Whereas if that same part of the network stack in a monolithic kernel might be running in kernel space where if compromised it would be able to trash other processes, since it would be privileged.

Tags:

Unix

Kernel