Microkernel(relative to monolithic kernel)


Microkernel(relative to monolithic kernel)
Microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). From this sentence, we can get several points below:
1) Microkernel is very small.
2) Microkernel contains some program such as low-level address space managementthread managementschedulingIPC(inter-process communication) and so on which are all very basic tools.
3) The functionalities mentioned above are all very necessary for a OS kernel(here kernel don't need to provide these features any more, maybe just some drivers, internet module or something else). So Microkernel OS is much more portable because of its small size.
4) Here other operating systems are implemented on user mode above the microkernel.
5) From the picture below, we can see that an obvious difference between Microkernel and Monolithic kernel is that application in Monolithic kernel communicate with kernel level through system call. However application in Microkernel OS communicate with driversservers, and other applications through IPC instead of system call.

As a microkernel must allow building arbitrary operating system services on top, it must provide some core functionalityAt the least, this includes:
    1) some mechanisms for dealing with address spaces — this is required for managing memory protection;
    2) some execution abstraction to manage CPU allocation — typically threads or scheduler activations; and
    3) inter-process communication — required to invoke servers running in their own address spaces.


Comments

Popular posts from this blog

Basic understanding of TLS-PSK protocol

Differences between ASIC, ASSP and ASIP

Orthogonal instruction set