[Patch] Bochs with 4M superpages runs L4Ka

2000-10-18 Thread Farid Hajji

Hi,

[Kevin: would you please have a closer look at this patch? I'm not
 an x86 expert and this is at best a premature first try at it. -Thanks]

the following patch:

  http://home.kamp.net/home/farid.hajji/l4ka-bochs/

enables 4 MB superpages in bochs. With this hack,
you can boot (among others) L4Ka+root_task without
problems on your favorite workstation ;-) (at least
I hope so!).

Please refer to the file SUPERPAGES in the patched
bochs sources for a quick overview. General instructions
and screen shots can be found on the above URL.

BEWARE: That hack is very alpha and not tested at all!
Don't rely on it too much for now. At least, it won't
destroy your system, since everything is emulated in
software. Bochs may be slow (it is!) but at least it's
more secure than plex86 or vmware and it runs on non-
intel boxes too.

If you find any bugs (e.g. bochs panics()), please try to
track them down and fix the sources as far as possible.
It is easier than it sounds because bochs sources are
very clear and because you can insert printf()s everywhere.
Try this with a real processor!

Thanks,

-Farid.

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


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: first experiences with l4ka on a real pentium

2000-10-18 Thread Farid Hajji

> > I didn't try anything else, because I was not able to compile 
> > Dresden's L4Linux on FreeBSD (I used l4ka.org's glinux binary).
> > At least the root_task seems to work and this is very good for now.
> > Based on root_task, L4 servers can be build, probably with flux' oskit
> > (which compiles w/o problems on FreeBSD too!). The we can start thinking
> > about libmom and porting the Hurd to L4Ka.
> > 
> Yes, this is excellent news.
> 
> But why do you feel the OsKit is necessary?  It seems that with a working
> L4KA it should be possible to follow the example of the hello-world template
> to produce servers of our own.  Or perhaps it's just easier with OsKit?
> I must admit I haven't taken the time to master that beast :)
Of course, the first servers would use the bare L4 IPC calls, but somewhere
down the road, you'll want to access a disk and here comes OsKit to your
help. The OsKit libraries provide plenty Linux and FreeBSD device drivers,
filesystems etc.. You don't have to maintain this widely known codebase,
as long as OsKit developers do it and the OSKit libraries are not restricted
for in-kernel use only. They are plain normal libs that you would link to
your L4-servers, overriding functions as necessary. It seems like a quick
way to put up an OS personality.

Porting the Hurd is something else. Here the libraries are already present
(glibc and all other hurdish libs.). Traditional gnumach includes some old
device drivers, but that is expected to improve with oskit-mach. Porting
would mean to add L4 sysdeps to glibc and to implement device drivers as
user-level tasks that _may_ include code from OsKit.

We could start this right now, but there's a drawback. Without a proper
abstraction layer between the Hurd components (mainly glibc) and the
microkernel, the same work would have to be repeated again for each other
microkernel as well. That was the reason I'm interested in libmom or
a replacement thereof.

Thanks,

-Farid.


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


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Porting the Hurd to L4 (glibc dependencies, droppingglibc?)

2000-10-29 Thread Farid Hajji

Roland,

