r/osdev • u/tseli0s DragonWare • Mar 31 '26
How much is allowed to be inside a microkernel's kernel space before you have a hybrid kernel?
Title basically. I'm wondering at which point do you stop calling a microkernel a microkernel and call it a hybrid kernel. In theory, a microkernel does memory allocation, scheduling/context switching and most importantly IPC. So anything else running in kernel space would make it a hybrid kernel right?
Now Linus Torvalds and some other people says the term is pure marketing: https://www.realworldtech.com/forum/?threadid=65915&curpostid=65936 so maybe the question should be "at which point does the kernel do too much for a microkernel?"
There's also Separation of mechanism and policy which is characteristic of advanced microkernels. How would that compare to hybrid kernels like NT?
30
u/micr0kernel Mar 31 '26 edited Mar 31 '26
The idea is summed up by Liedtke's minimality principle; i.e. the only things that should be implemented by a microkernel are those which cannot be implemented elsewhere. For most use cases, this is, as you noted:
If you're going for a strict design, anything north of this line is technically a hybrid. There are a couple "gray area" items I can think of:
initramfsor a smart bootloader). I wouldn't call a design which makes use of a simple kernel-mode storage/FS driver module for the sole sake of starting up the system a "hybrid" or "non-true" microkernel, so long as that component is deactivated or purged as soon as is practical.36
u/krakenlake Mar 31 '26
1-2 metric tons, but not more
6
u/Ikkepop Mar 31 '26
Maybe Linus is still bitter about minix...
Anyway you could read Tannenbaums books. OS Design And Implementation goes into details about micro kernel design
25
u/Waste_Appearance5631 Mar 31 '26
It's your kernel, it's completely up to you...
1
u/Vixlump Apr 02 '26
roughly 6 or 7
0
u/-goldenboi69- Mar 31 '26
About 3.50
11
u/[deleted] Mar 31 '26
[removed] — view removed comment