[comp.os.minix] Direction of MINIX

rheffel@cs2.wsu.edu (05/31/89)

  I will now add my 2 bits about the direction of MINIX.  MINIX is a good
tool for  teaching and learning about OS.  However, not only do you have to
keep up with the market trend in hardware  ie 286/386 machines, it is also
imperative to teach the principles of protected mode hardware and its
influence on OS.
  I intend to upgrade to 286 MINIX and run it from now on.
  Nevertheless, I do agree with another MINIX devotee that MINIX needs a C
compiler that produces large model programs.
  That is it.
Rich Heffel (rheffel@cs2.wsu.edu)

rbthomas@athos.rutgers.edu (Rick Thomas) (06/07/89)

First)

Minix is clearly (as lots of people have said) heading in two different
directions:  The "teaching" version that runs on cheap XT clones, and
supports only "small" programs; and the "hacker" version that runs on
32 bit hardware with multiple Megabytes of RAM and big hard disks and
has a compiler that supports big programs.  (What people with 80286
based machines will do is problematical.)

Second)

Andy has agreed to support the "teaching" version as an adjunct to
keeping his book up to date.  (He may not have thought of it in this
way, but for the purposes of this message, that is what it amounts
to.)  He has announced his intention to bring the teaching version up
(-: if "up" is the right word... :-) to POSIX compliance, and to keep
it small in so doing.  This will inevitably be accomplished at the
expense of support for the "hacker" version.

Third)

There is (at present) no single person with an announced intention of
supporting the "hacker" version of Minix to the extent of maintaining
an "authorized" set of source code for it.  Many people have made
tremendous contributions to the effort, but there exists no
"authoritative" collection of contributions that one can retrieve (over
the net, by e-mail, by paper mail, or any other way) with a
comprehensive index that allows one to pick and choose intelligently
amongst the options.  (The "bugs" archives are great (and we owe the
maintainers a vote of thanks!) as far as they go, but they are much too
large to be fully useful given the rather limited indexing technology
that is available.)  We need someone whom we all trust as much as we
trust Andy, and who is as dedicated to maintaining the purity of the
"hacker" version as Andy is to the "teaching" version.

Finally)

There are lots of things that would be nice to have in the "hacker"
version of Minix (I have my own wish list:  Large model compiler (would
GCC fit this bill?), protected mode support, POSIX compliance,
job-control (though I don't like the BSD way of doing it -- I
personally think the System V way -- with the "shl" program providing
multiple virtual terminals -- sort of a poor man's window system -- is
cleaner -- but it needs a couple of features from BSD to round it out
-- perhaps the POSIX people have a workable compromise), graphics
support, and so on...  We can debate the merits til the cows come home)
but the first thing it needs is a "champion".

Any volunteers?
-- 

Rick Thomas
uucp: {ames, cbosgd, harvard, moss, seismo}!rutgers!caip.rutgers.edu!rbthomas
arpa: rbthomas@CAIP.RUTGERS.EDU

wbeebe@rtmvax.UUCP (Bill Beebe) (06/07/89)

This message is empty.

jca@pnet01.cts.com (John C. Archambeau) (06/09/89)

The problem with a large model compiler is how are large model programs going
to be maintained by Minix?  It's not the compiler that's going to be the
problem, it's juggling around the code and data segments of the program by the
kernel.  The fact that the kernel keeps track of one code segment and one data
segment under the current Minix makes live hellishly simple.  All the compiler
does is generate code, the linker will arrange the segments in some order that
makes it manageable under Minix.  So before you people start chanting 'large
model' compiler, I want to hear the following;
 
1. How are the segment registers going to be maintained?
 
2. Are there going to be memory models (ala MesS-DOS C), and if so what
   are they?

3. How will pointer types be handled?  This is a big problem under
   MesS-DOS C compilers with your near, far, and huge pointers.  And will
   each memory model have a default pointer size?

I agree that a large model compiler is highly desireable, but how is the
kernel going to handle large model programs?  When this question is answered,
then a large model compiler will be a reality, but you can't really do a thing
until that question is answered.  I also have it on fairly good authority that
GCC can not be ported over to 80x86 (where x < 3) machines easily.  Some have
considered the thought to be more trouble than its worth.  The problem is the
64K segments, with large model programs, they get in the way.  I believe that
the 'real' versions of 80x86 UNIX handle the large model problem just by
making shared code segments, which is more of a hack than a real answer to the
problem at hand.  I have no qualms about writing a C compiler myself for
Minix, but to achieve this large model business, some of us will have to
decide exactly how 8086/80286 Minix will handle large model programs.  Memory
and process management for multiple code and data segments for a single
process won't be fun, but I'm pretty sure it is doable, and if done correctly
it might even run quite nicely.  Once all of these problems have been handled,
a bare bones ANSI C compiler with simple peephole optimization won't be far
off.  The lexer and parser for shareware/PD ANSI C compilers can be pulled for
the new Minix C and the only thing that needs to be written is the back end of
the compiler.  Later, if any of us have any brain cells or sanity left, more
optimization can be done to produce nice tight code.

 /*--------------------------------------------------------------------------*
  * That's not an operating system, this is an operating system!
  *--------------------------------------------------------------------------*
  * UUCP: {nosc ucsd hplabs!hp-sdd}!crash!pnet01!jca
  * APRA: crash!pnet01!jca@nosc.mil
  * INET: jca@pnet01.cts.com
  *--------------------------------------------------------------------------*/
  
