The objective of this work has been to advance our effort of porting the Lites single server to the L3 microkernel. We discussed various steps required to carry out the port, and the problems connected to them.
The IPC and port emulation library works, but needs debugging and profiling. It proved tricky to emulate all facets of Mach IPC, mainly because of a lack of documentation (most Mach programmers seem to use MIG-generated stubs these days and don't care about the trifles of the underlying IPC system), and no doubt there are bugs in there.
Because of the perceived complexity of the Mach interfaces, we decided not to extend this work beyond a study of the feasability of porting a Mach server to another microkernel.
We implemented an emulation environment to make IPC-based Mach servers run on L3, and studied the performance which can be expected from such a framework. We found that it is possible to achieve RPC performance similar to Mach's.
In retrospective, the decision to use a Mach single server to start a porting effort towards a Unix single-server system on L3 proved questionable.
There are indications that it is well possible and feasable to port a monolithic Unix system to a microkernel [17]. Compared to a port of Lites from Mach to L3, this approach may have some advantages:
Consequently, our group started a project to port the monolithic Linux kernel to the L4 microkernel.