DragonFly kernel List (threaded) for 2003-10
Re: Microkernel architecture?
:I have a question: since so many of this new OS's features are commonly
:found in microkernel-based systems, why isn't DragonFly being planned as
:a microkernel design instead of a monolithic kernel with a few
:microkernel tricks? Or is DragonFly microkernel-based?
'microkernel' is a badly misused term. While it is theoretically
possible to build a microkernel, actually making it do useful things
requires a level of integration that is fairly difficult to achieve
in a microkernel design.
What we can do is move the bottomost layers, primarily device drivers,
the networking layer, and filesystems, towards a microkernel-like
message-passing design. The KLD mechanism is capable of dynamic loading
this layer. Even so there are still a large number of heavily
integrated structures which are simply passed by reference, such as
'struct ucred'. There are dozens such structures and it is the
existance of these structures that makes it unlikely that the
microkernel aspects of the system could be extended much beyond what
we have already contemplated for DragonFly.
Nor would I particularly want to try. I see no advantage at all in
trying to convert the system wholely to a microkernel design, other then
to slow it down and make the source code harder to understand :-)