[Top][All Lists]

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

Re: Redesigning the Hurd form scartch? (was: Re: Mach emulation)

From: Farid Hajji
Subject: Re: Redesigning the Hurd form scartch? (was: Re: Mach emulation)
Date: Tue, 14 Nov 2000 23:29:12 +0100

> > Other servers that come to mind are filesystem translators like
> > ext2fs and ufs. They too could run on top of an existing guestos,
> > using raw partitions through generic read(2)/write(2)/... posix
> > calls (that will have to be added to libmom).
> But this seems completely backwards, in two ways:
> 1. Hurd ext2fs does *not* access any raw partitions. It uses ipc to
>    communicate with a "store" (which is often a translator attached to
>    /dev/something, which in turn uses a Mach device to access a
>    partition). To move to L4, one should port the translator providing
>    raw access to a partition; ext2fs should not need anything more
>    than a recompile. One also needs to port libstore.
Yes and no. I didn't made up my mind yet on this. For efficiency reasons,
having the filesystem translators access a raw partition directly may
be a good idea. OTOH, adding libstore (storeio) layer does add more
flexibility. I'll have to think more about this when I reach this part
of the Hurd (redesign).

> 2. Adding posix-style calls to libmom seems contrary to everything you
>    have said about "libmom" earlier.
No, this is not what I mean. posix-style calls belong in a libunix
emulation library, that just happens to use libmom to access the Hurd
servers and the underlying ukernel to provide its services. posix-
or unix calls are just a specific os-personality that does have nothing
to do with libmom. Actually, I see the Hurd as a set of servers and
protocols on top of which libunix and lib{otheros} can be built. There's
no reason in being locked up with only one OS personality.

You're right feeling uncomfortable when core servers/translators of
the Hurd use posix calls (a.k.a. libunix) to access what is supposed
to be only accessed through libmom [e.g. ext2fs the raw partition with
read(2)/write(2)]. I don't like the idea either, and I would also prefer
a clean layer separation, somewhat like this:

     5. applications using unix, otheros...
     4. libunix or lib{otheros}
     3. hurd severs and protocols
     2. libmom
     1. ukernel [or virtual machine provided by a guest-os]
     0. raw hardware

     A kind of OSI-Layer diagram for the Hurd ;-)


Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | address@hidden
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
Murphy's Law fails only when you try to demonstrate it, and thus succeeds.

reply via email to

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