1 Introduction

1.1 Motivation

1.1.1 Why Porting a Unix Single Server To L3?

TUD's Operating Systems Group is doing various projects based on microkernel operating systems, currently L3, and, perspectively, L4 and other kernels. In order to provide a microkernel based environment for research, development and day-to-day use, writing a Unix emulation running on top of the microkernel is an important strategic step towards our goals.

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.

1.1.2 Which Single Server Project Should We Start With?

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.

1.2 How To Tackle the Project?

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?

1.3 Typographic Conventions Used in This Document

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.

1.4 Thanks

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.

Michael Hohmuth, Sven Rudolph
April 9, 1996