Monolithic kernel
From Wikipedia, the free encyclopedia
A monolithic kernel is a kernel architecture where the entire kernel is run in kernel space in supervisor mode. In common with other architectures (microkernel, hybrid kernels), the kernel defines a high-level virtual interface over computer hardware, with a set of primitives or system calls to implement operating system services such as process management, concurrency, and memory management in one or more modules.[citation needed]
Even if every module servicing these operations is separate from the whole, the code integration is very tight and difficult to do correctly, and, since all the modules run in the same address space, a bug in one module can bring down the whole system. However, when the implementation is complete and trustworthy, the tight internal integration of components allows the low-level features of the underlying system to be effectively utilized, making a good monolithic kernel highly efficient. In a monolithic kernel, all the systems such as the filesystem management run in an area called the kernel mode.[citation needed].
[edit] Loadable modules
More modern monolithic kernels such as Linux, FreeBSD and Solaris can dynamically load (and unload) executable modules at runtime. This modularity of the kernel is at the binary (image) level and is not at the kernel architecture level. The two can be completely independent, but are sometimes confused. Modular monolithic kernels are not to be confused with the architectural level of modularity inherent in microkernels or hybrid kernels. Practically, dynamically loading modules is simply a more flexible way of handling the kernel image at runtime - as opposed to rebooting with a different kernel image. The modules allow easy extension of the kernel's capabilities as required. Despite module adding a small overhead when using a module as opposed to being built-in, but, depending on usage, only loading modules when needed helps to keep the amount of code running in kernel space to a minimum.[citation needed].