What are different types of kernel?
Basically, there are three types of kernel:
- Monolithic Kernel- Micro Kernel- ExoKernel
Monolithic:As the name itself suggests, the kernel has every
services like, FS Management, MM, Process Management, etc. in the
kernel space. It does not run as a separate process. So, as you
guess, there is no context switching, when you ask for a service.
But, the probability of a monolithic kernel getting struck is more.
Because, if there is a bug in the kernel itself, nothing can rescue
it. Linux and Windows are good examples of Monolithic kernel.
Linux, being a monolithic kernel, you can insert modules into the
kernel dynamically using insmod command.
Micro Kernel:Micro kernel runs all the services as a daemon in
the user space. So, if a problem occurs in any of the service, the
kernel will be able to decide what to do next. But, you pay-off the
time to switch to a service in this type of kernel. Micro kernels
are some what difficult to design and build than the monolithic
kernel. There are always a discussion over the internet, talking
about the advantage and disadvantages of monolithic and micro
kernel.
Exo Kernel:Exo kernel is not yet stabilized. It's under design
and research. The user mode processes running in this type of
kernel has the ability to access kernel resources like process
tables, etc directly.