> Look, whatever you want to hack on is fine with me.  If you contribute
> changes to Hurd and/or glibc that are clean and do not have negative
> consequences for the ways we are using the code now, then we will probably
> accept your changes.  But the development priorities of the Hurd project
> per se are very unlikely to go in such a direction, and I am not interested
if you would let us participate to your concepts of current and future
development, such discussions would be more effective. We can't guess
what you're planning to do on short or middle term if you don't post
your ideas somewhere :(.

BTW, porting glibc to *BSD is not on my priorities list either, as this is
not what I'm currently looking for nor interested in. There is enough
trouble hacking up L4 servers already, without having to port glibc. I'm
not having the glibc expertise to do so anyway.

> in a whole lot of chatter about the merits of various wildly different
> directions I don't plan to go any time soon.  Less talking and more hacking.
Look, I didn't want to attack you or whoever wrote up glibc, so there's no
need to reply like this. Basically, you suggest nothing less than to shut
up and do our own non-approved stuff without asking for feedback from the
list. This is asking for a split in development :-((( Sad perspectives...,
but splits are necessary sometimes.

Okay, this discussion is obviously getting us nowhere. If anyone is intersted
to help me with what I suggested, please contact me on PM. We could try
to do "less talking and more hacking" in this direction.

-Farid.

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


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Porting the Hurd to L4 (glibc dependencies, dropping glibc?)

2000-10-29 Thread Farid Hajji

> > Is it _absolutely_ necessary to use glibc with the Hurd?
> Why on earth would one want not to?  The Hurd developers have no interest
> whatsoever in using anything but the GNU C library for the GNU system.
The Hurd is IMHO more than just a simple kernel replacement of a glibc-
based system. Due to its flexibility, other applications like host-os
subhurds are possible too. Just because it's 'oolitically correct' to
stick to glibc doesn't mean that we _must_! Other GNU programs are not
dependent on glibc either (thank goodness!).

Another reason I'm having problems with glibc is very simple: I can't
figure out how to compile that beast on *BSD systems yet (or BTW any
non-Linux system) even at all or without _much_ contortions :-( But
this is just one reason. The main interest here is to
1. isolate the ukernel interface of the Hurd from the more generic
   C library so that it can be ported _separately_ and more easily
   to other ukernels or host-os(s).
2. obtain the hosted sub-hurd at a very low cost (in terms of efforts).

-Farid.

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


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Porting the Hurd to L4 (glibc dependencies, droppingglibc?)

2000-10-29 Thread Farid Hajji

> Anything that can be done to make the HURD available on more
> processor architectures would be a good thing. But my impression is
> that the work the needs to be done is to port the HURD to OSKit Mach
> and to port OSKit Mach to other architectures.
Then you would still be stuck with Mach which we try to overcome. L4 is
completely different from Mach and I'm wondering how you plan to port
a Mach variant to L4 (or even implement this sub-hurd hosting on foreign OS)!

> Since the HURD is a GNU OS I would suggest that glibc is going to be
> an integral part of the system for anyone wanting to run it.
I have nothing against keeping glibc as main official C library for the Hurd.
I have just suggested to keep the dependencies of the Hurd form glibc to a
bare minimum, just like other GNU programs that are _not_ dependent on
glibc as well (!!). Having the option to choose betwenn glibc and other
(POSIX-compliant?) C libraries cannot be that bad, can it?

> Nic Ferrier

Regards,

-Farid.

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


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Porting the Hurd to L4 (glibc dependencies, droppingglibc?)

2000-10-30 Thread Farid Hajji
 fit below
   (or inside) libvk-mach but has higher ramifications too and cannot
   simply be put aside.

   I'll try to slowly chew myself into libports but if you could
   enlighten me on the purpose of it, it would be much faster.

   -> If we don't use mach anymore (except via libvk-mach), what parts
  of libports would be _really_ needed (architecturally)? This seems
  like one of the most important porting decisions right now.

   -> At first sight (I didn't analyze the code in greater detail yet, so
  I may be plain wrong here) libports _seems_ to hinder a lean
  L4-style ipc thus adding a lot of ipc overhead which happens so
  slow the Hurd down anyway. I'm I right to guess that libports
  is mainly a hack to get an interface to the complex intricacies
  of mach? How much of libports _is_ actually hurd, and how much
  is mainly struggling with mach? I'd _really_ like to drop libports
  on non-mach libvk hurd's if at all possible, or at least replace
  it with a minimum non-mach subset.

3. Once the libports issue is resolved, it's time to look at the ipc
   protocol between the Hurd servers (and their libraries). The protocol
   is mainly defined in hurd/*.defs, which is IMHO [one of] the most
   interesting part of the Hurd.

   Of course, .defs are transformed by mig into mach stubs and a port
   of mig would then generate libvk stubs instead. Porting mig was
   already discussed here and it was even suggested to have a look
   at IDL compilers or somesuch. Wether this is overkill or not, it
   is finally irrelevant. Let's assume that we port mig to generate
   libvk stubs in a fairly straightforward manner [it must still be
   checked wether this is possible. It all depends on what the libvk
   API would look like].

   Now I'm wondering how to map such mach stubs (which ultimately all
   end up sending or receiving a message from a mach_port_t) cleanly to
   a still-to-be-defined libvk ipc-API. If we decide to abandon the
   asynch IPC model of mach in favor of the more efficient sync ipc model
   of L4, I'm wondering what we should do about the routine/simpleroutine
   pairs often found here.

   One example: the auth server defines a routine auth_user_authenticate()
   which inherently returns a value (newport as a mach port) and in addition
   to this a simpleroutine auth_user_authenticate_reply() which sends a
   non-overlapping set of data too. I didn't yet figure out why both
   interfaces are needed and how they are exactly used (probably deep
   inside glibc/hurd???).

   Completing the handshake between auth (or btw any other server) and
   its client(s) need not be asynchronous in nature. Basically, a thread
   in the client could block on ipc while waiting for a reply from the
   server and the server could provide a few service threads to receive
   sync messages and service them entierely [receiving on a port-set
   in libvk-mach, select() or pthreads in libvk-{guestos} and ??? with
   L4 lthreads in libvk-l4]. Basically, we need to rethink the way
   how hurd servers are being ipc-ed to in general.

   -> Has anyone spent some time thinking about this? Please share your
  thoughts with us.

4. Other Hurd libraries, bootstrap process and a lot more issues I didn't
   considered yet. I'd prefer to gradually proceed and concentrate on a
   few well defined goals.

   -> If there is anything fundamental there which contradics with 1., 2.,
  or 3., please let me know ahead of time.

As already said, because I can't compile glibc on my FreeBSD box, I'll
try to modularize the work by compiling one bit at a time. Starting with
libvk-freebsd, other parts like the ominous libports and certain servers
could be compiled against the guest-os libc if they are somehow using
POSIX-ish C API. Even without any libvk-* concept yet, I was able to
compile libihash [spin_lock() replaced by pthread_mutex_lock() of
FreeBSD's libc] and libidvec [libshouldbeinlibc/idvec* files, having
to tweak a little without shadow.h and the non-reentrant getpwuid()s],
so there's hope after all ;-)

Any comments, suggestions and help appreciated.

Thanks,

-Farid.

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


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Porting the Hurd to L4 (glibc dependencies, dropping glibc?)

2000-10-29 Thread Farid Hajji

Is it _absolutely_ necessary to use glibc with the Hurd?

It seems that many hurd servers and libs are using glibc like
any other C library except for:

  /mach
  /hurd
  /sysdeps/mach

and of course MiG-generated stubs in /*/.deps plus a few places
that use mach_*() syscalls directly. There are some few more dependencies
which would have to be taken care of.

To help porting the Hurd to other systems (not only to L4), it would be
a good idea to:

1. retrofit all hurd specific glibc functions into a separate library
   (let's boldly call it libhurd). The reason for this is to reduce
   the dependency of the Hurd from glibc, which is not available on all
   systems.

2. clean up the Hurd libs and servers, so that they use (the rest of) glibc
   rather conventionally. The goal is to be able to link the Hurd against
   libc's of other OS (plus a ported [part of] libhurd), thus "borrowing"
   features of existing host OS kernels like threads, tasks, etc... or
   using ukernels like gnumach and L4 directly.

Why?

1. The Hurd could be built on non-glibc based systems and run on top
   of these (as sub-hurd). I can imagine running the Hurd on a FreeBSD
   box, where the Hurd uses dedicated partitions (or vn(4) files) and
   where it is linked against FreeBSD's libc (and an adapted libhurd[-bsd],
   see below).

2. Misc. abstractions that the Hurd needs (threads, tasks, etc...) could
   be either implemented by a dedicated microkernel (gnumach, L4, ...)
   or could be "borrowed" from an existing libc of the hosting OS.
   In the above example, threads and processes etc. would be provided by
   FreeBSD kernel+libc.

3. The Hurd could be run in "demo-mode" inside existing OS, just by
   borrowing most of the local libc/kernel services. This way, more
   users would be able to run the Hurd and get first experiences with it.

4. Porting the Hurd to non-x86 architectures could be a two step process:
   First run the Hurd as sub-hurd on an existing host OS of that architecure,
   then port L4 (or some other small ukernel) to that platform and relink
   libhurd[-L4].

To achieve this goal, a lot of work is needed (or course!). If we decide
to give it a try, I'd suggest the following path:

1. First of all, move all hurd glibc functions into a separate library
   (libhurd). Later, this library will have to be split into two
   parts: A hurd generic part that is independent of Mach or any other
   ukernel, and dependent parts (one for gnumach, one for L4, one for
   each supported host OS which calls that OS's libc directly to "borrow"
   abstractions like threads etc...).

2. Examine the Hurd sources carefully, looking for glibc idiosyncracies,
   that are not available on other libc's. Revert to the least possible
   interface common to most/all libc's of the host OSes (at least Unix-
   like OSses for now).

3. Remove the Mach dependencies in the Hurd sources themselves, by replacing
   them with calls to libhurd[-mach]. As was already suggested by others,
   mig could be modified to produce more generic stubs to libhurd rather
   than libmach.

If I could only find a way to cross-compile the Hurd, glibc, mig and
gnumach on FreeBSD, I'll try to get the Hurd run on FreeBSD as sub-hurd
first and will start working on an L4 part next. The more help I'll get,
the better :-)

Any suggestions?

Thanks,

-Farid.

P.S.: I don't have anything against glibc. Dropping glibc dependency from
  the Hurd is purely an architectural issue that would help support
  the notion of "host OS running sub-hurd" as well as to help isolate
  the current Mach dependencies of the Hurd.

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


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Problems cross-compling glibc

2000-12-07 Thread Farid Hajji

Hi,

cross-compiling glibc (new cvs snapshot) breaks with the following
error message (while making $(GLIBC_BUILDDIR)/elf/dl-sysdep.os):

gmake  -C elf subdir_lib
gmake[2]: Entering directory `/users/farid/Devel/GNU-HURD/gnu-hurd/glibc/elf'
i586-pc-gnu-gcc ../sysdeps/mach/hurd/dl-sysdep.c -c -O2 -Wall -Winline 
-Wstrict-prototypes -Wwrite-strings -march=i586 -Wno-parentheses  -fomit-frame-pointer 
-fPIC-I../include -I. -I/users/farid/build/build.glibc/elf -I..  -I../hurd 
-I/users/farid/build/build.glibc/hurd/ -I../mach 
-I/users/farid/build/build.glibc/mach/ -I/users/farid/build/build.glibc 
-I../sysdeps/i386/elf -I../crypt/sysdeps/mach/hurd -I../crypt/sysdeps/mach 
-I../sysdeps/mach/hurd/i386 -I../sysdeps/mach/hurd -I../sysdeps/gnu 
-I../sysdeps/unix/bsd/bsd4.4 -I../sysdeps/unix/mman -I../sysdeps/mach/i386 
-I../sysdeps/mach -I../sysdeps/i386/i586 -I../sysdeps/i386/i486 -I../sysdeps/i386/fpu 
-I../sysdeps/i386 -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/ldbl-96 
-I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/unix/bsd 
-I../sysdeps/unix/common -I../sysdeps/unix/inet -I../sysdeps/unix -I../sysdeps/posix 
-I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic   -D_LIBC_REENTRANT 
-incl!
ude ../include/libc-symbols.h  -DPIC -DSHARED   -o 
/users/farid/build/build.glibc/elf/dl-sysdep.os
../sysdeps/mach/hurd/dl-sysdep.c:255: conflicting types for `_dl_sysdep_start_cleanup'
../sysdeps/generic/ldsodefs.h:486: previous declaration of `_dl_sysdep_start_cleanup'

This didn't happen a few days ago.

farid@bsdevil:~/build> grep dl-sysdep.c glibc/sysdeps/mach/hurd/CVS/Entries
/dl-sysdep.c/1.54/Fri Dec  1 05:43:04 2000//
farid@bsdevil:~/build> grep ldsodefs.h glibc/sysdeps/generic/CVS/Entries
/ldsodefs.h/1.20/Wed Dec  6 23:18:46 2000//

-Farid.

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


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



netfs questions

2000-12-07 Thread Farid Hajji

Hi,

I have two questions about using netfs:

1. what is supposed to go in the 'struct netnode' of
   the 'struct node' defined in ?

   If I understand this right, struct netnode must be
   defined by the user and is supposed to hold protocol
   specific stuff of each node. Would a simple

  struct netnode { };

   suffice? (it compiles okay, but is it right?)

2. what is supposed to be put in a root node, suitable
   for netfs_root_node?

   Asked more specifically, how can an empty directory
   containing only '.' and '..' be inserted in a netfs_root_node?
   This is what I'm having right now:

   /* in main(): */
   netfs_root_node = make_rootnode();

   /* whereever: */
   struct node *make_rootnode(void) {
 struct node *np;
 struct netnode *nn;

 nn = malloc(sizeof (struct netnode));
 bzero(nn, sizeof (struct netnode)); /* XXX */

 np = netfs_make_node(nn);

 /* create an empty directory in np */
 /* np->nn_stat = { ?????? } */
   }

Thanks,

-Farid.

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


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Strange behaviour after cross-compiling

2000-12-16 Thread Farid Hajji

> > 3. commands can be used as usual (e.g. ls works etc...),
> >but as soon as non-dumb screen capabilities are needed
> >(including pipes!), I get the following error message:
> > 
> > bash [36: 1] tcsetattr: (ipc/mig) server type check failure
> 
> That means the message that was send by the user is rejected by the mig
> generated code on the server side. This seems to point to a broken cross-mig
> or something like that. Make sure everything is allright with your cross mig
> (build it from current CVS), and the *.defs files in the include/hurd
> directory of the build tree are allright. Then recompile glibc and the Hurd
> or so.
That didn't help either. Even with a new set of cross-compile tools
(including mig from cvs) and recompiling gnumach, glibc and hurd
from cvs yields the same error again. Besides, everything _else_
works as expected, so it is very unlikely that mig is wrong.

The only thing I didn't try yet was to re[cross-]compile bash
against libc 2.2. Maybe the transition from 2.1.x to 2.2 was
not so smooth?

> > Every time this error occurs, the program is stopped by bash
> > and resuming it with 'fg' results in the same error again.
> 
> I have seen this recently, but only with a very hacked glibc I tried
> locally. So I know what you see, but don't know what happens in your case.
This is very strange. glibc was cross-compiled directly from cvs
with no changes at all (yet). What can I do to help track down
this problem?

> This has nothing to do with the TERM variable. The TIOCSETA ioctl is
> failing, because the generated message (sysdepds/mach/hurd/ioctl.c) is
> rejected by the Hurd term server.
Hmmm...

Thanks,

-Farid. 

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


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



A memory-based filesystem for the lazy [or impatient]

2000-12-19 Thread Farid Hajji
0U_CI*PFW0FL.QS<*1$B+%W@#/CL*E`9C@.$;P&MU%$>P:0Q[IP
MHTM,>L;M:?(:I,9V_&=7XF40IN/*G!#'P(9.LC\<<1-=&>IT$B)HD\Z"`TNO
M&PKO`COG:A4I-#'/=#)2)L0NQ\;78J$PY<9CEN1&:4W"9H)Y<;)#!)*R=B`/QO]>GD&1U;)-IJR#C>&GCF8I')\-*72`6+0
MY+-Y4)E;7(<8N!%'409VLW?BDQ'"Q^:L3&W$M;($J<(U'(OE>&*:#&^]SA@Y
M\Y*$`UK?P7,#-NIA%++S=RYJN8)7F-$HZA&GH,9(/4!(/..`I)<.?$KVJ/O9
M,TNG8,\_4_%D#]AU@1W/,^CP[HY5_+^]G[DIIT&.](3!Q[#
M'1JS1"<#-J+P?.V^/Q8@LMU]A"AN^V4./V)FF_99PHT/LX@O/C_&!41I&+/I=6
MM>!0OLF-8E/:,KJ+1O#`L@Y'\4G<)^%'\1!ZEAT-9IZHOY,2M>
MV"4["JO&+&&:8711*CP?+5::SP1]`1
M#V-6+P.O9+O`^XIKQ&XV-;EE_&T!G.$2PA>LXD#-`R^$:GB01_UL$4BX>:1G
M!!+4YMP"`\?_<\Q'="4`0[_%H\`>3<`RX@PHT?CR2T3F1<.TA52:3)>$5.9W
MG<`R*#7+,,-&(P43CS)=GL6TJ=BCE%_VHU.ZYC:D&<8K(7D5_X0EL8$]1G\\
MGO56/Z4=XEC8$"?&Z',YM4N)V1>N"\%)`-XZV?!N*\`%O.&1I<*<-H&]ZE)W
M%".-J,I2!XCGJ!(01VPR=T$?#9][T>R((\(H["6%J:EB$/S$910HMDA]"$)H
MC1P9Y'X+'.*GY47F)AI_7Z$Q9$D@,K011-K/F9:.DNZD(]-@(J*Z>PX4BWH(
M1+(F1-M7H/1H&=]@O,((7F:+<5[@S[0+TTU
MO@@YGH][D@E#:ZK8I..=Z9FT+F_#!3%2"+%V+R!!8
M`?"[#S*I1;E>NGGVN`L'?&)!G^[F)#S%EI5>$V8D1-"C+:ZX#S1;@X:R=UT>
MEGY,+*V^'@3V9,R2/_H2.,\V4+G>#$9QZH,K.K(EHAU+=%&V$/\H#$*B^PK&
M:MZ]R"W2YE,(,@Y9H$/!X;%&/([$Q3KF*T\4E'JWH!("6_:"T60PM?4V^%8Y
M'40A"L<6V0!V%VRDGP0>LYX@2C_N\8#.2,UH-!XS1313@!;8D4N$!B-82(&+
MZ-`)8V%R)U$T$,1%ZYPQXW(M>"<,CDN&,AY-P&ZC+W8LL73'+;*;1$()&C5A
M8L*KVPBLEE?3;I93GX_!\?K,=23-*^
MC$XXAW$YP2[\926=$1;!/().TF\59#=-,8\NHM,/XW-)N&`I_V.)*Y3'2*LG-4M$V9A\_Z#'Z_)89L-'8D75^E@JIB[I3
M*%`/5A*?XSMFNY->19WM,DX)9A(9)<0N6'@&B>+;&(^ZKA<`T#Q.P))^=9$J
M6];=;;TE]`."*^8K);.L^M>)>FHD8?C]*UT\(5I"L)Y,*%L)&.67UMACL3!N
M!$"//_$226PT!V-=,'KBMI)&JGCA#8(XR9]HHY9N9`,L,(\$+
M5.)Z]($DJI-A+),IR3A$'3*P7LV\K%%T&HZZ?01[@:$Y0]Q0PODC"0<>TH>5
M0K(OUK^/'<+4?6)B!,;(T_\QHYJ.`U]UA+@DENXTY-%EU3MA0O_8T"F=L>"0
M#<7B31!]BD8B_EK%F>B&Q`]DUF9[`E0R(G:N#VV&%:?2F:P`K7E[`-$B%FO.
M.3!=>'J*7;+=JLPCZ\"NS.HH*/):C"#YX36<2)GC-,U%TI]PEBF2>I&`$%GT
M!*=GZQ/>-\-")R.+_[S9"=IDF(:4,I/*K5[/JA>74)P]1$@AII;]:99!HS3.
MU.K`D9QH,F9\`XYL!OT-#NR-:_`0AV
MA7.$ZFG@63]B6C<2G3(30C@Y$`=5]5/R^&K\BMYY>VO]G*3S.4&A-?GE\`'K
MX76HM^0\',4$_Q.K&,J4A"`ZPHT]IBVL.(YL>F6ANT_,\\]%'<\E^0T?SBY8`L$4W@R
M*_.G2ICY@(3V%^Q06.IS([A/K`LXE9R#K
M94A%-&(R%S8+RG&<.\J)1C#&J:8V+YDA$AT6T9L"CRY#6
M'C,U+WI.@TP@*\69U$*277^2LF02IFG2B:U"C*Y`V.'DA!R]E$BV*-M>\##2
M7J4":D35+/W"Y&+5DTGT$PD%_7[H,P[9BFB5K^G@+[#IX.V"%"$Q=.*1968K
M4^OQKPN;^$`U5!\':QX;!YVJQS&U_F:8].6`()<$[E[":D-9T9S?/2+RO2ENP>L=+)9W`SA/INC)&-"1`R%+/\AX2U(*
MJ2F:H6$HZ9*9J[5?&;#KA)HQRT('4]!GV6UF1KDS>C%A/C\-9K&5.2RIZ:V3
MR>F9A]OC*/64G.?#B(,S9DRAH"[R-@-6`V/6,IX!4"2*(%'7D/S'2G3A7WVN
M)<=+!`*I@-[HTQ"*7!:@E-1;=.ZQ*K!F0L%$4#$.FL]RHH3J]'^AFQJW,%+C`R
M(4Z%YS/8!>5]216,JU,V=\9@96)BIH7&T;D:?8]B3
M&;OI!X5-+(@XZNJP41,["L>S"H-R':M_PXIS3@V%"Z3`#Q'9WD:+T@)K2-8W
MXBDBESBO2_0,_'9>=+L9%XUASH[F&$.M"X6BIY@H@VHN>Y,1VZMR#BLRQ,FQ9-.Q>8<$"<*BA/91CT]3VL_@+Z&
M4GQG6D[@*7
ML3/IAX1IXU%G^=U[GJB!*"6M/<4V\LP2!<]5=:`<"`@%
M_K"PH&[G5&[#R8@QV`R=&YW,1.DS_R6WWO,^23.W"BCZ"52O5'O&ZCKKJ*>Z
M.E$LDL>&&?.&SS%*D.?:N>0$I_#KH&LM6$>'<:+X)4SX
M([9!PKMO:DI1-[#0SJA+91+V1E1\+AG24OJ"22#\6CJ>S!82L\0?/58EZF3H
MS+WL1+72309R`%VB/EWV+&57*Y.>,
MUCM"B'A8L\:UHIYB1;U>"QB+$Q)9]PF8#ZQS*`M&(R`ME4X!*QGTGUQEEBU?
M3A<J6Y>4R+`8S1$9G,>@<``1WW:83FPS.VH.>6Z#F]$%T3
M6UP@B-@MI>+2<><^S84#B#IGP$S`.8D"0;81@CHFJ0[`Z0>W!V*<0AZ`2AX7
M$Y.?T`V&B21EA.Y-,>0T<"Y'H3!+)TGW:J8Z^5&-/6'FNJ)CIZSW!1<"E70O
M.'(X-6LEJ#2PY8[FE%!B'@!<+*X3"F6@7@RMS>]#HA013$>+`7)'48)A/&*W
M=:MF2G%Q]0L)C^#@YU2FF7@+QSQ;66
M*ID4QR3;^FADRG-/@9IGJ*V3F+40VDDE(^LUD!MJ=K6P8`8X3*T],VBDFN5E
MQA84C&17SH8:H$TMA'G:G,)?0C4AQ[L>R9)*VOHJ("S1_IH[H:=OZX46*Z<
M&T(XDO,(ERP-F!XX)6/J/)XU3`-$C/?=YO\@D.]F^SY0`_,A&^.3B9J2GY#QQ,CLB?\2WH4L(1LF(^^14\$G_*@MU
MVMUS]>'X_!LU\ZS]?.OHH&T.7[>1.^;5_M8;LWU@O6)?F)?[[;;9>VF>O][:
M?]6NH-U^&RW\ON`CZW5`K?;X[_:/",4VJ`^P?7A(O3W[R6R]?4N=;SW;:9N=
MK7>TF^T?G[??'G)VOF`/W;_;IOD<'&[A@^U=@V0VV[NON$,XXNYOOWI]:%[O
M[;QH[[.W[@J-SA]*I;KV`2H8_[#](K^HI:T#FO:2*Y9G)X_%H7#>7[=W7U1,
M>YL[:O_X=K]]0.L/J._M-S3C-KWX>T3[0RFN?A'F^-
M;6M[I\E0_T&QQ!X\AV]18X^WD#JA#=_?/OBKV3H(=&/_ZVC+=42[2WV\V=I]
MS@=5.$@LU_RT=P2J0>O>>8$&@6V`C6J;%^V7[>>'VS_0\5)+&N;@Z$U;]_O@
MD#=H9\?LMI%W:6O_)W/0WO]A^SGV(=AOO]W:WC?L([V_W^:<,();FC4<'D%)
M^P?`P-'N#E:[W_ZO(UK/#$A`'UNO"-JPF=ZY!^^V:7"<4/'P*_P)O<@._R<"
MHSWS9NLG<?6LSWLP3.:SS9/BR:"#<$1O=AZL_6J
M?5`)'!#PT.I,7C$';]O/M_$+O2?0H[/>D5VA6_1?1SA%>J"=F"TZ3BP-<*A'
MACL(6-NU,$)C%^]E*1N[`'^`BYV]`P";)`GE&=._S]IHO=_>I?WBZ[3U_/G1
M/ETMM,`7-)N#([ILV[M\*`'6R[=Y>_^%O4^\S^;EUO;.T?X4C-'(>[2%Z))A
MS1V(!;*#O];3,[E;^Y-Y34?QK$W-ME[\L`W,(^,$=!<.MG5/
M]K0'W4=&;!QK2NOC]C,<^.'[O\5ID^)/+2AQ00>V6"85/>LA@W5UB
M>936I8!CI8]=9())AC:IG^]-Z46YJ:^>DLQ3C@))QX'+'#I)'142`4_E;@@.
M6DH.MN+HPI892YUD$H^#/$402NC"=J:JHGH!H.
M<01UITU25\@GV$_^WOH->!NPG$I=-.GZA"20GB'"'XI+D=0+9-]P+H4[%59]
M=47]V\)JPOAH#<:OJGRK^F/QHORRTKE"]&A!3?2'M"8T:UG!WL[Q&WL_.1SRH\9`O3P#5?:^SM'JUXNU[)+4+S]&9UAQ!_U
M,8[4(,DA`^Y!8Z>;4-'9)-/-\
MVT^BX#RA+JL=FL%'5F2<1X,);5ATGE:KP-HL/*>36"RY+L9?HT9TL>R,A_!C
M;H)2T[._5B_/H]&92.QVZ,@A%]O&0#S885Q&X%RFC,M";I:R
MR!3+:\2]P*L49EZK9WH(OXEAGT@$>TU)33<"4XFO^"FY2KI7@\C>:-"_DRLW
MD/@#91/@&P)N1!&N#DX=_=V#\V48Q-A'D-,`<@@O5\NTCB]IV:]W_1?,QKQ&
M_>,1([PGXCJ"8&^"DL,KNFG)X&G%-(@O&\5]SCX"!D5>5)"A(XUM3-12U%F4X#\..?+VLS`B_RU249<&:UD8^*0AAE1PELTD`VG$K"*64"
MZP_.$9E`\D*9V-PH,R&F@KVY_!$]37KJ_%`"[=PJC00I7%JW4!O&W27FS4;,
MS,AN$-A:7VVM-@TOWK0_#5%N%9+S
M&RU[S%XO6;7R7(EJ2XA>3S2P;$JLP5#F)??].OS'/V+SA`>JG>&/_TQ.:A^)
M0M4&T5A$'1&[G>(8/,UMA!T)<&%QARM6.8^9\R^2=SA'[;7J\FO%'?9Q(]D&
MW=Q&O)FQZ&L%'*F)DQ=Q;$#6UTDX7R7@8$_1R6?)-]]$O,D[:J9^/J#;R3?3
MXLWZ(W,8<;WHM^+">C!!!ZNK]8IYEJ1CM"1)!Z).HU%MK-8?&$Y9%LRY-L1R
M5>?]!,'1@,63473*[A?>9Y8#UF!WV@XI1UZ=&H"=`1$G@WH-UH$$1=UE0B6P
MR!\-[0K!UL=RS8D3<)-4OWD-7H!-/Q#GJ%2,@NZ8B&2=Q@B<:)\!I
MF#($X=P5A'%!HB;.N3Y(-!L*_$RL&=?E-U5!P]T"A7KQN$E&SBVVV+W`E;:A2O"!T"6)'=PR[22/:?&;9($!,GQO3=//)8'2<](ZY#,!3,>5O-I!8]6,OK46?QDU3_`IYC?WB
MW.[]&,$W8R-UT_%I+YW^.-CJ:`T073-66^R".71.HDK,P&ED"X=@723Z07ZH
M/LV-\UZ[_Y"]F-!3VR\_YML6)^]Y2\ZZ];3QP24]?%*=D_MPSHLG50>?,MD"
M\!@'/.$T"F#[=?P)PG#\WGZ#@>Z,G//G'MX,M.W'X<;)V&R`@>NH.70/Y9YSZX2!!9
M2V@.`5X9[U()@-AZT:75&#BQ-KJ(V5F*=I=W8@Y\Z&0$/@K;$9A;@$%VWC;-
M<.HT47#$T=)MR<"X_,5:V(S0]44<>HV8H,(%!"Y-@(P^DD(Q9/UGRY=1>.R\3S^:CG_UR">57,NES/1*RND(%K+
MJLP)J1B/KL1YA&G&15SVJ\^I0K2]W=[>DT36M*E'?,LL_0R*_,O=NW>)T1[2
M2ORPK>`[`\&K^O.GBY[]ME:OT;/:Z<_TLM,U(IO2[U`7!9V.J;Z#UJEZ:JH=
M]PD]3=P?2;Z5>Y$U,-6^'"NAECXGU<83V?!JOY>BZ$IQ*+`SU=QXN2=3@_IO
MBTUY-PB[3889T!<0.EB.3Y\^Z;KE?ML>@AQBI%:FEF%9+H9BUNI&ZXF81EW&
M\Z!^%$GL@:31H#&&-/HG\T\8'75*@4A[_--XU#2F2H#-Z;U;]7JMOGZK(>4O
MU;9+B784G&KA9(E>X?<@Z^<]),%JHUF%T/FH55]KK3_XT,J2ZO_Q37E1AWIM
M^%RS-%^*?ICVX4@XDU\TBK#8/L"*C[,ZNM3_).+9[;*WW?BAS7P1=8R="'_K
M1G<$J)\BHR0![NDI)Y+(VV`Y`5]ZR\W>("'_0RNK_79STZSDFLQL)QHOI\I9
M-NI:=I1.')L1CFVQS'7,I[:2NQUHL1YL&\X6<^DW=@C6=CBK53TX)62WIBU:
MYGT-/_5&/!PT>U>3\?[)9RRJYOL(D/6\WU6VZB-BT6X)2:E>OES_M2
MB#=_BBK=KJ)QHU[^TBE\[I?,1[@92#77S;7;]'(='`TD323Q`H.N\XMG[M1S
M`3#(_=;3\XK''VOM6($K$X)-O25T
M/6JMWO:*:M/91[OZH/QYGWX9>%T[A\_]\@O`2WLI@A<*WK,517(]3($6NZ?8
M4KJC"$%T47<.3*W59T$+/;4P5?]M8&HV!JW_*\VFVOQC)L-'#"L>2@])ANX9
M]%J"_*"2:64<5C*P:A4\=_UC(J9Q:CD9`%A;6=JCJ[1
M>$YK0#/:D--O>7P75G`S:[SQH%%_^'!CS7&K30';J`[<0ICC@-!`UNPLX1P(BZ$&E&Z6G_SK'4C([[Z
M<+W`B#^JWVJ!G\>"KC;6UA\T'\YC07>3RXH[`T3FL`HFKTJDQEC.2GH2#U;.
M/T9H@0[TUT:M@0HAJ]6_3/I5-@!!WFG_>-@T+P],O;9^4C&/UE?J#U?JCX*7
M6<_]\"3J;P9[!^R.TH+2?X4M2\^XN!?7@6S4FVNFU$].061>CD*)_YU^]6"#
M5A@/DBYBB%;K#YJ$;]!+&C365S?T=U-:K]7K]\I&G/!5GHU]6*:=(9/@@"2^ZX,\-I.ZA1%TKC:W[<9ZD;4D)=
MO%-&WA`45^3.G=^6])W)*@7-/VX8D/T)-"Z3@5;NFJ23L#]U>^G3;CS**_I$
M)&9@[FJ#H#NZ_#2JXC\&WCFHBL\^`^BU#?LY02F`5"Z(/ALGX[!O&LU"WTTS
M2H@R<48@^PNZ;C8?/LSW3?AZ_#V[A#`L0ZR(DN:2ULY!MID"-@M1S/:M
MQIWL$ZI3?U+?Q"H&+"9V'".F="VWG43&W'*GB=O>`'@)JC;J*,HJZF7*Q&/-
M?Y$>$]I5/(-,@>?1&&XY1?@Y@I'4X9^+L#]!7>-U=HE%3E?,OQ-9?4!`D$W"
M5PIHZ$W8LP?N4/.H`]=?MW8:N`URM`^B6@HJLYIKV&S)WNIG8K*:I%*%=!@B
M7;Z]UP7E:M;'ZG5]\#TT)25&Z"I,/Y9=I\6^UEIT'&/Z113TG"_:NR625YQU
MMT[SVRW.S%O>^BVZLLM>25;[U1_#UJL?)W7865ZI5-=/+RI
MB^+JIGIX=(L>;ER1Z^V7L')2Z52(Z_RUE;.PJJ$Z^B0F/G?T[],/GD)>B]Q.
M_X@A(T1MHA#`ZV^VAQ<
MI3]4P5UQZ2FK.,-);>$NXPA\9I'H/%'A\W@0?ZJ8BUXXEE*\%F_*59$!&Y5F
M9?57.B9B6@/?HX3^/J+O,;38P6GEN]&8?2ZWNM0W2I^?T6ZVS/=KCZK-QFJC
MNO&@NKZ^'CP;)7&'D'$W&?72\:AF'A)M?5%=:ZP3@_77,!RA&->K:,0Z>^IF
MCN]*4#6?\W_?SWL3O)F,AF=7Q`3OA$18V1%8J?#-'
M+A2]18U[=I[,7Y_93I3KK;6Z[T2I'02&^MA)3F=T\AW>[4<:'X(N9_8IG:*M
M5KR6A!&H\�/0US5Q-8FB=$5U>8J-;.GA8>(ZH\_[37(>Z_T'#<)7J??S89
M$/QVI]K%2?$1`L[SSSJ8"QXA`8Z9702=:X%_D"KH>-[]@J#2M&
MW#F.Y<_'VE0,UOB+NR)F[/V:5!7'VY@K%:,N,X8S3\QJOI*Y*PQ/BY$RS<1U
MG!*7<"^UEG,=_F](&Z$URPL%SIOKZUZ)\]PLS29JKX_I0O`,+MXW/U0,*EY7
M2%R5,LI8*S630NS67OHL;"K=C';[K\<'[4,WLG[UIVQL8^RF+4XK2;_K1I_P8=0ATE.EHZGTQ)O%1AG4_2PYLR?Z+>"YN*(72)_"%UTZ^E(#FCVOM5OM5??>J=,DUTK+A*M!U78N%4/#OWMT)+A
MWFX4-@ZSMZVO@3+Q)2J.NN8?EULQ-/QV3UOFO;^IAJE'*=ZL$TY_HC?8?/]]
M7-BT>QWZ*D[Y;\SU??RA;/[#R&\DBBS7EO-G^>%O@R5;G%R7SHIU6?OGK)0_
CFU[JNK_410'TQ<_B9_&S^%G\+'X6/__"/_\_YSOR@@"0`0"7
`
end


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


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Shared-Memory for the Hurd?

2001-01-11 Thread Farid Hajji

> >   * each shm-segment is represented by a pseudo-file managed by a
> > fullsized translator settrans on e.g. /shm. The translator manages
> > vm_allocate()ed pages just like in 3.) and 4.), mapping them to
> > the pseudo-files [that is: shm-segment 34343 is mapped to /shm/34343].
> 
> Yes, this is a way to go. This could be a derivative of tmpfs, providing
> only a flat directory (Roland suggested /var/run/sysvshm) and only accepts
> certain file names coresponding to a key_t != 0 "with a funny behaviour
> about unlinking open files so the SHM_RMID behaviour is right." (Roland).
> 
> Farid, this is an excellent medium sized project to dive into the Hurd
> inners. Are you still interested in implementing this?
Yes, sure. Though I'm currently extremely busy with an urgent project
and I will not have the time to start this Right Now (tm) ;-).

> > Notes:
> >   * shm-segments are visible as plain [pseudo-] files and could also
> > be mmap()-ed, or read()/write()... from other processes that have
> > enough permissions.
> 
> Yes, mmap() would be ideal.
Agreed.

> > 5. same as in 4, but much more harder to implement, since there
> >is no good template/hello for a full filesystem translator in
> >the Hurd right now (besides full-blown ext2, ufs).
> >-> What about /procfs translator? Someone wrote such a beast,
> >   but it is not in CVS. Where to get it please?
> 
> Well, tmpfs should be a good start. It isn't functional currently and not
> tested, but there are only small changes necessary to make it work (coming
> soon). tmpfs uses virtual memory to store the files.
Yes, the source of diskfs-based tmpfs looks intersting (I didn't test it yet).

As such, tmpfs could be extended/modified, by adding an RPC (or a family of
RPCs?), which would loosely match the shm*() functions:

  requesting taskRPC messageshm-server

 shmget(CREATE, ...) > open(O_CREAT) > create shm-segment
 shmget(OPEN, ...)   > open(O_RDWR, ...)-> verify credentials
 shmat(somewhere)> attach(task_control()-> vm_map()
 shmdt() > detach(task_control()-> vm_unmap()
 shmctl(DELETE)  > unlink() -> destroy shm-segment

Note that most RPCs are just simple file operations (like create, open,
unlink, ...) which are already handled by diskfs. The new RPCs that need
to be caught by a multiplexer are attach() and detach(), which will pass
the task control port of the requester to the shm-server. The shm-server
would then vm_map() and vm_unmap() the [parts of] the virtual memory
corresponding to the shm-segments into the address space of the requester
tasks. Would this make sense?

Thanks,

-Farid.

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


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: MIG->Corba

2001-02-13 Thread Farid Hajji
 convinced that it will be necessary to respecify
and then reimplement the Hurd from scratch, if we want to ever get
a chance to obtain a reasonable amount of portability; be it to
other cpu architectures, to other ukernels, to guest-os(es) or to
embedded systems (I'm not even mentioning distributed systems!!).
There are just too many Mach idioms in the current overall design,
that it becomes necessary to break everyting and rewrite :-((

Finally, the biggest problem of the Hurd is that there are too few
developers! We keep talking and talking, but when it comes to writing
code, the work is done by 2-5 people at most. So how can we remedy
this situation? If you understand Hurd sources, write HOWTOs, write
docs, manpages and example translators, implement /proc (and write
a book on how you did it!), don't just cite OSF mach documents, but
write Mach tutorials. Draw diagrams (gpic is great for this) showing
how the hurd servers interact with each other and with glibc, explain
as much as you can. If you help spreading the Hurd coding know-how,
you'd bet that we'll get new people with fresh ideas very soon.

Please feel free to step forward and coordinate the Hurd Documentation
Project. There are a lot of links that can be centrally managed (some
are already, but concentrating everything at gnu.org would be best).
Besides links, some editorial work is also called for: Write (or get
someone to do it) summaries, abstracts and background informations
that help put the pieces together. Write man pages for both gnumach
_and_ libdiskfs, libnetfs, libprocfs, ... Docs are partly available
in header files, but that is a bit terse for aspiring beginners

There is a lot of things to do and you can really help.

Regards,

-Farid.

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


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Softupdates and the Metadata Problem?

2001-03-06 Thread Farid Hajji

Hi Marcus,

it was nice to meet you personally at the GUUG conference in Cologne last
week ;-). I thought a bit about the metadata problem that results in the
1 GB limit of ext2fs and ufs filesystems (and theoretically others as well).
I didn't find a solution yet (still pondering over/on the problem), but here
is something that could probably help:

In FreeBSD, softupdates are currently being developed/tested for UFS
filesystems. I'm not aware of the ext{2,3}fs efforts here, but looking
at ReiserFS or other journalled filesystems could be a good idea as well ;-).
If we managed to use a similar approach in the libdiskfs-based servers,
we could probably avoid having to map all metadata in virtual memory.
This is just a speculation; as I still have to read/study the papers and
code of softupdates and journalled filesystems. Anyone else on this list
familiar with this kind of filesystems? Any link appreciated.

The links to softupdates are:

  Abstract: http://www.mckusick.com/softdep/
  Paper   : http://www.ece.cmu.edu/~ganger/papers/CSE-TR-254-95/

Regards,

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Multithreading experiences outside of Hurd/Mach

2001-03-06 Thread Farid Hajji

Hi Marcus,

as you probably know, the FreeBSD people are trying to multithread their
kernel and their experiences are pretty interesting for Hurd/Mach people
as well. We can talk offline about specific details, if you're interested.
Here's the URL:

  http://people.FreeBSD.org/~fsmp/SMP/SMP.html

Sorry for the noise, guys!

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Linux Binary Compatibility

2001-04-27 Thread Farid Hajji
;/cluster/host11.mynet.net/bin/myprog");
Here, /bin/myprog (on "our" host, that is, the host that calls exec()),
gets exec()d on host5's cpu #2, host9's cpu #1 and host11 (using its
default scheduler) respectively.

Okay, that's enough SF for now ;-). Could someone more knowlegeable
in glibc and exec() please point out, what is necessary to do in
order to swap linux' glibc to the Hurd's glibc in binaries dynamically
linked against linux' glibc? That would be a first step towards
binary compatibility.

Thanks,

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Linux Binary Compatibility

2001-04-28 Thread Farid Hajji

> > We _could_ use this Lites approach as well in the Hurd, to provide
> > binary compatibility to, say, Linux-Binaries.
> 
> My only questions is: Why would we want binary compatability?  Every
> OS/app that I can think of that used this as a selling feature (OS/2,
> Wine, Win95 for Win 3.1 apps) failed miserably at the emulation
> (unforseen gotchas!), and tended to fail to attract the attention of
> the end users.
> 
> I would prefer to see us focus on the process of building an awesome
> OS, and have our *own* major selling points draw people to us.
First of all, the world is not perfect. There are plenty of binary
applications out there, that don't come with source. Some of them are
even popular, e.g. JDK, StarOffice, Maple+Mathematica, Oracle etc...

Now you could argument, that the Hurd is supposed to support free
(or at least open source) software onlay. Personally, I would even
agree with you here, but other users may see it differently. IMHO,
FreeBSD's linuxulator is a great selling argument in favor of FreeBSD,
opening up more flexibility anyway.

I would agree with you, if adding this binary compat feature would
slow down everything or even break the overall architecture of the Hurd.
I don't consider binary compatibility as a necessary feature of the
Hurd, if that would be the price. The point is just, that if it is
relative easy to do so, why not try it?

Regards,

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Linux Binary Compatibility

2001-04-30 Thread Farid Hajji

> I'm not arguing for Free Software only.  One of the things I like best
> about us sharing a libc with Linux is that porting *should* be no
> harder than a recompile.  Part of the Debian/Hurd porters work is to
> help remove any recompile barriers from thousands of programs.
Agreed.

> I feel that by permitting people to run their binaries on our system,
> we'll be 'another Linux port'.  There will be no reason to mention
> "Runs on the Hurd".  Ultimately, people will begin to demand that we
> do things the way Linux does.  GNU's not Unix, but Linux is.  GNU
> permits us the freedom to do things differently, and hopefully better.
Yes, I understand and share your concerns here. Actually, implementing
this binary compatibility could be more harmful to the project (by
diverting people from recompiling) than beneficial. Hmmm..., that's
an interesting perspective.

Anyway, I didn't consider the issue from this perspective as I asked
about that glibc trick (didn't get a reply yet); just being interested
in the technical way to do it. I'll have to read more about ELF and
exec() to figure it out.

Thanks for the feedback.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



SawMill Multiserver vs. the Hurd

2001-07-05 Thread Farid Hajji

Hello,

the following paper describes the SawMill L4-based multiserver that
is being developed at Big Blue:

  http://www.research.ibm.com/sawmill/sigops00.ps

AFAIK, Sawmill didn't release any sources (yet?), but some of their
(mainly) architecture papers are available. It's quite interesting
to compare the Hurd's architecture to Sawmill's, especially considering
the differences between Mach and L4.

Is someone here involved directly or indirectly with SawMill project?
It would be quite interesting to compare the Hurd's and SawMill's
architectures, and probably even merge useful ideas. Hmmm...

People interested in porting the Hurd to L4 are invited to join the
[EMAIL PROTECTED] mailing list. l4-hurd was put on hold some time ago,
since we didn't find volunteers with expertise in thread libraries
(we need a n:m-multiplexing thread-library for L4), but we should
IMHO have a new try at it. Please note that I'm not trying to drag
resources away from bug-hurd, but rather looking for Hurd hackers
that could help make the Hurd even better ;-).

Thanks,

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: how it works: hurd users

2001-07-12 Thread Farid Hajji

> here is something that hopefully helps people to understand how the Hurd
> user model works.  It is of course far from perfect, not complete, etc etc,
> and it is certainly not supposed to be a replacement for proper
> documentation (in fact, I don't even think it is adequate as a base for it).
> I hope it is useful for developers and people who want to become developers,
> and people who can turn this into good documentation, maybe as an addition to
> the Hurd info manual.
Well done, Marcus. This is exactly the bird's eye view on an important
component of the Hurd that developer newbies need to get started. If you
would be willing to write more intros about other parts from time to time,
that would be great!

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Hurd and glibc

2001-10-23 Thread Farid Hajji

> What is the relationship between the Hurd and glibc? By this I mean,
> which version of glibc is appropriate to use when working with the Hurd.
> Is the glibc source from Debian the proper one to use?
I compiled glibc from savannah and used it with the Hurd recently
without problems. I don't know where Marcus gets his glibc sources
from when he generates the .deb's.

> It seems that awhile back, glibc used to be in the Hurd CVS, but now it
> is not. How often are there Hurd specific changes to glibc, and how long
> does it take them to make it back to the the Debian source version?
Look at the Changelog in the main glibc directory ;-). Pay special
attention to sysdeps/hurd, sysdeps/mach etc You'll quickly find
out what changes apply to the Hurd.

> Is there a list of patches against glibc that need to be maintained for
> the Hurd to work properly?
No. The current glibc _is_ the actual official C-lib for the Hurd.

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: L4Mach or Refactor Hurd Servers?

2001-11-10 Thread Farid Hajji
that manages low-level [kernel-] IPC handles like
port rights and the like? Instead of putting this into
buckets, wrapping classes around them etc.., this looks
like it really belongs in the stubs. We may need a powerful
stub generator [backend] for Mach, that could integrate
some of libports? Then again, the stub generator for the
L4 port would so something else. I've not made up my mind yet.

Anyway, a good and clear separation of Mach-things and the
Hurd interface in libports would be very useful.

  * 

> that I'm on the l4-hurd list, so perhaps there has been some discussion
> there that I haven't seen.  But every time someone posts to bug-hurd with
> their opinion about the Hurd's relationship to Mach, they speak in
> completely vague general terms and never present anything concrete about
> the details of the IPC system they'd like to work with, how they would
> adapt the Hurd to use it, and what the problems might be.
The discussions on l4-hurd currently boils down to this:

  * the VM semantics of Mach will be met by implementing an
l4-based pager task. This pager would probably not use
Mach-VM directly, but the improved NetBSD UVM variant.

The L4-based pager will have an IPC interface of some
kind (as specified in an IDL spec) and can thus be
RPCed directly. The preferred way to IPC the pager would
be provided by a helper library that will implement
the vm_*() calls mentioned above.

  * the drivers will be implemented in user-level tasks.

One possibility that was discussed is to use OSKit drivers
directly. This may not be so good, because OSKit links in
a lot of other stuff and thus unnecessarily bloats binaries.

Another possibility is being investigated by the L4Env
group at University of Dresden. They plan to provide a
L4 framework, where the sourcecode of current (I think
it was 2.2.x, not 2.4.x) Linux drivers could be simply
dropped in and where they would build user-level driver
tasks. I've not yet looked at this though.

As far as the Hurd is concerned, I can imagine that a
Mach-like API glue could be written, so that those new
drivers can be accessed like Mach devices.

  * It seems like there is agreement, that L4 IPC will not
be used directly but only through an IPC stub generator
that could adapt to new revisions of the L4 API. There
are two reasons for this:

The L4 API is currently being revised and is expected to change in
the near future.  We have to use existing L4 kernels now, so we
can't use a not-yet stabilized new API with the current kernels.
Using a stub generator will isolate VK/L4 or the Hurd from such
fluctuations.

The other obvious reason is that code written in IDL is much
more portable. All that is needed is a pair of different stubs,
one for Mach, and one for L4. This can be achieved in the
stub generator alone, e.g. using two different IDL-generators
or an IDL-generator with two different backends (like flick).

If you want to have a glimpse on a simplest multi-server OS running
on top of L4 and using flick, please look at SC/OS:

  http://www.l4ka.org/projects/SCOS/
  http://i30pc11.ira.uka.de/~kevinelp/sysimpweb/example/dev.html

I suppose that the Hurd port will use similar techniques.

> As to your specific question, I can't imagine that anything you might call
> "L4Mach" would be a worthwhile thing to do from a Hurd perspective.  But I
> am only guessing what you really have in mind, since you have not been at
> all specific.
Yes, I agree here. L4Mach will not be something like, say, Lites.
We will have to implement some Mach functionality like VM and the
drivers, and the Hurd people will have to help us with the wish list
above. For the drivers, we'll probably follow the L4Env group's work.

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: L4Mach or Refactor Hurd Servers?

2001-11-10 Thread Farid Hajji

> Apologies for the lack of information. My goal is to build a Hurd system that
> can run using an L4 microkernel. I see two basic options for doing this:
> 
> 1) Create a /boot/gnumach.gz that uses L4. No changes to the Hurd code.
It would be nice, if it were possible. However, the Mach/L3 work mentioned
earlier showed that there is a lot of trouble implementing the whole Mach
functionality as an L4 server. This seems much more difficult than L4Linux,
but you'll have to ask Michael or Sven if they still see it that way and
also why they came to this conclusion. Please Cc: l4-hurd in this case ;)

> 2) Supplant /boot/gnumach.gz with an L4 microkernel and rework the Hurd
> libraries to use L4 features where they currently use gnumachs'.
This would be too much work, and the split between Hurd/Mach and Hurd/L4
would become too wide. Parts of the Hurd should be IMHO rewritten in such
a way to avoid things specific to Mach-IPC, putting most of the rest into
the realm of a stub generator. therefore:

3) Supplant /boot/gnumach.gz with /boot/l4ka and provide a vk-l4 environment
that aims to implement generic mach stuff (vm, devices, simple IPC); at the
same time, modifying the Hurd's sources to rely more upon an interchangeable
RPC stub generator, dropping Mach-specific IPC stuff as discussed earlier.

> I understand what would be required for (1) better, so initially it seems
> attractive. However, as you pointed out, I don't see how useful that would be as
> a resulting system. I think I will work on (2) and see where I can get to.
There are actually two fronts on which we need to work:

  1.) From the bottom up, i.e. by writing the VK/L4 environment that we
  are currently talking about: UVM-Pager, L4Env Device-Framework,
  Flick or other IDL stub generator.

  2.) From the top down, i.e. migrating from MiG to IDL-Flick/Mach3,
  removing Mach-specific IPC calls etc... [implementing as much
  as possible from our "wish-list"].

1. would be done by people willing to play with L4 and low-level system
programming in general, in coooperation with L4 hackers at Dresden,
Karlsruhe and at UNSW among others. 2. would most likely be done by
Hurd/Mach hackers [if we can convice them], in close cooperation with us.

Both parts can be started immediately and can proceed in parallel until
1) a basic VK/L4 environment stands, so that we can boot from a disk
   [device framework must be ready], start up a pager [vm must be ready]
   and load some initial boot program [that would later load ext2fs
   and the rest of the Hurd]
2) the Hurd can be compiled w/o MIG, using only flick [or any other
   portable IDL-stub generator that can produce both Mach and L4 stubs],
   the glibc sysdeps are adapted to release the Mach dependencies somewhat
   [most of Mach ain't present in L4 and will have to be redirected to
our VK/L4 libraries anyway], VM calls are being exclusively routed
   through vm_*() calls (no pager tricks), [so that we can plug in our
   own pager(-library)]...
