DragonFly kernel List (threaded) for 2003-07
Re: You could do worse than Mach ports
:And that seems to be about it. The step where you replace kernel components with servers and go to a full microkernel design never seems to happen, or it happens so slowly nobody notices.
:I think that Matt's got an idea here that, because it's approaching things from the side of building a "microkernel" inside an existing system rather than the other way around, has the potential of ending up with something that has decent performance *and* gives you the advantages of a microkernel design... because when you hit that breathing space, you're already at the finish line.
I have to say that I can *easily* envision the work involved in taking
DragonFly to that goal. I don't think it makes sense to turn everything
into a message port and message... shifting the guts of the VM system into
userland would not be a good use of resources, but we can get damn close
with already stated abstractions... certainly close enough that those
people interested in going all the way would be able to construct
port mechanisms to do it.
The key feature that will make it possible will be the DEV conversion
over to VM object lists from user addresses. The moment we no longer
have to ship user addresses and struct proc pointers around the I/O
subsystem is the same moment we can *theoretically* get those messages
into a user mode context.
User mode is not a big deal. It really isn't. All it really is is a
private MMU context, that just happens to be a bit more expensive to
switch into and out of, and which we just happen to feel free to page
in and out at will.