Does Haiku use a micro kernal?
Haiku uses a hybrid microkernel.
Hey man, good to see you again mate
So what is a hybrid microkernel? Is it supposed to be much faster than Linux kernel?
Do you know what Hybrid MicroKernel is?
A microkernel in it’s more ortodox form is a kernel reduced to the minimum where only IPC, memory management and a few other things lies in kernel space. All other things run in user space (drivers, filesystem).
On top of it the servers supply all the services needed to run user apps.
An hybrid microkernel while mantaining this design, for performance reasons moves some stuff in kernel space, for example in Haiku other than drivers also the network stack live in the kernel. The idea is taking good sides of both worlds, achieving high stability and modularity but avoiding performance bottlenecks.
However, nowadays the difference is much less evident than it was in past, especially if you compare it to the so called modular kernels. The main difference lies into the bottom-up design.
Please korrekt me if i am wrong, but linux kernel is supposed to be faster… since monolitic kernel are “normally” faster.
The main advantage of a microkernel is, that the system should be “more stable” since more Software parts which can crash … are running in the user space.
Since, with microkernel-design you need more “switches” between user and kernelland it is even slower than a monolitic kernel.
Linux isn’t a monolithic kernel, it’s a modular kernel which can load modules on the fly. Those days there’s not really much technological difference between most kernels. The main difference is that Haiku has a top-down design which is integrated with the userland servers, that’s where the microkernel design comes up.
I don’t consider Haiku a microkernel at all. “hybrid”, maybe, but it is pretty far on the monolithic side. Ok, maybe just a little less than Linux now that they moved graphics driver back in the kernel there.
Haiku however has a modular kernel, which means several parts are “modules” which can be loaded and unloaded as needed. And there is a stable API for these which makes it possible to add 3rd party modules to an existing kernel (where Linux has more of a "let’s recompile everything approach to this).