There are several ways to achieve Unix emulation, but for the sake of having access to a Unix environment as soon as possible (which would also have the advantage of replacing the somewhat ,,esoteric'' L3 development environment), we have been considering porting an existing Unix single server from another microkernel to L3.
We ultimately want to make our results available as free software. Hence, only free, ,,unencumbered'' systems are considered. We have been looking at:
We have been focusing on Lites for several reasons: It was the first single server system we were able to install, it can run an existing Unix base system (e.g. NetBSD) almost without any modification, and it seems to be relatively well-supported.
In this reoprt, we will first compare Mach with L3. Later, we will investigate how Lites has been implemented on Mach. We will identify common and different designs employed in these microkernels.
Beginning with this analysis, we will try to develop a strategy for porting Lites to L3: Which Mach facilities should be emulated? Which parts of the Lites kernel should be rewritten or changed?
Throughout this document, certain typographic conventions will be used:
Emphasized text will be used to introduce new concepts.
Typewriter font marks program code.
This special font will be used to emphasize C function names and type class names. Variable and object names will be written in normal font, however.
We would like to thank Prof. Hermann Härtig and the real-time operating systems group at TU Dresden for their support, Jochen Liedtke from GMD for useful dicussions, Bryan Ford from Utah University for his advice, and Jean Wolter for proof-reading this document.