Microkernel

from Wikipedia, the free encyclopedia

A microkernel , also called a µ kernel or micro kernel , is an operating system kernel which, in contrast to a monolithic kernel, only fulfills basic functions - usually these are memory and process management, as well as basic functions for synchronization and communication. All other functions are implemented as separate processes ( server ) that communicate with the requesting programs ( client ) or as a program library that is integrated by the requesting programs in user mode .

Structure of monolithic kernel , microkernel and hybrid kernel in comparison

Micro-cores are particularly suitable for the implementation of distributed operating systems , since the operating system components can be outsourced.

development

Due to the poor design of some previous implementations, microkernels have a reputation for being slow and confusing. However, there are now kernels that achieve a high data throughput by reducing further functionality, but also by strong optimization (partly with loss of portability) and thus gain interest. Operates L4 only ten commands.

On the PowerPC architecture, extremely powerful micro-cores could be implemented earlier, since the context changes could be carried out much faster here than on more complex architectures such as the x86 .

advantages

Separate components
Individual components of the operating system can be exchanged as required without affecting other parts. A clear interface design helps. The crash of a single component does not necessarily lead to the collapse of the entire system.
Driver in user mode
The device drivers run together with an application program in user mode - in contrast to monolithic kernels , in which all drivers run in privileged mode. This has the advantage that the access rights of the drivers can be determined individually.
Device drivers do not need to be in the kernel and are usually designed in such a way that they can also be executed with user rights (as opposed to root rights or even in the kernel). The same applies to file system drivers, etc. B. FTP and WebDAV can be implemented directly at the file system level without increasing the security risk, i. H. a server can be used just like a local directory from all applications.
To use the driver , it is sufficient to be logged in as a normal user with access rights to the required hardware. There is no need to change system files or restart the system. Background services ("services") can also be started without any problems. B. under Linux an installation in the kernel, with root rights and compiled especially for this kernel, would require.
small Trusted Computing Base
The kernel code that a user has to trust is relatively small compared to monolithic operating systems and thus easier to verify.

disadvantage

speed
Since the operating system running on the micro kernel consists of many individual user processes, considerably more context changes are necessary than with monolithic operating systems. As a result, a microkernel is usually slower than a monolithic one. For L4 , however, it has been proven that L4Linux is only slightly (5–10%) slower than Linux .
synchronization
The synchronization of the many user processes is of central importance for the performance of a micro-kernel system. The coordinating kernel processes are complex and relatively difficult to optimize.
Hardware access
Some operating system calls, such as physical I / O access, require the privileged kernel mode . For security reasons, direct access to the hardware is prohibited for normal processes. To avoid this, selected modules such as the I / O driver can be operated in kernel mode. Alternatively, the microkernel can be expanded to include elementary I / O functions that require the kernel mode. These functions may only be accessed by the I / O driver that implements mechanisms such as authorization in user mode. Both solutions soften the micro-kernel concept.

Well-known microkernels

Operating systems based on micro-cores

Windows NT is not a microkernel system, even if it is often wrongly claimed. It belongs to the group of hybrid kernels . Andrew S. Tanenbaum writes: “Windows NT 3.1 was a half-hearted attempt at a microkernel system, but it wasn't done right and the performance wasn't good enough on the early 1990s hardware, so the idea was abandoned for a while. "

Also XNU , the kernel of the operating system Darwin by Apple is a Mach-hybrid kernel. Darwin serves as the core operating system ( English Core Operating System ) of macOS and systems derived therefrom, such as u. a. iOS .

Individual evidence

  1. Hermann Härtig, Michael Hohmuth, Jochen Liedtke, Jean Wolter, Sebastian Schönberg: The performance of μ-kernel-based systems . In: Proceedings of the sixteenth ACM symposium on Operating systems principles (=  SOSP '97 ). ACM, New York 1997, ISBN 0-89791-916-5 , pp. 66-77 , doi : 10.1145 / 268998.266660 ( tu-dresden.de ).
  2. ^ "Windows NT 3.1 was a half-hearted attempt at a microkernel system, but it wasn't done right and the performance wasn't good enough on the hardware of the early 1990s, so it gave up on the idea for a while. " Http://www.cs.vu.nl/~ast/reliable-os/