[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.
--
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.