[comp.os.minix] Working on CLIPPER port of Minix

bill@ingr.UUCP (Bill Welch) (07/19/88)

I am currently porting Minix to the ZAIAZ 933, an Intergraph (was 
Fairchild) CLIPPER based system.  The work is proceeding fairly
well, and I am impressed at the portability and clarity of the
Minix system.  If I may, I would like to mention several issues
that I have run across, and I would appreciate any comments.

1. I have applied the 1.2 and 1.3 Minix updates to the sources
   that I am using, but haven't tested them on an AT.  I hope
   that by reading comp.os.minix, I will be aware of any changes
   to 1.3.
2. I had to change the various printf related library routines
   to use the "varargs" method, since the CLIPPER compiler that
   I am using passing some of its arguments via registers.
3. I suggest that future versions of Minix place the mmu related
   data inside of a larger structure, rather than the array
   of structures presently used.  This would be more flexible.
   On the CLIPPER, I need to store some info about the page
   tables, and this is per process info, not per segment info.
4. The current method for signal handling requires that the
   user program be able to execute the "IRET" instruction.
   Wouldn't it be more appropriate to simulate this with non-
   priviledged instructions?
5. Is anyone working with floating point?  I need to add a
   method of saving/restoring/initialising the CLIPPER FPU
   registers.
6. By the way, the CLIPPER has 3 sets of registers-- kernel,
   user, and floating point.  Minix may be the first software
   on the CLIPPER that allows both user mode and kernel mode
   processes (and sys calls).  This makes for interesting
   context switches.
7. There are some alignment problems that I suggest be fixed
   in future versions of Minix.  In particular, the method
   used by "exec" both in the library routine and the MM
   itself doesn't make sure that pointers are aligned on
   pointer boundaries.  Are there other places I should be
   aware of?  Unfortunately, the CLIPPER doesn't handle these
   situations very well.  It doesn't work, and doesn't cause
   an exception either.
8. Is it true that interrupts are disabled for the entire
   duration of the "sys_call"?  Would this be difficult to
   change?
9. I am looking for CLIPPER language tools (C compiler, etc)
   that could be ported to run under Minix.  If anyone has
   already ported GNU's gcc, for example, I would like to
   hear from you.

   bill welch
   zaiaz international
   uunet!ingr!zaiaz!bill