At that point, we'll need to closely work together to adapt both the
Hurd sources and the VK/L4 environment to get a fully functional system
up and running.

> -- Ian

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: OS personalities for Linux

2001-11-10 Thread Farid Hajji

> > The Hurd can run in parallel to itself.  If it can run in parallel to other
> > OSs depends if those OSs can run on Mach, and if you have a bootloader for them
> > that runs in the Hurd.
> 
> If I understood Farid correctly, he ran the Hurd beside Lites.
Yes, that's correct.

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: L4Mach or Refactor Hurd Servers?

2001-11-10 Thread Farid Hajji
of the generated stubs into
the Hurd codebase (mostly in libports, where they are kept in classes
and buckets).

> It seems to me that libports marries the Hurd to a Mach style microkernel.
Right.

> -- Ian

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: L4Mach or Refactor Hurd Servers?

2001-11-10 Thread Farid Hajji

Replying to my own scribblings... ;-)

>   * VM should be accessed through vm_allocate(), vm_deallocate(),
> vm_map(), vm_unmap() _only_. Maybe vm_remap(), later.
Add to this vm_protect(), and, very carefully, vm_inherit().

> Please don't meddle with the default-pager directly, unless
> this is done through a well-defined interface that we could
> emulate/reimplement in an L4-based [UVM-?]pager.

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: slow access to files

