ipc- where to send message(ipc).

Jork Loeser jork at os.inf.tu-dresden.de
Wed May 26 10:23:42 CEST 2004


Manish,

(You were asking both the list and me, so I repeat here)

> I am new to l4. Is it true that the allocation of tid is given to user. How
[...]


Kind of. As Espen said, the Microkernel provides no name space (except its
namespaces for kernel resources such as threads, tasks and memory).
This must be done at user level.

*One* scheme is to have names ("strings")  for servers, and identify
servers (their offered services) by these names.  Then servers have to
register their (string, thread_id) pair at a nameserver, and clients have
to ask the nameserver for the (string -> thread_id) translation. Of
course, the nameserver must somehow be found. In the case of DROPS (our
OS on top of L4), this nameserver is registered at rmgr, and rmgr has a
fixed and well-known threadid. Thus, name resolution works as follows:
The client asks the rmgr (threadid 4.0 per definition) for the threadid of
the nameserver, and then the nameserver for the threadid of the target
server. The rmgr does not have the flexibility we need for dynamic name
registering, therefore the nameserver.

*Other* policies could for instance be one hierarchical namespace,
resolved by a root nameserver and client nameservers. The root nameserver
(and the client nameservers) could provide mounting other namespaces. This
way one could construct a namespace comparable to the UNIX filesystem
namespace. Drivers could per definition be found under a name like
'/dev/*'. A user-land file system could provide the part of the namespace
for /home/, another for /proc/, and another for /usr/.

You should watch our seminar page, in a couple of weeks some slides about
namespace issues should show up.


Regards,
Jork





More information about the l4-hackers mailing list