A microkernel is a piece of software or even code that contains the near-minimum amount of functions and features required to implement an operating system.
It provides the minimal number of mechanisms, just enough to run the most basic functions of a system, in order to maximize the implementation flexibility so it allows for other parts of the OS to be implemented efficiently since it does not impose a lot of policies.
Microkernels were first developed in the 1980s as a direct response to several challenges that were plaguing the adaption of mono-kernels into newer computer systems because of incompatibilities in the design and programming.
This is because new protocol stacks, file systems, device drivers and other low-level systems were being developed quickly at that time. The above mentioned functionalities were often located in the monolithic kernel which results to a lot of work and careful code management when being modified to be used in newer systems.
The microkernel idea was to implement all of these functions as user-space programs which allowed them to be turned on and off like normal programs; they are being run as daemons.
This allowed for easier manipulation of these functions and for the separation of the kernel code for fine tuning without worrying about other side effects. But most especially, it allowed for other operating systems to be built on top of this common core or microkernel which greatly advanced the research on operating systems.
0 Comments