Monolithic kernel

A monolithic kernel is a kernel, in which not only functions to store and process management and communication between processes, but also drivers for the hardware components, and possibly other functions are built-in.

For the drivers, no additional programs are needed - a speed advantage over a microkernel. However, such kernels are error-prone, because the part that has crashed, just (as in a microkernel would be theoretically possible ) can not be restarted, but can even drag a crash the entire system by itself. Despite this advantage, the nowadays market-ready microkernel are also not stable.

The possibility to port it is often implemented by a clever internal abstraction model that separates the hardware-specific features of the general. Thus a high degree of portability can be achieved on different hardware platforms in a monolithic kernel architecture.

Example Linux

The kernel of Linux developers have recognized the weaknesses of the monolithic kernel is started early and met them by the outsourcing of functions in kernel modules. Due to the intensive use of kernel modules for operating system-related functions, which is post- or reloading of system functions, even during operation, as well as during the development phase possible. They thus run again in kernel mode, so that it still continues to be a monolithic kernel in Linux. This has the disadvantage that the protective mechanisms of modern processors only partially applicable in the kernel modules and a faulty module ( in particular malfunctioning driver other providers ) can bring the whole system to crash.

System call in monolithic architecture

Views of operating system functions from a user program need an interface ( API). The system calls trigger the entry into the privileged mode (kernel mode). For software interrupts or traps are used. The application parameters and stored an identifier for the desired function in memory and generates a trap. The processor interrupts the application and launches the trap handler ( trap handler) of the operating system. The CPU control is passed from the application program (german user mode ) to the operating system (English kernel mode ). About the identifier of the requested function can now be started. The arguments stored in the main memory are copied in the core address space and checked for consistency. The CPU processes the call. After completion of the requested function, either copies the result or the resulting error code into the memory space of the application. The trap treatment is completed, and there is a reset of the processor in the unprivileged state. The control is passed back to the application.

Benefits

  • Since the entire operating system functions run in kernel mode, the time-consuming and computationally intensive exchange between the rings of the Protected Mode is minimized.
  • The reliability of important functions of the operating system ( such as memory management ) is not directly from the behavior of the users programs dependent and need not be displayed in this (keywords: Dynamic memory).
  • It eliminates an elaborate communication between the different parts of the operating system. This avoids problems that arise in the further division of the operating system functionality.

Disadvantages

  • The replacement of functions must be performed by a skillful management ( for example, by modules).
  • In case of changes, it is usually necessary to recompile the whole kernel. Sometimes it is, however, also possible to compile only individual modules.

Operating systems that are based on monolithic kernels

  • Unix (such as System V)
  • Linux
  • Android
  • BSD (eg, FreeBSD, OpenBSD, NetBSD )
  • DOS: MS -DOS ( and thus all Endkonsumentenversionen of Windows up to and including Windows ME, because these MS- DOS use as a basic operating system), DR -DOS, PC DOS, FreeDOS ...
  • OS / 2
  • SkyOS
  • OpenVMS
  • Windows CE 6.0

Monolithic kernel | Hybrid kernel | microkernel | Exokernel

  • Operating system theory
579880
de