[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Mach on L4 (was Re: SawMill Multiserver vs. the Hurd)

From: Michael Hohmuth
Subject: Mach on L4 (was Re: SawMill Multiserver vs. the Hurd)
Date: 12 Jul 2001 18:42:56 +0200

Farid Hajji <address@hidden> writes:

> I won't object against implementing the mach server and associated
> emulation library (Okuji's idea), at least implementing the subset
> of the Mach-API used in the Hurd. 

In 1996, Sven Rudolph and I worked on something similar: A Mach
emulation library for the L3 microkernel, a predecessor of L4.  We
craved for a Unix environment on top of L3, and our goal was to port
Lites, a BSD single server for Mach, to L3.

We documented our findings in a term paper (I think it has been cited
in this forum before; see

Back then, our conclusion was that emulating Mach is very complex, and
porting a monolithic Unix kernel to the microkernel interface is
easier than transforming a Mach server to an L4 server.  Later in '96,
I and others went on to create L4Linux, a port of monolithic Linux on
top of L4.

That's why I liked the idea someone brought up on this mailing list
some weeks ago: Instead of starting to port the Hurd to L4, first port
Mach (a ``monolithic kernel'') to L4, and quickly get the Hurd up and
running on top of L4 using the resulting L4-Mach server.  Later, strip
the Mach server and/or reduce Hurd's dependencies to it to create a
lean system.

That said, however: Anyone who wants to start a new Mach-emulation
library might want to take a look at our L3 work.  We have a small
library that provides a subset of Mach' IPC primitives on top of L3
IPC, and we also support simple `mig'-generated stubs.  It is probably
impossible to get our software up and running on an L3 or L4 system
nowadays, but it might still be interesting to have a look at it.  I'd
be happy to make our source code available upon request.  Currently,
the code is BSD-licensed.

address@hidden, address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]