2001-11-05 Thread Farid Hajji

Hi Diego,

>   I've noticed that access to files on Hurd is noticeable slower than using
> Linux. For example compiling hurd require a lot of disk access using hurd,
> while cross compiling hurd on linux uses few disk access.
I'm sure you're not comparing apples and oranges here, though it may
seem so at first sight ;-).

You're right: the Hurd _is_ currently slower at accessing files, compared
to Linux or *BSD. Part of the _perceived_ slowness arises from the very
inefficient fork()/exec() syscall emulation in glibc, but this is only
visible when accessing a lot of files in multiple processes like in e.g.
'configure' runs (among others).

The main reaons for the slowness of the Hurd's file I/O, is that data is
actually _copied_ more often than necessary between the clients and the
file servers/translators. Just look at the sources of glibc and the hurd,
starting e.g. with glibc's write(), its hurd-ish sysdeps, which IPCs the
translator, which in turn goes to the storeio etc... That's quite a lot
of copying going on. Compared to Linux/BSD's integrated VFS/VM buffer
cache, that's extremely inefficient ;-).

The unnecessary multiple copying of data would already consume a lot of
CPU cycles, but wait, this is even worst than it may seem at first sight:
Every single access (e.g. an "atomic" write(2) call) not only induces
two context switches [to kernel and back], but a lot more: One IPC to
the translator (via Mach), another IPC of the translator to storeio (again
via Mach) and then access to the disks etc... [if not cached in storeio].
Add to this the response IPCs etc.. All this consume a lot of CPU cycles
as well. Now if the applications use a lot of small read(2)/write(2) calls,
you've got a flurry of data copying, IPCs and context switches that is,
say one order of magnitude slower than in Linux and *BSD.

