We have basically 5 types of kernels, and these are:
- Monolithic Kernel: Monolithic kernels are kernels that have their user and kernel service implemented in the same memory space.
- Hybrid kernel : This kernel can be said to be a combination of the monolithic kernel and micro kernel. Hybrid kernels can be seen as micro kernels that have some "non-essential" code in kernel-space in order for the code to run more quickly than it would be in user-space. Hence certain services such as network stack or filesystem are run in Kernel space to reduce the performance overhead, but still, it runs kernel code as servers in the user-space.
- Exo Kernel: Designed by MIT, it is famous for it use of abstraction and use of libraries
- Micro Kernel: This type of kernel has it's user and kernel space separated.
- Nano Kernel: This can be described as a kernel that supports Nano second clock resolution