Hi,
On Thu, Jan 20, 2005 at 07:24:34PM +0100, R. Koot wrote:
On any micro-kernel based OS you will need some kind of Name Service to
find other services. (Task will do this in HURD, correct me if I'm
wrong).
In the Hurd, filesystems serve as a hierarchical naming service, once
the system is up and running. However, during bootstrap, the initial
servers (i.e. those listed as GRUB modules) have to somehow know each
other. The initial L4 servers (sigma0 and the rootserver wortel) have a
fixed pre-defined thread ID (see `booting.tex'). Further Hurdish
initial servers (physmem, deva, root fs) have a thread ID which is
defined at boot time by wortel (in wortel.c::setup_components ()).
Once the root filesystem is running, it may be used as a naming service.
Still, the initial servers listed above are not registered in the root
filesystem. Rather, new tasks learn about them (i.e. get certain
capabilities from them) when they are created (see the `exec' section in
`posix.tex').