> The question is: there is some kind of caching on hurd or in gnumach? Can be
> useful implementing caching, for example, in the storeio translator?
First possible caching is in storeio: Data that is being read from physical
devices can be cached in storeio (look at the sources). This is the most
important cache when it comes to speed.

The next best thing in caching is when the filesystem translator shares
memory (with mach's vm_map() call) with its underlying storeio. This would
speed up things quite a lot.

The problem right now is that there is no memory sharing between normal
clients and the filesystem translators. Here, data is simply copied across
a costly IPC path, thus wasting a lot of CPU cycles.

It would be nice to add a mmap()/munmap() IPC to the translators, so that
clients can obtain vm_objects directly linked to, say, storeio's memory
space. This way, the clients could change [pages of] a file through direct
memory read/writes. If done well, this would be hidden from user programs
which will still use read(2)/write(2) calls. glibc's sysdeps would then
either IPC the translators or request memory-mapping of [e.g. frequently
used?] parts of the file.

This change would however break the current design of the Hurd, and I'm
not expert enough here to see the ramifications of this choice.

> I've also noted that during compiling hurd, there is a lot free memory
> avaible, so why don't we use it?
Here too, you're right. The reason is the same as said above: we don't
have a VFS buffer cache like in Linux/BSD, but just copy the data when
available [from client to translator and back].

> Diego Roversi | diegor at maganet.net
>   | diegor at tiscalinet.it 

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



emulating no-senders notifications in L4?

2001-11-12 Thread Farid Hajji

> > Absolutely. No-senders/dead port notification is one of the hardest parts
> > to port to a non-mach kernel, like L4.
> Please don't talk about these as if they were the same thing.  Dead
> name notifications are not very important.
As said, sorry for the confusion. no-senders was meant.

>  No senders notifications
> *are* important, and the use we make of them is critical in any
> Hurd-like system.
Could you please point at the files/functions that depend on
no-senders notifications?

To Mach novices: A no-senders notification is sent by Mach to a task
that is having receive-rights on a port X, as soon as the count of
outstanding send-rights for port X drops to zero. Or more sloppily:
as soon as no thread can send messages to this port anymore (not
counting send-once rights).

The problem here is that Mach maintains state w.r.t. the number of
clients that have send-rights to a port. Under L4, things change
a lot, because everything is stateless there. Under L4, every thread
can IPC to a "port", provided that this thread knows the appropriate
TID (which just happens to be the TASK/THREAD-ID of the thread that
is sitting on the receiving end of the IPC).

Moreover, L4 doesn't hide the specific TID namespace from clients,
as Mach does with its local-only relevant port-numbers. Security
issues must be dealt with in user-space, e.g. by the threads that
do the actual IPC or, more precisely, that proceed the messages
they receive.

Put another way: you always have "send-rights" to any "port" that is
listening to messages.

If you can't figure out a way to avoid no-senders notifications,
we'll have to emulate these too :-(. This would be very bad, from
a performance point of view. The only solution I'm seeing here
right now would go along these lines (somehow):

1. The only entity that is allowed to hand out TIDs (a.k.a ports) to
   clients will be a user-land port-rights server task. (pr-server).

2. The pr-server will maintain state that is normally located in mach:
   Not only reference count of send-rights, but also a list of TIDs
   that got the send-rights (for notification purposes).

3. A client can explicitely relinquish a send-right by notifying the
   pr-server about it. The pr-server will update its state and
   notify whoever registered with it for no-senders notifications if
   necessary.

4. Since there is no way to reliably/synchroneously detect the crash
   of a potential IPC sender (a client), the pr-server will need to
   regularly poll the clients that got send-rights. This can be
   done somewhat like this:

   4.1. A thread in the pr-server will regularly wake up and send
requests to all threads that got send-rights.
[This can be done sequentiall or on a scatter-gather basis,
but this is mainly an implementation issue]
   4.2. A dedicated thread in every client will respond to the
pr-server requests if the client is still there.
If the client is not there, 4.1. will detect this.
   4.3. pr-server will update its state and send notifications
to every client that registered with it, if the sender-count
of a port dropped to 0.

5. Clients interested in getting no-senders notifications about a
   send-right port that they got from pr-server can register with
   the pr-server (probably as part of the IPC that requested the
   send-right in the first place [a boolean flag]). If they registered,
   they'll get no-senders notification as soon as pr-server detects
   this condition.

This is an awkward way to do it, especially because it is not synchroneous.
Sure, most of the time, clients will synchroneously relinquish send-rights
(case 3.) so we get reasonably quick responses. The problem is with
crashing clients etc...

The biggest problem however is one of performance. Since IPC performance
is so critical, this pr-server stuff adds quite a lot of overhead to
a very common operation. This is the reason that it would be very
useful to think of other ways in the Hurd itself (if possible).

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: L4Mach or Refactor Hurd Servers?

2001-11-12 Thread Farid Hajji

> > Basically, it proved difficult to emulate the complete Mach API. If you
> > want to implement L4Mach, it will most likely provide just a subset of
> > Mach, so that we can get the Hurd up and running (in a first step).
> Making the Hurd run on L4 should be done by porting it.  Making L4
> emulate Mach, in part or in whole, is probably a waste of time.
Agreed.

> > The most difficult issue is IMO how you want to handle asynch. IPC,
> > especially the notifying mechanism. In the Hurd, you need at various
> > parts to detect/receive something called "dead port notification".
> > Emulating this on top of L4 (with or without the help of a L4Mach
> > server) may be difficult, but I'm not sure yet.
> 
> Do you mean dead name notifications, or no-senders notifications?  The
> former are not so important.  The latter are very important.
You're right. I meant no-senders, not dead-name notification.
Sorry for the confusion.

> > This is the most important question regarting the port. If the Hurd had
> > been designed with other microkernels in mind, it would have certainly
> > been more restrictive on its use of mach-specific IPC-ism. 
> 
> We *have* been so restrictive.  The need of no-senders is quite
> inherent; if you understand what we use them for, it's clear that any
> system simply must provide a similar function, whether "asynch" or
> not. 
>
> Thomas

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: emulating no-senders notifications in L4?

2001-11-16 Thread Farid Hajji

> > When a task dies, its resources need to be all cleaned up.  If it's
> > the last task with the right to send to that port, then a no senders
> > notification should be sent.  If we rely on the task to do so itself,
> > then sometimes it will not happen due to task misbehavior.
> The general idea in L4 is to have a server which creates and deletes
> tasks. This server "owns" the tasks and is the only one allowed to
> execute the task_new syscall for them. L4 tries to keep task allocation
> policy out of the kernel allowing user apps to replace the task server.
> If an application wants to create or delete a task you simply send an
> RPC. For L4-HURD I could imagine to have the server sending death-name
> notifications.
Yes, that is the way to go. The question is how a task is actually
terminated. The obvious way is to have a user-level library function
like e.g. _exit() RPC the task server, so that the task server reclaims
the task, right?

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Hurd on Mach on GNU/Linux (verion 0.0.0)

2001-11-19 Thread Farid Hajji

Hi John,

> http://tobeyhutchison.com/jtobey/Hurd/gnumach-otop.tar-0.0.0.bz2
> 
> What this hopes to be is enough of GNUMach ported to POSIX/Linux to be
> able to run the Hurd binaries where they have been sitting on my disk
> since the last time I booted them up.
Wow, I'm truly impressed! I didn't yet download nor tried it, but
will do so on my development NetBSD/x86 box, just to be sure that it
really is POSIXish enough for my needs ;) As you've correctly guessed,
you're not the only one interested in a user-land mach emulation that
permits hacking on the Hurd inside a POSIX (restricted to x86-platforms)
system. [I hate frequent rebootings too ;-)]

Mach/POSIX seems to provide exactly the benefits that the VK/POSIX
scenario is supposed to implement. Since you're implementing Mach
rather than the simpler VK, running current Hurd programs would be
(hopefully) possible without any changes to the Hurd sources. In the
future, I'd prefer that we gradually move away from Mach and put the
Hurd sources on top of a simpler VK. If (and when) this transition is
made, you could hack on Hurd sources and run them on VK/POSIX on your
development POSIX machine and on VK/Mach on top of Mach.

People familiar with the VK concept can skip the rest of this mail.

On the l4-hurd mailing list, we're discussing the need for and form of
a layer between the [micro]kernel and the Hurd that will isolate the
Hurd from a specific kernel that it is running on top of. I called
this layer VK (virtual kernel). The idea is that the Hurd (and glibc)
should use _only_ functions from this layer to access the VK. VK
itself will relay those calls either directly to its underlying
[micro]kernel or will emulate missing functionality in user-land.

Depending on the underlying [micro]kernel, there will be many variants
of VK: VK/Mach, VK/L4, VK/POSIX etc... A VK will provide to its users
(which could be the Hurd or some other OS personality like user-land
Linux, user-land BSD, ...) a uniform set of "system calls". This is
somewhat similar to POSIX, which provides a set of system calls to
user-land programs. Just like there exist multiple implentations of
POSIX kernels (Linux, BSDs,...) there will be multiple implementations
of VK (VK/Mach, VK/L4, VK/POSIX...), all providing the same set of
system calls to OS personalities (and programs running on bare metal,
emmm, bare VK).

Concerning the Hurd, a naive approach would suggest that VK system
calls be exactly the same set of syscalls than Mach provides. This
way, VK/Mach would simply be a set of empty macros and be up and
running on Mach right away.  Furthermore, the Hurd would not need to
be modified to run on top of this simplistic VK. VK/POSIX would then
have to emulate as much Mach as possible so that the Hurd can run
there. This VK/POSIX would be exactly what gnumach-otop is intended to
provide!

Unfortunately, setting VK=Mach is not a good idea. If proved very
difficult to emulate enough Mach on top of L3 (a precursor of L4).
Moreover, and even more importantly, some characteristics of Mach
stand in the way of kernels providing faster IPC like L4. If we ended
up setting VK=[big subset of]Mach, VK/L4 would be slower than
necessary and Hurd/VK/L4 would be even slower than Hurd/VK/Mach or
Hurd/Mach. This would defeat the whole purpose of porting the Hurd to
L4 in the first place.

So VK will need to provide a sufficiently small subset of Mach to be
useful at all. This involves changing the Hurd sources to use less mach-
specific things that will not be present in VK. We're currently in
the process of assessing the Hurd requirements of such a VK and of
means to implement VK/L4. Once the set of VK syscalls stabilizes,
VK/POSIX (and most likely VK/Mach) could be rather quickly implemented.
Then, the Hurd sources will need to be modified to use only this
stable set of VK syscalls. Such hacking could be effectively done
either on Hurd/VK/Mach or Hurd/VK/POSIX, the latter being what John
is intending with gnumach-otop right now.

Okay, enough general talk for now and back to hacking...

> ps, OTOP means "On Top Of POSIX" but there are a few Linux and i386
> dependencies still in there.
> John Tobey <[EMAIL PROTECTED]>

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: mach_port_t vs task_t (really ipc_space_t) in Mach header files

2001-09-27 Thread Farid Hajji

