On Tue, Dec 11, 2018 at 2:12 AM Christopher Havel laserhawk64@gmail.com wrote:
So, as I (poorly) understand it, the idea of a "microkernel" is that each process/thread/application (I'm not quite sure which) gets its own kernel, sort of, and that this kernel is somewhat modular in that it only provides what functionality the application needs from it.
not quite: a microkernel provides the absolute absolute minimum functionality to manage tasks and communication _between_ tasks. as a result they're typically extremely small, and usually are the only place where assembly code is needed.
L4ka ports of the linux kernel basically turn the entire linux "kernel" effectively into a user-space-like "application". you now have *three* levels: L4ka microkernel, linux "kernel", GNU/Linux OS.
the GNU/Hurd's microkernel inter-process communication is actually sufficiently abstracted such that processes may actually be run *off-machine*, by dropping in a full-on network-based RPC (remote procedure call) mechanism. hypothetically this would allow full migration of processes from one machine to another, without any interruption in the running of the user applications as they migrate.
l.