1 ) The monolithic core is much older than Microkernel, the idea was conceived in the late 1980s.
2 ) Monolithic kernels are used in Unix and Linux. Microkernels are used in QNX, L4 and HURD. It was originally used on Mach (not Mac OS X), but was later converted to a hybrid kernel. Even Minix is not a clean kernel, because device drivers are compiled as part of the kernel.
3 ) Monolithic kernels are faster than micronuclei. The first Mach microkernel was 50% slower than the monolithic core, and a later version such as L4 was only 2% or 4% slower than the monolithic core.
4 ) Monolithic kernels are usually bulky. Pure Microkernel must be small in order to fit into the cache of the L1 processor (first-generation microkernel).
5 ). In monolithic kernels, device drivers are in kernel space, and in Microkernel, device drivers are in user space.
6 ). Since the device driver is located in the kernel space, it makes the monolithic kernel less secure than the microkernel, and a failure in the driver can lead to failure. Microkernels are safer than monolithic cores, so they are used in some military devices.
7 ). Monolithic kernels use signals and sockets to provide IPC, while the microkernel approach uses message queues. First-generation micronuclei, poorly implemented by IPC, were slow in context switching.
8 ) Adding a new function to a monolithic system means recompiling the entire kernel, while using micronuclei you can add new functions or patches without recompiling.
Rahul Bhadana Feb 02 2018-12-18T00: 00Z
source share