Hi Marcus,

> I saw that the defs file have nice specific types like ipc_space_t and
> mach_port_name_t, but the C header files almost all have mach_port_t for
> them.  In the Hurd, we have a typedef for each of these types and keep
> them in the header.  We even use task_t in proc etc.
> 
> I am now using mach_port_t in mach.texi everywhere (where it is used in the
> generated C header file), rather than the more explicit type in the defs
> file.  But maybe we don't want that?
I've stumbled across this problem as I tried to convert some *.defs
to omg-idl. Since IDL is a strongly typed interface definition language,
keeping the more specific types seemed more sensible in a first try
(you could simply typedef those types away to mach_port_t).

Two questions:
  * are the more specific types at least _consistently_ used?
I doubt this is the case: a lot of files simply fall back to
mach_port_t later
  * are they really needed for architectural reasons, or, more
precisely, for better readability? In the Mach case, I'd
guess "maybe no," but on non-Mach VKs, that could well be
a different matter.

Actually, I didn't find the specific types in the *.defs very helpful
for drawing clean lines of abstractions. They seem to have been added
as an afterthought, but were propagated to the bulk sources very
half-heartedly, if at all. So if you're going to remove them, that
would be okay with me (IMHO).

At least, as far as _mach.texi_ is concerned, it may be okay, but
please remain consistent with Mach headers ;-)

What do others think?

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Why GNU Mach is so different?

2001-12-30 Thread Farid Hajji

> Now, I am reading (and studing) all docs that I could find about CMU 
> Mach UX e US, OSF e Utah Mach . I read old massages from lists too and I 
> strange that many important stuffs in research and others implementation 
> (like NORMA IPC, SMP, RT, ports...) are missing in the official 
> distibution (CVS). Why? Will be need to develop this stuffs again?
NORMA IPC Version 1 is currently only present in CMU Mach 3.0 and RTMach.
RTMach itself is availabe from NTT/Keio (please look at the-hurd-links.html
for the link) as a drop-in port for FreeBSD.

Support for NORMAv1 was dropped when the Open Group started to work
on NORMAv2. Unfortunately, they never publicly released that code,
so you'll have to study their whitepapers and try to reimplement
this yourself.

The question is rather if you should do so. I did quite a lot of
experiments with a cluster of Mach machines running NORMAv1 with
XMM; the reason being to continue the development on task migration
and load distribution started by Dejan Milojicic. This proved harder
that I expected in the first place and after discussing the issue
of (Mach-based) distributed memory management with people working
in the field; it became clear, that Mach sementics were _still_
too bloated to provide reliable TM+LD support.

This was also one of the main reasons for moving research towards
L4 and other lighter microkernels. Mach research seems to have
"stalled" in the last, say, 5 years, and we've learned quite a
lot from the Mach experiment. I wouldn't want to discourage you
from diving into Mach; its just that Mach is not at the "bleeding
edge" of research anymore (at least not mainstream).

> I want to work with distributed systems and clusters until the finish of 
> my course (college). I know that many work are being done with L4, but 
> in my understanding, when someone say that L4 is "working in process", I 
> see in Mach work done with many tests, researches and results waiting to 
> be improved and used.
I wouldn't buy the argument that Mach is finished wether L4 is WiP.
RTMach for example is still being actively developed and SMP support
is present and maintained in some (alas non-opensourced) Machs.

OTOH, L4 is stable enough to be used for real-world experiments:
Just look at the L4Linux emulation server, L4-Fiasco, L4Ka(Hazelnut),
L4/MIPS etc... kernels. They are all excellent and can be used
right now for experiments. The imminent release of the upcoming
new L4-API (Version 4) will also contribute to help boost L4-based
development further.

If you're really interested in clusters, distributed shared memory,
transparent cluster-wide IPC, task migration, load distribution,
crash resilience and recovery etc..., you may be much better served
by using L4 rather than Mach: IPC ist more reliable, since it's
not buffered by the kernel (think of crash-recovery of single
nodes w.r.t. checkpointing); NORMA-like semantics can be implemented
in user-land IPC servers, memory management was always (as in Mach)
the domain of user-land pagers, schedulers can also be user-land,...
More important though is the small amount of task/thread state that
needs to be transferred in the case of task migration. Without
ports redirection and all this having to be done in the kernel...

More on this, if you're interested.

> Others thoughts that I had, are about the Corba (I read something and 
> nothing more), modules for devices drives (like linux); those things are 
> better implemented on kernel or is possible on user space?
Regarding CORBA: The only part of it that we'll need in the Hurd
right now, is a good IDL stub generator that could replace MIG.
The path right now looks like we're needing to switch to flick
IDL compiler and change the *.defs with *.idl(s). Then, we could
use e.g. DICE or IDL4 to generate stubs for L4 instead of Mach.
Other CORBA stuff looks currently like unnecessary overhead to me.

The dream of uKernel developers is of course to move device
drivers outside the ukernel. The idea is to have user-land
device driver tasks that will serve interrupts etc... on
the one side and requests from an OS entity on the other side.

You _can_ write device drivers in userland, both for Mach and
for L4 (it's easier for L4). The point is not, that you can
do so, but if you could cannibalize e.g. the large Linux
driver codebase. One effort to do this was the OSKit which
you should really examine more closly. The OSKit is being
used both in the oskit-mach effort as well as in the L4
community. Another approach is (still-to-be-released) L4Env
environment, where it should be possible to drop the source
code of Linux drivers into a framework so that it integrates
in the L4 user-land tasks.

> I know that some ideas can be wrong... after some mounths trying 
> contribute to GNU/Hurd, I concluded that more study about OS is 
> necessary before I try 

Re: Why GNU Mach is so different?

2001-12-30 Thread Farid Hajji

> RT.  The Hurd is not a real time system.  It doesn't make use of RT.  The
> Hurd runs on RT Mach, though.  So you can use the real time extensions in a
> Hurd system, but you can't rely on the Hurd servers or the C library to do
> any RT'ish things for you.  Are the real time changes free?  We might
> include them by default in the future, if we find someone willing to
> port and maintain them.
Exactly!

> BTW, I guess some stuff was disabled (SMP) when the Linux device driver glue
> code was integrated, and never resurrected.  With oskit-mach, that part of
> the kernel has been cleared up again, and there is hope now to get stuff
> like SMP support back into our mach.
Agreed. But we'll definitely need some SMP machines to work on.
Its quite hard to find SMP motherboads with chipsets compatible to
both Linux, FreeBSD-CURRENT (with SMPng) and the yet-to-be-maintained
-and-updated Mach SMP code [and maybe a SMP-version of L4 as well] :-(.

If there is real interest, we can scan the above mentioned SMP codebases
for chipset requirements and post a summary here of what is needed. Someone
may have a list of hardware vendors for us too...

> > I want to work with distributed systems and clusters until the finish of 
> > my course (college). I know that many work are being done with L4, but 
> > in my understanding, when someone say that L4 is "working in process", I 
> > see in Mach work done with many tests, researches and results waiting to 
> > be improved and used.
> 
> i think some work can be done here, not only on the kernel level (which you
> need), but also in the Hurd servers.  I think passing ports over networks
> etc can be done in user space on the Hurd (and maybe should).  Beside those
You want to migrate _Mach_ ports over the net? This essentially means that
you have to transfer the message queue, but also leave a forwarding/
redirecting proxy at the old location until all clients have updated
their destination portnames. If you move the ports further, you quickly
develop a chain of forwarding proxies (which is bad). This is exactly
the problem with VM objects in the old Mach VM that was only recently
being solved in NetBSD's UVM (by early-collapsing the chains).

> technical features you need, there is, for example, the requirement to have
> a network-wide unique process id for a task.  Thomas calls such a network
> of Hurd systems a "collective".  I guess if you want to do distributed
> systems in a Hurdish way, collectives are the way to go.  The concept exists
> only in Thomas head, though, so you will have to nag him a bit to tell us
> about his ideas.
Network-wide unique identifiers like task-IDs, ports, etc... are a nice
thing to have. One idea may be to organize all nodes of a collective
in a distributed kind of (hurdisch) filesystem. IDs would then be
simple paths and could be located with some kind of distributed
lookup() functionality:

  /collective1/ # namespace for collective #1
  /collective1/ipc/ # ipc namespace (ports...)
  /collective1/ipc/machine1/# ipc namespace for machine1
  /collective1/ipc/machine1/port1
  /collective1/ipc/machine1/port2
  ...

  /collective1/vm/  # namespace for VM objects
  /collective1/vm/machine1/vmobject1
  /collective1/vm/machine2/vmobject25
  ...

Every member of a collective whould have to provide "translator-like"
functionality and register itself with the collective. Or if you prefer,
each machine will be "translator", serving its own set of ipc, vm, ...
namespaces. Now, _that_ would be hurdish!

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Why GNU Mach is so different?

2002-01-05 Thread Farid Hajji

> > Regarding CORBA: The only part of it that we'll need in the Hurd
> > right now, is a good IDL stub generator that could replace MIG.
> > The path right now looks like we're needing to switch to flick
> > IDL compiler and change the *.defs with *.idl(s). Then, we could
> > use e.g. DICE or IDL4 to generate stubs for L4 instead of Mach.
> > Other CORBA stuff looks currently like unnecessary overhead to me.
> 
> It's only not a simple thing. First the .defs are really mach-specific
> and MiG does a lot of things with ports we have to implement in the
> servers if we're going to use CORBA IDL.
Yes, that is exactly the problem. _Should_ we implement or duplicate
MiG functionality into a stub generator that is designed to generate
code for non-Mach systems? I'd prefer that we revisit the dependency
of the Hurd code (especially libports) of those MiGisms. This would
also contribute to boost performance, since most IPC would then be
synchroneous (this is just a guess) and would therefore require less
context switches.

> Second the IDL compilers are a problem. MiG is no option. Flick has a
> few problems (I copypast from the manual):
> * Thread Safety: Flick does not generate thread-safe code. If your
> application is multithreaded, you will need to provide explicit locks
> around the Flick-generated stubs.
> * Error Handling: Although the generated stubs generally handle errors
> in an appropriate manner, Flick's runtimes may fail an assert or exit
> in response to certain critical errors. A future release of Flick will
> better address error handling and recovery within the runtimes.
> * MIG language: The MIG front end/presentation generator is nearly
> complete but does not yet support all of the MIGisms you may love (or
> hate).
> 
> DICE and IDL4 are not available yet. However there is going to be some
> pressure to release IDL4, more on that later.
DICE is available, but doesn't generate stubs for Mach at the moment.
So it's not a real option while porting. IDL4 is expected to be released
any time soon.

Flick does have its drawbacks; there's no doubt about it. However,
the main advantage of flick (1.x) at the moment is, that it can
generate Mach stubs and L4 stubs. This is really important at this
moment. Once the transition to IDL is complete, we could always use
other IDL compilers that are better suited to Mach and L4 environments.
The biggest challange right now would be to migrate the Hurd to synch.
IDLs and drop MiG.

BTW, if there are some specific problems with the flick stubs,
why not fix them?

> L4Env is almost the same as OSKit, I don't see what's special about
> it. For me it looks like they are writing an L4 specific OSKit. I'm
> also a little bit more critical about the "drop the source code into
> the framework and it works" part. I don't think it's that simple, but
> maybe I just don't know enough about Linux and L4 drivers.
As long as L4Env is not released, we're just speculating here. You may
be right here. We just don't know.

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Why GNU Mach is so different?

2002-01-05 Thread Farid Hajji

> > Network-wide unique identifiers like task-IDs, ports, etc... are a
> > nice
> > thing to have. One idea may be to organize all nodes of a collective
> > in a distributed kind of (hurdisch) filesystem. IDs would then be
> > simple paths and could be located with some kind of distributed
> > lookup() functionality:
> > 
> >   /collective1/ # namespace for collective #1
> >   /collective1/ipc/ # ipc namespace (ports...)
> >   /collective1/ipc/machine1/# ipc namespace for machine1
> >   /collective1/ipc/machine1/port1
> >   /collective1/ipc/machine1/port2
> >   ...
> > 
> >   /collective1/vm/  # namespace for VM objects
> >   /collective1/vm/machine1/vmobject1
> >   /collective1/vm/machine2/vmobject25
> >   ...
> 
> Would not
> 
>/collective1/ # namespace for collective #1
>/collective1/ipc/ # ipc namespace (ports...)
>/collective1/ipc/port1
>/collective1/ipc/port2
> 
> be more useful?
It would be useful if you want to blur the distinction between
single machines. This may be useful in some cases (e.g. when the
machines are set up in a symmetrical way, meaning all machines
have roughly the same characteristics), but not in others.

Consider the case of some file servers, some compute servers and
say, some routers and/or protocol converters. You want to access
ports on specific machines for specific tasks. With the flat
namespace, you can't easily discover which port belongs to which
machine (at least not only by the pathname).

Even hybrid settings could be possible:

  /collective1/compute-servers/ipc/port1
  /collective1/compute-servers/ipc/port2
  ...
  /collective1/file-servers/ipc/port1
  /collective1/file-servers/ipc/port2
  ...

where 'compute-servers' and 'file-servers' would designate a group
of similar machines which could be treated as a group.

Using a flat-namespace would require an extended lookup a.k.a
name resolution algorithm to finally map the port to a specific
machine. It _could_ be done by the (distributed?) "translator"
that serves the names (e.g. by the translator service the
/collective1/file-servers hierarchy), but this would be added
complexity.

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Why GNU Mach is so different?

2002-01-05 Thread Farid Hajji

> > You want to migrate _Mach_ ports over the net?
> Actualy, what I thought of was only port forwarding.
Okay, that is the "easy" part, but the problem with the forwarding
chains persists.

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Why GNU Mach is so different?

2002-01-05 Thread Farid Hajji

> > Regarding CORBA: The only part of it that we'll need in the Hurd
> > right now, is a good IDL stub generator that could replace MIG.
> > The path right now looks like we're needing to switch to flick
> > IDL compiler and change the *.defs with *.idl(s). Then, we could
> > use e.g. DICE or IDL4 to generate stubs for L4 instead of Mach.
> > Other CORBA stuff looks currently like unnecessary overhead to me.
> 
> Just my curiosity: Is it difficult to convert CORBA (or DCE) to MiG?
> 
> If that's easy, we could use (such a converter | mig) for Mach and
> IDL4 (or DICE) for L4...
The problem with MiG is that it does more than just marshalling and
unmarshelling the arguments and calling mach_trap(). I doubt that
using a mig2idl converter would solve our problems here.  IMHO, the
canonical way to do this is to switch to synch IPC completely (this is
probably even possible with mig) and take care of the few cases where
notifications/callbacks are needed. Once this is done, switching to
IDL (or any other interface definition language) would be quite easy.

I'm not 100% acquainted to the subtleties of MiG though, so please
take this with a grain of salt.

> Okuji

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Why GNU Mach is so different?

2002-01-06 Thread Farid Hajji

> > Network-wide unique identifiers like task-IDs, ports, etc... are a nice
> > thing to have. One idea may be to organize all nodes of a collective
> > in a distributed kind of (hurdisch) filesystem. IDs would then be
> > simple paths and could be located with some kind of distributed
> > lookup() functionality:
> 
> It was always my plan to have a single IP address for a collective.  
> (The collective might use IP for communication between its component
> systems, but those addresses would be entirely internal.)

You certainly want to assign a multicast IP address to the collective,
right?

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Why GNU Mach is so different?

2002-01-07 Thread Farid Hajji

> > > > Network-wide unique identifiers like task-IDs, ports, etc... are a nice
> > > > thing to have. One idea may be to organize all nodes of a collective
> > > > in a distributed kind of (hurdisch) filesystem. IDs would then be
> > > > simple paths and could be located with some kind of distributed
> > > > lookup() functionality:
> > > 
> > > It was always my plan to have a single IP address for a collective.  
> > > (The collective might use IP for communication between its component
> > > systems, but those addresses would be entirely internal.)
> > 
> > You certainly want to assign a multicast IP address to the collective,
> > right?
> 
> No, that's not necesary.  At least in IPv4, multicast is too uncertain
> to rely on.
Hmmm... I use multicasting on *BSD boxes very heavily since years
and it works flawlessly. Cisco used to have some bugs in their PIM
Sparse tree pruning implementation, but they fixed that approx. 9
months ago. I used multicasting accross the public Internet without
problems (but alas not so intensively).

Of course, I can't say anything about the pfinet IP stack implementation.
If that proves to be faulty, it may be a good idea to grab the TCP/IP
code from, say, FreeBSD and wrap that into a bsd_pfinet translator.
Sure, it will only happen when it is really needed ;-)

> But there are other tricks that can work. :)  
Of course, one can always simulate multicasting or avoid it completely.
That is not a big issue.

