Re: Are Microkernels really better?
Posted: Sat Aug 29, 2020 12:08 am
Pure monolithic kernels are silly, because they essentially force all drivers to reside in the kernel, which means they require complex module loading systems and other mental gymnastics to create a reasonable, workable system.
Pure microkernels are silly, because they force everything to reside outside the kernel, which results in unneccessary overheads.
Pure exokernels are silly, because they are basically application hypervisors instead of an actual OS that provides services that users and applications want.
The best design for an OS is a hybrid approach that mitigates the weaknesses of each pure design. It's best to have a monolithic/exokernel hybrid that has all fundamental features (file system, scheduling, memory management, etc) inside the kernel, and all other features (such as specific device drivers) available to use directly in userspace.
The only drivers that need to reside in the kernel are ones that are required for the basic services that the kernel provides to the user and applications, which are mouse, keyboard, display, speaker, and network support. Outside of those, all other drivers can (and should) reside in userspace.
Pure microkernels are silly, because they force everything to reside outside the kernel, which results in unneccessary overheads.
Pure exokernels are silly, because they are basically application hypervisors instead of an actual OS that provides services that users and applications want.
The best design for an OS is a hybrid approach that mitigates the weaknesses of each pure design. It's best to have a monolithic/exokernel hybrid that has all fundamental features (file system, scheduling, memory management, etc) inside the kernel, and all other features (such as specific device drivers) available to use directly in userspace.
The only drivers that need to reside in the kernel are ones that are required for the basic services that the kernel provides to the user and applications, which are mouse, keyboard, display, speaker, and network support. Outside of those, all other drivers can (and should) reside in userspace.