l4-hurd
[Top][All Lists]
Advanced

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

Re: Mach emulation


From: Gernot Heiser
Subject: Re: Mach emulation
Date: Sun, 12 Nov 2000 12:10:46 +1100

On Sat, 11 Nov 2000 21:36:00 +0900, OKUJI Yoshinori <address@hidden> wrote,

okuji> From: Gernot Heiser <address@hidden>
okuji> Subject: Re: Mach emulation
okuji> Date: Sat, 11 Nov 2000 18:01:05 +1100
okuji> 
okuji> > If what you want is hurd to be _fast_, then its a recipe for disaster.
okuji> 
okuji>   Did you really read my message?
okuji> 
okuji> I wrote:
okuji> > Mach emulation on L4 would be a good approach to realize how
okuji> > different L4 is from Mach and what problems lie in porting Hurd to
okuji> > L4.
okuji> 
okuji> Note that this project is just the first step, but not the final
okuji> stage. My intention is to migrate to L4 _gradually_ instead of
okuji> _immediately_. The latter is not practical at all.

But that is my point. If you are starting off with a Mach emulation in
L4, and then try to eliminate Mach-isms gradually, you're almost
guaranteed to end up with a system that's as inefficient as the Mach
one.

L4 isn't faster than Mach (only) due to a better implementation. It's
because of more appropriate, and _minimal_ abstractions.

Sure, you can emulate Mach IPC on L4. You can emulate Mach tasks on
L4. And you can then, once things are working, try to eliminate some
of the redundant code. My point is, it will be too late then, as too
much of the hurd code base will be dependent on Mach abstractions.

This is essentially the reason why microkernels were considered a
failure in the early 90's. People tried to build u-kernels using
evolution from existing kernels. The results were Mach and other slow
systems. Liedtke showed that you need to start from scratch, as the
evolutionary approach won't converge against a minimal system.

It is my belief that an evolutionary approach to porting will produce
the same result.

What I'm saying is that for the project to succeed, the following
approach should be taken:

 0) understand the L4 philosophy and API.
 1) understand how the hurd API can be mapped onto the L4 API
    _directly_, without any reference to Mach
 2) start implementing (reusing existing (Mach-based) code wherever
    possible, without compromising the design.

I'd be keen to see it done. I'd be happy to help, mostly by
supervising/supporting local L4-literate student(s) working on
it. We're producing 1-2 dozen students a year who have written a small
OS on top of L4 (see http://www.cse.unsw.edu.au/~cs9242). I've
actually offered Hurd/L4 as a honours thesis topic here. So far no
bites, but doing it as part of a world-wide open-source project might
help attracting a good hacker.

Gernot


Gernot Heiser                ,--_|\   School of Computer Sci. & Engin.
Phone:  +61 2 9385 5156     /      \  The University of NSW
Fax:    +61 2 9385 5533     \_,--._*  UNSW SYDNEY NSW 2052, Australia
E-mail: address@hidden        v   http://www.cse.unsw.edu.au/~gernot



reply via email to

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