Please tell us more about collectives. That is a very hot topic!

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: PROPOSAL: making liblinux_net library

2002-01-14 Thread Farid Hajji

> > > 1). I propose to move all linux code out of pfinet and make separated
> > >  library with linux ip stack. 
> > 
> > This is not a horrible idea, and I once thought of doing the same
> > thing myself.
> 
> What would be *really* nice is a nice library with nice well-defined
> and reasonably stable interfaces, that can be used by all of
> linux-kernel, hurd-pfinet, maybe even bsd-kernels and random oskit
> applications. What Olin Shivers would call a 100%-solution.
Look at netgraph(4) in FreeBSD:

   
http://www.FreeBSD.org/cgi/man.cgi?query=netgraph&apropos=0&sektion=4&manpath=FreeBSD+4.4-stable&format=html

It looks like an interesting and probably portable way to achieve what
you're looking for.

> But I'm afraid (without actully having looked deeply into the issues)
> that it would be a big job, both technincally and "politically", i.e.
> getting various kernel developers to start using it.
Sigh...

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: PROPOSAL: making liblinux_net library

2002-01-23 Thread Farid Hajji

> On Wed, Jan 23, 2002 at 05:12:30PM -0500, Neal H Walfield wrote:
> > Wrong.  The only reliance that um-pppd has on pfinet is a tunnel
> > device; everything else is pretty much standard.
> 
> And the tunnel device has all the semantics from the BSD tunnel device,
> because that was my reference implementation at that time.

We're probably not talking about the same ppp version anymore.
The tunnel device in pfinet behaves correctly, but try to compile
a recent ppp, e.g. taken ouf of the FreeBSD -STABLE or even -CURRENT
tree. Good luck! I'd be really impressed if that worked without Ng*()!!

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: PROPOSAL: making liblinux_net library

2002-01-23 Thread Farid Hajji

> > BTW, a BSD-based pfinet is highly desired, mainly because of
> > um-pppd.  Recent changes in the FreeBSD Net/3 (especially the
> > netgraph(4) infrastructure [e.g. ng_pppoe], KAME, ...) influenced
> > 'ppp' so much, that it would be very hard to synchronize FreeBSD ppp
> > with the Hurd version in the forseeable future.
> 
> Wrong.  The only reliance that um-pppd has on pfinet is a tunnel
> device; everything else is pretty much standard.
> 
Really? Here's an example where this is not true (anymore?). In
FreeBSD 4.5RC (-STABLE), last cvsupped 01/20/2001:

farid@bsdevil:/usr/src/usr.sbin/ppp> uname -a
FreeBSD bsdevil.rent-a-wizard.net 4.5-RC FreeBSD 4.5-RC #0: Mon Jan 21 02:26:11 CET 
2002 [EMAIL PROTECTED]:/usr/obj/usr/src/sys/MYTOWER  i386

farid@bsdevil:/usr/src/usr.sbin/ppp> grep ng_pppoe * 
ether.c:#include 
ether.c:if (modfind("ng_pppoe") == -1 && ID0kldload("ng_pppoe") == -1) {
ether.c:  log_Printf(LogWARN, "kldload: ng_pppoe: %s\n", strerror(errno));
ppp.8:.Xr ng_pppoe 4
ppp.8:.Xr ng_pppoe 4 ,

Here, ether.c uses the ng_pppoe KLD to provide PPPoE support.
Of course, the code for this is only included when:
  #if defined(__FreeBSD__) && !defined(NOKLDLOAD)
but this is not always the case. I see a _LOT_ of references to
netgraph(3) Ng*() functions throughout the code.

So it may still be necessary to port Net/3 and netgraph(4) to the
Hurd anyway, if we want to be able to synchronize to the most
recent ppp version, right? Of course, we could rely on the current
um-pppd, but, we'll miss pppoe and other goodies them!

Regards,

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: PROPOSAL: making liblinux_net library

2002-01-23 Thread Farid Hajji

> Really? Here's an example where this is not true (anymore?). In
> FreeBSD 4.5RC (-STABLE), last cvsupped 01/20/2001:
   ^

Of course, I meant 01/20/2002 ;-)

Sorry about the confusion.

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: PROPOSAL: making liblinux_net library

2002-01-30 Thread Farid Hajji

> > Really? Here's an example where this is not true (anymore?).
> 
> I was referring to this [1] implementation which makes a minimal use
> of BSD features -- at least when I ported it.
> 
> [1] http://www.awfulhak.org/ppp.html
Okay, that clarifies a lot of things ;-)

Regards,

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Thoughts about the new X.2 spec...

2002-02-01 Thread Farid Hajji
ng
   to understand the L4 IPC model and think of ways to change the
   current HURD asynch model to a more efficient/streamlined synch.
   IPC model. Even if you read the X.0 spec before, please read X.2
   IPC spec as well!

   Sure, most of the IPC would be done by a decent code generator
   that would ideally support IDL as input language. In this case,
   we would have probably caught most IPC cases between client(libs)
   and the Hurd servers. The remaining cases could still be handled
   manually (read: through specially tailored libraries that use
   the specific IPC semantics of X.2).

   What are the special cases exactly? Let's (theoretically for now)
   try to write them in pseudo code using the X.2 generic programming
   interface. This would be highly instructive!

9: This is especially important w.r.t. pagers, exception handlers,
   schedulers etc... One example: The initial user-level pager
   \sigma0 would be queried by OS-personality pagers once to get
   either the full physical memory (have it mapped/granted in their
   address spaces) or only a part of it (if two or more OS-Personalities
   are configured to run side by side).

   Now we'll "just" have to implement a decent pager for the Hurd
   that exports the Mach vm_*() semantics or anything else, if
   we decide to get rid of mach specific stuff a la MOs entirely.
   I still suggest that we base our work on UVM, but that is not
   a religious issue anyway.

   Because L4 supports multiple pagers, I could imagine that we
   will also have special kinds of persistent threads that register
   with a persistency pager. Anyway, we're free to use the pager
   we want for the threads we want. That's a Good Thing(tm).

   Another thing is that we should consider wether server threads
   should be allowed to map/grant pages with user data (say e.g.
   contents of a file[-buffer]) to clients directly, bypassing
   the global [UVM?] pager. This is possible in L4, with the
   cooperation of both pager theads associated with the sender
   and receiver.

  Mapping pages as part of the IPC between a file translator
  and a client could already result in heavy optimization
  compared to the current copying model. Bypassing the
  global pager would _perhaps_ result in yet faster IPC,
  but that is not sure. More on this later...

Okay, enough hype for now. Please do read the X.2 specs and let
us share thoughs about this ONLY on [EMAIL PROTECTED] (no need to bog
down bug-hurd with this. This mail is the only announcement to
bug-hurd as a friendly HEADS UP).

Thanks,

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: GNU/Linux binary compatibility (Was: Re:memory_object_lock_request and memory_object_data_return fnord)

2002-03-25 Thread Farid Hajji

> > might even introduce a security problem. Thus we would need to recompile
> > all programs anyway. I can't see the point of having binary
> > compatiblity then.
> 
> If a user just wants to play Quake V or Duke Nukem Forever, he might not
> need to care about PATH_MAX, as these programs will most likely only
> open trusted files.
> 
> Then again, if this is all he wants to do, some kind of binary
> compatibility layer might do the job just as well.  FreeBSD users claim
> to be quite happily running the GNU/Linux version of Quake III on their
> computers using compatibility libraries.

Quake III runs flawlessly on my FreeBSD 4.5-STABLE box. A lot of other
Linux-only binaries run too, like Maple, Oracle 8i, Java SDK 1.4.0 for
Linux, StarOffice 5.2, RealPlayer, etc... Some Linux binaries run even
_faster_ under FreeBSD than under Linux (e.g. setiathome client for Linux).
Go figure!

They are three aspects of BSD's Linux compatibility:

1. {Free,Open and Net}BSD provide Linux binary compatibility through a
simple trick: They just provide besides their normal ABI the Linux
ABI as well. When a Linux binary generates a syscall() and so a trap,
*BSD takes over and either handles the trap the BSD-way (most of Linux'
syscalls fall under this category) or the trap is redirected to a
Linux-specific kernel module which maintains enough state to implement
the Linux-specific things.

2. The BSD loader can recognize a Linux binary (if it is branded as
Linux ELF, else one can brand that binary manually with brandelf(1)).
Such binaries are then linked against the normal Linux dynamic libs
like glibc etc... Note that there is nothing special about the compat
libraries: they are just the normal Linux libraries. Users can replace
them or add their own linux libraries that would be used instead if
they wish. As soon as, say, glibc calls (linux) syscall(), the trap
handler in 1. takes over.

3. Linux' /proc filesystem differs from BSD's /proc fs. For this
reason, the BSD's implemented a subset of Linux' /proc (called
linprocfs) and mount it e.g. on /usr/compat/linux/proc. The linux
trap handler (more exactly, the VNODE layer) detects calls to /proc
from linux binaries and transparently redirects them to linprocfs.

The main advantage of BSD's Linux compatibility ABI is
  a. it exists ;-)
  b. it runs as fast as the native BSD ABI
 [actually, there is no such thing as a native and an emulated
  ABI in BSD. Both BSD and Linux ABIs are first-class citizens]

The main disadvantage of the current implementation of Linux compat
under BSD is
  c. it is still uncomplete [e.g. only subset of /proc in linprocfs,
 yet enough for most purposes, and some problems with specialized
 linux kernel modules (say ALSA...) that have no correspondent
 or mappable pendant in BSD].

There are other binary compatibility modes besides Linux. See NetBSD
http://www.netbsd.org/ for good examples of binary compat modes for
a lot of architectures ;)

All in all, binary compatibility is a nice thing to have.

> Oystein

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: %gs:0 thread pseudoregister in oskit-mach

2002-04-23 Thread Farid Hajji

Roland, Jeroen,

I know this is irrelevant for oskit-mach proper, but it may be
interesting to know if you're introducing any dependency in,
say, glibc/pthreads:

  In the L4 V4 spec, Appendix A (x86 Interface), register %gs
  is used to point to the UTCB of the current thread (read-only).

Please see http://l4ka.org/documentation/files/l4-x2.pdf

Regards,

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: %gs:0 thread pseudoregister in oskit-mach

2002-04-24 Thread Farid Hajji

Roland McGrath wrote:

> > I know this is irrelevant for oskit-mach proper, but it may be
> > interesting to know if you're introducing any dependency in,
> > say, glibc/pthreads:
> > 
> >   In the L4 V4 spec, Appendix A (x86 Interface), register %gs
> >   is used to point to the UTCB of the current thread (read-only).
> 
> You may need to change that.  The %gs:0 word will become part of the
> ELF/x86 ABI for TLS support.

Huston, we're gonna have a BIG problem!

The UTCB is a central information page for L4 userspace threads
and it's pretty difficult to find another x86 register that can
be used to point to it.

Espen, I know the spec can't be changed at this point. Do you see
any workaround for this problem?

Regards,

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: %gs:0 thread pseudoregister in oskit-mach

2002-04-24 Thread Farid Hajji

> > The UTCB is a central information page for L4 userspace threads
> > and it's pretty difficult to find another x86 register that can
> > be used to point to it.
> 
> What's wrong with %fs?  But anyway, that is fine if the one word at %gs:0
> can be made available for user use.  Ideally that word would be writable
> (which you could manage along with read-only use by situating the segment
> base on a page boundary, one page writable and one not).  But the only
> thing that would write it is pthreads innards, so it would be workable to
> have a system call to set the %gs:0 word for a thread.
 
Hmmm, the L4 X.2 spec only says that %gs:0 points to the UTCB area
and that it should be read out.

