this is not a complete doc about kernels, just short and useful.
For example, when you start a program, kernel transfers it to the memory and creates required processes. When an app needs memory space, kernel allocates memory space. When an app needs network connection, kernel creates the low level connections. When a program wants to run in background, kernel takes it over.
As the Technology grew up, newer versions of kernels released in any types.
It means that User Services and Kernel services in a system, execute in an unit memory space. You don't use many memories.
By doing this, the kernel size will be increased and it causes OS size increase.
In Micro Kernels, services run in different spaces. There are many different spaces and because of that, Kernel size and OS size, is reduced.
As we use different spaces for user service and kernel service, the connection between the application and the service is done using message parsing, which in turn reduces the execution speed.
It means that the kernel's code, as the name of it, is very small. Meaning that the code executed in the hardware is very small. This kernel supports Nanosecond performance.
Wikipedia:
Exokernel is an operating system kernel developed by the MIT Parallel and Distributed Operating Systems group, and also a class of similar operating systems. Operating systems generally present hardware resources to applications through high-level abstractions such as file systems.
In this type, we have a collection of micro kernel and monolithic kernel's benefits. Monolithic kernel's speed and micro kernel's modularity and partitioning.