[Top][All Lists]

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

Re: Mach on L4

From: Michael Hohmuth
Subject: Re: Mach on L4
Date: 18 Jul 2001 12:09:35 +0200
User-agent: Gnus/5.0807 (Gnus v5.8.7) XEmacs/21.1 (Channel Islands)

Hi Farid, 

thanks for your follow-up.

Farid Hajji <address@hidden> writes:

> The Mach/L4 with associated Mach emulation library Okuji and I were
> thinking about are closely modelled after Lites and its emulation
> code. 

I don't understand that remark.  Can you go into a bit of more detail?
What is Lites' emulation code like?

> Porting Mach to L4 is certainly no easy task (no pun intended). Just
> as you described, some issues like e.g. VM and Tasks/Threads could be
> in theory possible; [...]

Please note that L4's virtual-memory--management interface is very
different from L3's (much more low-level).  We do have a library that
implements L3's data space concept on top of L4, though, and that
might be used to implement Mach's memory management.

> Porting MIG or writing a new stub generator looks more intimidating
> though but the L4Ka people are currently experimenting with an IDL4
> compiler if I got that right.

For our Mach-IPC-on-L3 project, we just the unmodified MIG and
emulated everything MIG-generated stubs need.

Yes, using a different IDL compiler with a MIG frontend is an option,
but I guess that the Hurd uses many Mach-isms such as sending port
rights for various Mach-kernel resources that one would end up
emulating anyway.

BTW, we at TU Dresden also have an IDL-compiler project -- DICE --,
and I think right now it is more advanced than Karlsruhe's IDL4.  Have
a look at <URL:http://os.inf.tu-dresden.de/~ra3/DICE/>.

> What makes this project difficult is the lack of experienced hackers
> right now: Some people are somewhat acquainted to Mach and others
> may have enough L4 knowledge, but finding people with expertise in
> both areas is quite difficult.

This might be an argument in favor of getting rid of all Mach
dependencies quickly, without going through Mach emulation first.

Just a thought: How about introducing a kernel-abstraction layer to
the Hurd first?  As a tactical goal, port the Hurd to Unix as its
underlying ``microkernel'' while keeping it working on Mach.  This
refactoring should yield a Hurd that can easily be ported to other
kernels such as L4, and you don't need people acquainted with both
Mach and L4.

> > [ Mach-IPC emulation library for L3 available for the asking ]

> That would be great! The more example code we can study, the better.
> If you could make your work available, this would help us tremendously.

OK, I made it available at

This code makes use of some L3 libraries.  This shouldn't be a problem
for you (you don't want to *run* this code, do you?), but you can
still find the libraries in

Please keep in mind that this is *old*, unsupported code, written for
old systems with strange interfaces by young inexperienced
programmers. ;)

> BTW, do you have some teaching material about L4-API like sample
> root tasks, libraries etc (besides L4Linux)? This could help L4-newbies
> to get started more rapidly.

Ouch, don't touch there, it hurts!

Yes, we do have a number of interesting applications and libraries
(like the data-space library I mentioned).  My colleagues have been
working on a very nice development environment with all kinds of
libraries and facilities to launch L4 applications from within
L4Linux, but we haven't released this stuff yet.  We definitely plan
releasing it, but we don't have a schedule right now.

I will bring up the release issue at our next management meeting, but
it may take some weeks to get anything into a releasable state.

As for teaching materials, I'm afraid we have nothing short of some
manuals.  The best beginner's manual might be UNSW's L4 User Manual
<http://www.cse.unsw.edu.au/~disy/L4/MIPS/l4uman.ps.gz>.  This manual
is for the MIPS version of L4, and there are some API differences, but
it is still a gentle introduction to L4's basic mechanisms.

If I find some time, I will add a collection of introductory
documentation to the generic L4 webpages at

address@hidden, address@hidden

reply via email to

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