#include <disclaimer.h>

EPRF%SNYCENVM.BITNET@cornellc.cit.cornell.edu (Peter Flass) (06/12/89)

-- How to handle "large model" programs in 8086 systems --
My vote, in the interests of keeping things simple, would be to have
MINIX-PC continue to keep track of one-each I and D "segments", but allow
the segments to be arbitrarily large.  The compiler should be responsible
for managing pointers to map the Minix segment to the 8086 segment.

I don't see a need, in general for sophisticated memory management in
Minix, but the operating system should keep out of an application's way
as much as possible. One program should be able to use all free memory
if necessary.

      - Pete


+---------------------------------------------------------------------------+
|                                                                           |
|   PETER FLASS                      BITNET:   EPRF@SNYCENVM (PREFERRED)    |
|   DIRECTOR OF COMPUTING SERVICES   INTERNET: ESCFLASS@UBVM.CC.BUFFALO.EDU |
|   SUNY EMPIRE STATE COLLEGE        AT&TNET:  (518)587-2100 X350           |
|   2 UNION AVENUE                                                          |
|   SARATOGA SPRINGS  NY  12866      "THIS SPACE FOR RENT"                  |
|                                                                           |
+---------------------------------------------------------------------------+

goedhart@utrcu1.UUCP (Goedhart) (06/15/89)

Hi,
I think MINIX is great, and I want to thank dr. Tanenbaum for having
created it. It is used at our school as a teaching tool. 

But, I don't think people should use it as a 'cheap UNIX'. People who
want such an operating system should look elsewhere.

Now the protected mode bit. It would be great to have a MINIX which uses
the protected mode of a 80[234]86. Operating systems are often writtin
on machines with such capabilities, and should therefore be teached to
students. Besides, since there are almost no books dealing about
protected mode, I think Andy might fill this gap. 

The argument that students don't have the money to buy hardware with
memory protection is not entirely true anymore. Prices of AT class
machines are falling, and therefore MINIX should be ready to run on
those systems when they are in reach of a large amount of students.

I know a few students who own a 80286 machine, and a few who own a 80386
machine. And I know a few who plan to buy such hardware in the near
future.

Soooo, think about it will you?

Peter
(I am momentarely using the account of a friend)
--
Who would believe the word of a man speaking double Dutch.
Well I am a Dutchman (honestly!).

root@cca.ucsf.edu (Systems Staff) (06/15/89)

In article <251@utrcu1.UUCP>, goedhart@utrcu1.UUCP (Goedhart) writes:
> 
> The argument that students don't have the money to buy hardware with
> memory protection is not entirely true anymore. Prices of AT class
> machines are falling, and therefore MINIX should be ready to run on
> those systems when they are in reach of a large amount of students.
> 

When schools rushed out to buy the original PCs many were buying them
at prices like $2500 - $3000.

And then they had to spend like $500 for a full memory quota.

Etc. Etc.

Now the going price for the Intel 80386 upgrade boards for those PCs
is $599 (singles, probably less in batches) including a megabyte of
memory. Many places advertise this price and I bought one so I know
the price is real.

There is something wrong with the argument that the basic PC is all
schools can afford; if they are sticking to basic PCs for CS students
in an OS lab they are seriously abusing these students with obsolete
equipment.

Just for fun, I flipped open the current issue of Computer Currents
magazine to find this advertised:

   20 MHz 386 system
   1 MB ram expandable to 8 MB on board
   1.2MB floppy drive
   1:1 interleave controller
   66 MB hard disk (25 ms access)
   2 serial, 1 parallel, 1 game port
   101 Keytronics KBD
   220W power supply
   Real Time Clock/CMOS memory w/Battery back up
   Socket for 80387
   Supports MS DOS, OS|2, Unix, Xenix, ...
   14" Monochrome monitor & card

   Price $1860

And you could probably shave this with a smaller disk, save $40 by
taking the 12" monitor, get a quantity discount, etc.

A few pages before there is a cheaper machine:

    16 MHz 386sx
    1 MB ram expandable to 8 MB on board
    1.2 MB Teac Floppy
    42 MB hard disk
    Mono card & monitor

This one is $1599.

And the 80486 based machines aren't even here to further depress
the prices on the current models.

There seems to be little point in doing any substantial new
work for PC family systems that isn't aimed in this direction.

 Thos Sumner       (thos@cca.ucsf.edu)   BITNET:  thos@ucsfcca
 (The I.G.)        (...ucbvax!ucsfcgl!cca.ucsf!thos)

 U.S. Mail:  Thos Sumner, Computer Center, Rm U-76, UCSF
             San Francisco, CA 94143-0704 USA

OS|2 -- an Operating System for puppets.

#include <disclaimer.std>

rossj@cognos.UUCP (Ross Judson) (06/23/89)

Just to add a little more fuel to the fire, our school of comp sci has
dumped a pile of 8088 based machine on other departments and on first year
courses, and gone AT.  We have (I think) 70 or so ATs for course use.  Right
now the third year operating systems course dissects PC-Xinu.  I think the
course could be modified to deal with protected-mode MINIX.

Clearly, the future trend is towards memory managed hardware.  Students will
be overwhelmed no matter what course they take; it is better to make it as
realistic as possible.
-- 
uucp          - uunet!mitel!sce!cognos!rossj   |people hate the generator
arpa/internet - rossj%cognos.uucp@uunet.uu.net |but love to light up the sky