If userspace threads can change %gs:0 without interfering with L4, fine.
We could just squirrel %gs:0 away in crt0.c before glibc takes over
and changes %gs.

BUT, I'm not sure if
  * %gs:0 can be written to by userspace threads
  * the L4 API _implementation_ reads %gs:0 afterwards.

> I don't know the L4 interfaces, but why not just make this page accessible
> at a canonical address accessible from the standard user %ds segment?
%ds and other registers are needed for the L4 syscalls.
The problem is that especially x86 has so few registers :-(

Espen or someone from the L4ka team should comment on this, please.

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
One OS To Rule Them All And In The Darkness Bind Them... --Bill Gates.


___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: File Share and Sandbox project

2002-10-06 Thread Farid Hajji
access control is limited to  the compositions of users
> in  groups.   A user  belonging  to   a group has  access  privileges
You should read the papers of the L4 people who had to struggle with
exactly the same kind of authorization and authentication issues.
They developed L4 with security in mind and are still refining their
security model, even redoing it from scratch in some parts (they dropped
the clans and chiefs model for instance).

> Goal   one:   enable simple  user   configurable   file  sharing  with
> granularity, in a user space implementation.
Yes, "fileshare" is indeed a very good example.

> III. Process Rights Management: Sample application: Confined Email
> 
> Goal two:  Implement a secure  'virtual sandbox' for potentially rogue
> processes whose authenticity or  unverifiability make them a threat to
> the user.
What would be the fundamental difference between traditional chroot(2) or
jail(8) environments and this scenario? Basically, they're the same,
aren't they?

> V. Related discussions.
> 
> If I have overlooked places where there is or was prior ideas that you
> are aware of, I will appreciate being made aware of them.
Is the discussion taking place offline or on #hurd? I didn't see
anything on bug-hurd as yet.

> Time line: My goal is  to complete a workable  version of the first run
> of this translator prior to Jan 1 2003.
Good luck!

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
Due to budget cuts, light at end of tunnel will be out. --Unknown.



___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Mach ports use

2002-10-27 Thread Farid Hajji
> To communicate between two translators, is it better to have one
> bi-directional port, or to have two mono-directional ports ? What are
> the advantages/issues of these both ways ? Which ones allows (in theory)
> the highest rate of data transfert ?
> I think two ports can be better (it is for network purpose), am I right
> ?
As far as Hurd/L4 is concerned, mono-directional ports
are the only possible alternative.

> olivier

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
Due to budget cuts, light at end of tunnel will be out. --Unknown.



___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: [OT]: Hurd microkernel portability.

2002-12-07 Thread Farid Hajji
> > > It tickles to me read things like, "netbsd, the most portable OS in
> > > the world", and stuff like that.
> > Anything wrong with that?
> GNU/Hurd ultimately needs to be 'THE OS'. We can't compromise on that,
> can we ??
Why? GNU/Hurd is a great system, and it would be even better if
more people worked on it. Yet it has its shortcomings, as we
all know. No OS could IMO cover all aspects. Just think of
embedded OS(es) (both time-triggered and interrupt-controlled),
OSes for SIMD and MIMD architectures, ...

Ah, you meant "Desktop/Server OS?". Well... ;-)

-Farid.

-- 
Farid Hajji -- Unix Systems and Network Admin | Phone: +49-2131-67-555
Broicherdorfstr. 83, D-41564 Kaarst, Germany  | [EMAIL PROTECTED]
- - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - -
Due to budget cuts, light at end of tunnel will be out. --Unknown.



___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd



Re: Design your own Linux-shoes

2003-07-11 Thread Farid Hajji
> Sending "Spam" to Linux-users.=20
> How dumb can these guys be you must be thinking? =
> This is like teaching Bill Gates the word "open source" or like having =
> sex with Mrs. Tyson. So, before you bomb the hell out of us or instantly =
> block all of our IP addresses, please do listen up. We're not as stupid =
> as you might think. We, like you, are proud Linuxers ourselves, so how =
> could we be? We got your address searching on linux sites and we promise =
> we will only use it once. What do you say? Deal?


  ROTFL! So called "Linuxers" who spam HURD (!) lists,
  add HTML to double the bandwidth waste, and use

X-Mailer: Microsoft Outlook Express 6.00.2800.1158
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165

  sending from:

  Received: from node1fc5f.a2000.nl ([24.132.252.95] helo=localhost)
by gnuftp.gnu.org with esmtp (Exim 4.20) id 19b6YL-0001o4-SY
for [EMAIL PROTECTED]; Fri, 11 Jul 2003 18:39:53 -0400

  a2000.nl's broadband service. What creeps.
  Yeah. Proud "linuxers". You've made my day!


Please, let's change the posting policy of our lists
to subscribers only. I know this has been discussed at
length so many times before, yet no-one at gnu.org seems
to care.

Sorry, this was OT, but I couldn't resist this time.

-FH.

-- 
Farid Hajji. http://www.farid-hajji.net/address.html 



___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd


Re: Design your own Linux-shoes

2003-07-11 Thread Farid Hajji
> > Please, let's change the posting policy of our lists
> > to subscribers only. I know this has been discussed at
> > length so many times before, yet no-one at gnu.org seems
> > to care.
> 
> No, it's useful for non-subscribers to send messages.

That doens't happen so often. If we grep out all known
subscribers, what does remain?

Are we afraid of losing one or two legitimate mails
out of many spams? We can safely assume that people
who are interested in the Hurd are also capable of
subscribing to a mailing list before posting their
queries (especially if automatically asked by mailman
or whatever)...

> Also some
> people have mail configured to send mail from a different
> address than their reply address is.

Have them subscribe all sending addresses, and eventually
filter (or ignore) any duplicates on their side. It is also
possible to disable delivery from the mailing list manager
to all but one address.

> Robert Millan

Now getting back in lurker mode...

-Farid.

-- 
Farid Hajji. http://www.farid-hajji.net/address.html 



___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd


Re: Design your own Linux-shoes

2003-07-12 Thread Farid Hajji
> > > > Please, let's change the posting policy of our lists
> > > > to subscribers only. I know this has been discussed at
> > > > length so many times before, yet no-one at gnu.org seems
> > > > to care.
> > > 
> > > No, it's useful for non-subscribers to send messages.
> > 
> > That doens't happen so often. If we grep out all known
> > subscribers, what does remain?
> 
> My messages, for example. They're tagged by mailman as message
> from non-subscriber.

Yep... :-/

-- 
Farid Hajji. http://www.farid-hajji.net/address.html 



___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd


Re: creation time as Hurd extension?

2003-07-18 Thread Farid Hajji
> > what about having the creation time of a file as an Hurd extension, which is
> > maintained across copies, like the author?
> 
> It seems far more useful than the author bits.

Why restricting meta data to a fixed set of attributes?
I've read about a (user-)extensible meta-data scheme some
years ago in a paper. Unfortunately, I didn't copy that or
its reference (arghhh) back then, and I can't find it now :(

-- 
Farid Hajji. http://www.farid-hajji.net/address.html 



___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd


Re: creation time as Hurd extension?

2003-07-18 Thread Farid Hajji
> > Why restricting meta data to a fixed set of attributes?
> > I've read about a (user-)extensible meta-data scheme some
> > years ago in a paper. Unfortunately, I didn't copy that or
> > its reference (arghhh) back then, and I can't find it now :(
> 
> A particular filesystem implementation can have its own extensions and
> its own tools to use these extensions -- except that such extensions
> are not be available via io_stat ().  For instance, ext2 has its own
> attributes that can be managed using lsattr or chattr (under GNU/Linux).

Sure, but that was not what I'm meaning here. Every FS implementation,
including ext2, provides currently a _fixed_ set of attributes/extensions.
This set is generally hard coded in inodes. There is no way for a user
to attach her own set of meta data to the standard set, because the
implementation uses fixed space in the inode (bitmaps etc...) for those
attributes. Even ACLs are currently implemented this way in most FS.

There is no compelling reason to store extensions directly in inodes.
They can be hung off from the inode and stored either in regular or,
shall I say, metadata files (think about it: directories are regular
files too), or in blocks managed by the file system itself. Of course,
the question is how to access these attributes through a special system
call. Things like LDAP come to mind, though they are not necessarily the
only possible solution.

As a quick hack, I could imagine an inode namespace like this:

/fs/.inodes/12343
/fs/.inodes/14232
/fs/.inodes/23232

The meta attributes for inode 12343 in /fs would be stored
in the meta-file /fs/.inodes/12343, e.g. in LDIF format:
  cn: blah blah  # canonical file name
  au: author
  desc: this file is about blah blah
  desc: more desc.
  acl: user-x user-y user-z
  acl: user-a user-b user-c
  acl: user-m user-n user-k

This scheme is extensible, because users are free to add/modify
attributes, just like they would in an LDAP directory. Of course,
not every attribute would be user-accessible/modifiable, so
those meta data files would only be accessed through syscalls
(just like directories in Unix can only be written to by the
FS implementation).

Well, that's just an idea (and not the one in that paper).

> Ludovic.

-- 
Farid Hajji. http://www.farid-hajji.net/address.html 



___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd


Re: Hurd Sourcecode Cross Reference [was:Re: Hurd advocacy?]

2003-08-23 Thread Farid Hajji
> Hi All,
> Thanks for the Source code browser link. Does any body has idea if a
> simmilar software exists to browse local (offline) source code
> repositories ? 

Why won't you use GLOBAL?

>From the package description:

"GLOBAL is a source code tag system that works the same way across diverse
environments.  Supported languages are C, C++, Yacc, Java, PHP and Assembly.
You can locate a specified function in the source files and move there easily.
It is useful for hacking a large project containing many subdirectories,
many '#ifdef' and many main() functions, like MH, X or BSD kernel."

WWW: http://www.gnu.org/software/global/

You can convert every set of source files to HTML with the program
htags (which is part of the global distribution).

> Thanks.
> Ashish

-- 
Farid Hajji. http://www.farid-hajji.net/address.html



___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd


Re: Hurd Sourcecode Cross Reference [was:Re: Hurd advocacy?]

2003-08-23 Thread Farid Hajji
> > Hi All,
> > Thanks for the Source code browser link. Does any body has idea if a
> > simmilar software exists to browse local (offline) source code
> > repositories ? 
> 
> Why won't you use GLOBAL?
> WWW: http://www.gnu.org/software/global/

See also:
http://www.gnu.org/software/global/links.html
subsection "Source code browsing Tools"

> > Thanks.
> > Ashish

-- 
Farid Hajji. http://www.farid-hajji.net/address.html



___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd


Re: "network administrator" in GNU/Hurd

2003-08-23 Thread Farid Hajji
Replying to my own post:

> Actually, it would be nice to port the jail(8) mechanism to the Hurd.  We
> could perhaps even rename it to matrix(8)... ;-) Anybody volunteering?

If someone is interested in this, I'd suggest to start experimenting
with sub-Hurds (you can start a new set of Hurd servers from within
the Hurd). In a nutshell, a sub hurd _can_ provide a virtualized
environment, similar to jail(8), when configured properly. There are
some issues like synchronizing access to devices which need to be
addressed, but this looks like a manageable task. Once problems with
sub-Hurd are sorted out, a jail(2) syscall and command tools like
FreeBSD's could be added to glibc as well.

-- 
Farid Hajji. http://www.farid-hajji.net/address.html



___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd


Re: L4??

2003-09-11 Thread Farid Hajji
> Hello from Gregg C Levine
> What is, the L4? About all I know about that term, is that it's a
> Lagrange point in space. I vaguely have heard about it, someplace, in
> relationship to the base HURD project, but that's all. 

L4 is a modern microkernel, optimized for IPC performance.
It is actively developed and supported by the research
community. A port of the Hurd to L4 is under way (currently
at the design phase).

The specific L4 implementation that will be used is
L4Ka::Pistachio, available here:
  http://l4ka.org/projects/pistachio/

Most discussions on the Hurd/L4 port are taking place on
the [EMAIL PROTECTED] mailing list. Archives:
  http://mail.gnu.org/pipermail/l4-hurd/

-- 
Farid Hajji. http://www.farid-hajji.net/address.html



___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd


Re: disallow direct inclussion of

2003-10-04 Thread Farid Hajji
> > > I think we should disallow direct inclusion of  in Glibc, any
> > > comments?
> > 
> > This is not an issue related to the Hurd at all.  If you think that this
> > should be done, for whatever reason, you need to talk to the glibc
> > maintainers.
> 
> I know. But this seriously affects portability to non-Linux-based systems,
> which includes GNU/Hurd. 
> I'm really sick of encountering programs that break because of arbitrarily
> including  stuff. Today I just recieved a patch for a program I
> maintain that adds an #include on  just to get the PATH_MAX
> macro. I'm going mad with this kind of stuff.
> 
> If people really want Linux-specific features, let them define _USE_LINUX or
> something like that.

Same problem for BSD porters. This is _really_ annoying for every
non-Linux porter/maintainer out there. I'd strongly support such
a move; perhaps starting with a deprecation #warn-ing, and later
changing this to a hard #error.

> Robert Millan

-- 
Farid Hajji. http://www.farid-hajji.net/address.html



___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd


Re: disallow direct inclussion of

2003-10-04 Thread Farid Hajji
> > I think we should disallow direct inclusion of  in Glibc, any
> > comments?
> There don't exist any  headers in glibc, they come from
> Linux.

Perhaps glibc should provide its own  wrappers which
would spew out warnings, but still #include the real linux headers
(I assume something from /usr/src/linux/include/*.h or whatever)
anyway?

> Jeroen Dekkers

-- 
Farid Hajji. http://www.farid-hajji.net/address.html



___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd


Re: on what kernel is the Hurd running presently .

2003-12-31 Thread Farid Hajji
> is it mach 4 or l4 .can some body give me the details
>about the exact state of l4-Hurd combination .

Hurd/L4 is a project that aims to port the Hurd from GNU Mach to
the L4 microkernel. To be more precise, to the L4Ka::Pistachio
implementation of L4:
  http://l4ka.org/projects/pistachio/

Please refer to the [EMAIL PROTECTED] mailing list, archived here:
  http://mail.gnu.org/pipermail/l4-hurd

-- 
Farid Hajji. http://www.farid-hajji.net/address.html



___
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd