[Top][All Lists]

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

Re: vk_l4 -- CVS Setup

From: Christian Ceelen
Subject: Re: vk_l4 -- CVS Setup
Date: Thu, 25 Oct 2001 12:01:56 +0200

> UVM is Mach-VM developed further. UVM replaced Mach-VM recently in
> the *BSDs, resulting in substantial performance improvements w.r.t.
> memory access. I'm just mentioning it, to show that UVM is being
> heavily used in real-world systems with very good results.
> I'll write more on UVM here as soon as I'm through with first-reading
> of the code in NetBSD and the corresponding research papers ;)
> Meanwhile, you may want to have a look e.g. at the public (kernel)
> interfaces of the UVM system in e.g. NetBSD sources under:
> /sys/uvm/uvm_extern.h. Ich can mail you this file directly, if
> you can't get it easily.

Where could I find these research papers?

> So you need to ask a nameserver on a well-known port resp. task/threadID
> for the actual port resp. TID of the server that you want to contact.

The nameserver TID could be set at boot up. That's no problem at all.
Either just push it on the stack of every first thread in an address
space or slightly modify the pager-fault protocoll. In SC/OS we solved
this by simply sending a special message (also using the 3rd dword) to
the pager (this ID could be obtained by l4_lthread_ex_regs on myself) of
a thread. The pager got the nameserver ID from the taskserver that
searched for a loadable module named "nameserver" in the
grub-module-list. After successful startup of this module the ID of this
new task is forwarded to the pager. Thus the order of the loaded modules
doesn't matter. Just something named "nameserver" is needed at boot up. 
The "ext2-FS" driver asks its pager for the nameserver ID and register
its service and export the mounted drive.

>    Put another way: this is the old chicken-and-egg problem ;-)

It is solved a little differently in Chacmos.

> 2. A vk-l4 nameserver would be useful to other personalities like l4linux
>    (modified) or anything else as well. Such personalities would like to
>    use L4 (or vk-l4) without having to boot the Hurd first, just to get
>    a nameserver. The responsibilities of the Hurd's nameserver (mechanism)
>    and the lower-level VK/L4 nameserver are distinct and serve different
>    purposes. I could expand more on this, but would prefer to postpone
>    the discussion of this for later.

Couldn't be the Hurd nameserver be extracted that far from the Hurd,
that it could already be used at startup time?

> 3. A vk-l4 nameserver would be extremely useful, when L4 will provide
>    network-wide unique TIDs. A L4 nameserver task would then provide
>    access to remote as well as local TIDs, so that we could contact
>    remote pagers, remote drivers and so on. Imagine booting one Hurd
>    using local disks and, say, L4linux using remote disks. This would
>    be possible through a network-aware L4 nameserver running on every
>    L4 node. [Well, I guess that the kernel would at least be called
>    L5 then ;)].

The nameserver could just translate the incoming TID to a local TID. I
see no need to put GUID into the Āµkernel. It would solve many problems,
but I think many more will arise therefrom.

>    Distributed, network-wide TIDs are not a new idea. This is basically
>    the same as what used to be NORMA/IPC in the Mach environment, but
>    which proved to be rather hairy. I don't know wether L4 will evolve
>    in this direction, but I could very well imagine some developments
>    there. The network communication parts will most likely happen to
>    be user-land anyway, but a network-wide L4 nameserver would still
>    be useful.

Agreed. That could be implemented at user-level. Without the GUID we
just have to build a proper protocol for this.

> There are other technical reasons that advocate spearating the Hurd's
> and a VK/L4 nameserver. One of these reasons is proper layering. The
> VK/L4 infrastructure resides one layer below every OS personality,
> including the Hurd. It would not be wise to mix layers here by using
> upcalls from L4 to the Hurd (or something else), just to name one
> example.

Is it possible to have more than on Hurd-nameserver within the same
local system? Or did i miss something here?



reply via email to

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