bug-hurd
[Top][All Lists]
Advanced

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

Re: L4Mach or Refactor Hurd Servers?


From: Ian Duggan
Subject: Re: L4Mach or Refactor Hurd Servers?
Date: Mon, 12 Nov 2001 04:29:25 -0800

> I hope there's a natural L4 way to do "wait for the first out of n
> events", and that is what should be used for select. I don't know
> what, but figuring that out is important when designing the libports
> implementation on L4.
> 
> I guess one needs a to first send an L4 rpc to each server to start
> the select operation, and then issue a single L4 receive call that can
> get the reply from any of the servers (and finally, perhaps cancel the
> operations we're no longer interested in).
> 
> My apologies if all this is obvious to everybody but me.

It certainly didn't seem obvious to me until now. This is pretty much
what I was thinking might work as well. Whether or not the initial
notifications need to go to the actual servers, I'm not sure. The basic
implementation of select would be:

1) Register interest in events with something (central server, L4
thread, other servers)
2) Wait in loop to consume incoming events.

I think you might need some helper threads to watch over things and do
the cancel operations and such.

I'm new to authoring L4 servers, so this is just a guess for me.

> > I'm unfamiliar with Doors. I found a few pages about an old "Doors on
> > Linux" implementation that was abandoned for "general lack of interest".
> > Where could I find more info on this?
> 
> I'm not terribly familiar with it either, and it was a little hard to
> dig up references. Appearantly, the keyword is "Spring", not
> "Solaris". I found an overview of Spring
> http://java.sun.com/people/kgh/spring, including an introduction to
> doors, and some further references. I quote it below:

[snip]

> It seems a little similar to Mach ports (not surprising), but
> syncronous (like L4), and with some automagic thread-juggling, which
> seems to be the novel part of it. There's a flag DOOR_UNREF that can
> be passed to door_create, that looks like (from the door_create(3X)
> man page) it requests a no-senders notification.

Definitely sounds like something work looking over. I dug around some
and found this document describing the Spring OS system (Sun research
kernel). Spring wasn't adopted, apparently because Sun's customers were
pissed off about the pains of switching from SunOS to Solaris, and
weren't about to accept another switch. Google gave stuff when searching
for "spring os", "spring doors", and "linux doors".

A key thing to note, it looks like Doors is similar to Mach ports in
that it is handled in the kernel. We could of course try to mimic that
with servers, but that is at least one important difference.

http://www.sun.com/research/techrep/1993/smli_tr-93-14.pdf

-- Ian

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ian Duggan                    ian@ianduggan.net
                              http://www.ianduggan.net



reply via email to

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