A kernel is the core software module of an operating system. The kernel of an OS loads first, and it remains in main memory. That is why it is essential for the kernel to be as small as possible, but still offer all the services required to initialize other parts of the operating system and applications. The kernel is typically placed in a well-protected protected memory so it will not be overwritten by apps or the OS.

The kernel controls all basic device functions, including memory management, process and task management, as well as disk management. The kernel provides software infrastructure such as drivers to integrate system hardware with application software.

Although the functions of a kernel are much the same, each OS has its own kernel, although some OS have borrowed kernels. For example, the Linux kernel is found in quite a few operating systems, including Linux, FreeBSD, Ubuntu and Android.

Kernels execute operating system tasks differently depending on their design and implementation. Monolithic kernels execute all the operating system code in the same address space to improve system performance. Microkernels, on the other hand, execute nearly all operating system services in user space, acting as servers to maximize the stability and modularity of the operating system.

Hybrid kernels are in essence a type of microkernel with some properties of monolithic kernels. However, hybrid kernels cannot load modules at runtime on their own. The basic idea behind hybrid kernels is that they keep some non-essential code in kernel-space so the code will run more quickly than it would in user-space.