[comp.sys.mac.misc] SUMMARY: Unix on the Mac - A/UX replacements

thomas@duteca (Thomas Okken) (12/04/90)

A few weeks ago, I posted a few questions concerning Unix on the Macintosh.
What I wanted to find out was whether someone who wants Unix on his/her Mac
should go for A/UX, or whether Minix, OS/9 or Mach are an alternative.
Quite a few people responded, many of them users of the above-mentioned
systems.
The following are excerpts from the various replies I received.

*** MINIX ***

Minix is considered by many to be a toy version of Unix. It does
provide a multitasking/multiuser environment. I believe a C compiler
comes with it, but I could be wrong. You'll probably need to port
various PD versions of lex/yacc/make to it, if the ports haven't
already been done. It is mostly compatible with early versions of Unix
(V7) or so I understand.  The big advantage to using Minix is that
full sources are available for a low cost, unlike any of the other
products you mentioned. The disadvantage is that it is a "toy" Unix;
it lacks various features that a real Unix kernel has.

---

Minix is a clone of Version 7 UNIX.  Porting code between UNIX and Minix is
pretty easy -- easier than porting between SysV and BSD, actually, since V7
was the last common ancestor of SysV and BSD.  Minix is small.  Minix users
are supposed to believe that smallness is an advantage.

Minix has clones of nearly all UNIX utilities.  The standard Minix
compiler is a K&R C compiler with common extensions (enum, void, ...)
but it lacks the float and double data types.  You can get GCC and
other compilers, though.  It includes MAKE.  YACC and LEX aren't
included, but FLEX works with only minor changes, and a couple of YACC
clones have been ported to Minix.

Currently, Minix is moving towards POSIX compatibility, rather than
compatibility with any specific version of UNIX.

Minix comes with the complete source code to the kernel and all utilities
except the compiler.

*** OS/9 ***

OS/9 is not really a Unix-related OS. It has some features similar to
Unix but it doesn't guarantee any sort of Unix compatibility. Many
people will argue about its various merits/drawbacks...My feeling is
that it's not what you're looking for, mainly because of a lack of
third party/PD software for it. It wouldn't come with any of the Unix
software tools (yacc/lex/make).

---

OS-9 is NOT UNIX! It is a UNIX type operating system that does allow multi-
user, multi-tasking, etc. but is not UNIX! It is very similar to UNIX but
if you want UNIX you probably don't want OS-9. I use both (UNIX at school
and OS-9 at home) and prefer OS-9 in many ways. It is still young and does
not have ALL the utilities. Many are being ported now (Xwindows, readnews, 
etc.) but not all are availible yet. OS-9 is actually better in some ways
(for instence, it is tiny in memory usage compared to UNIX!).

If you want UNIX then OS-9 is not it. If you want a good UNIX type OS then
OS-9 may be just the thing.

---

OS-9 is not a UNIX clone.  It was developed jointly by Motorola and Microware
about ten years ago, for Moto's 6809 8-bit processor.  When the 68000 chip
came out, Microware eagerly ported OS-9 to it, but Motorola seemed to have
lost interest in OS-9.

It was intended to be used in dedicated industrial controllers, and
also in larger systems that are used to develop the software that runs
in those controllers.  To support software development, OS-9 borrowed a
lot of ideas from UNIX simply because programmers like UNIX.

OS-9's standard utility set is entirely different from UNIX's.  They have
different names, different options, different syntax, and different output
formats.  The C library, though, tries to be UNIX compatible (in much the
same way that MS-DOS compilers' libraries try to be UNIX compatible) so
porting code is possible, but it isn't easy.

OS-9 systems can be nearly as large and powerful as UNIX systems, or they
can be tiny systems with no disk, no terminals, and only 32k ROM and very
little RAM.  The kernel is modular, and you can easily remove any modules
that you don't need.

OS-9 doesn't allow two different programs with the same name to be run at
the same time.  Because of this, I hesitate to call it "multi-user".

If you don't intend to develop code for industrial controllers, then I suggest
you avoid OS-9.  OS-9 has its place, but it is *NOT* UNIX.

OS-9 does not come with source code.

---

I work for the company that makes OS-9.  So, you make think: "Why is this guy
responding?  He'll be biased all the way."  Well, I do work for the company
that makes OS-9, but I don't work for the company that ported it to the Mac,
so I will try to avoid saying too much about OS-9 and try to tell you what I
know about the Mac port.

OS-9 is not virtual memory, but does have a scheme to keep items in memory
that have been used recently.  We have cc and make.  I have seen ports of
public domain version of lex and yacc to OS-9 on Compu$erve or GEnie.

True UNIX software can be ported almost directly.  You will start running
into small problems when the software wants to change the serial I/O attribs
or deal directly with disk file structures.  There is a group in Germany
that has a large "UNIX compatibility" library as well as many nice utilites.
They call themselves TOP (The OS-9 Project).

I would like to comment on the Mac port of OS-9.  I think it is the most
elegant port of OS-9 to any PC.  It allows Mac software to run at the
same time as OS-9.  In other words, you could have your OS-9 editor
running in a window and other Mac applications running under finder. 
OS-9 can use a partition of the hard disk or simply a large file in the
Mac partitions.  Overall, it's really worth looking at (IMHO). 

---

OS9 is, in my opinion, a very good OS.  It is truly multiuser and
multitasking, but it does not support virtual memory.  To me that's not a
big loss, particularly since memory is only about $50/meg these days.  All
the tools you mention are available for OS9, most through ports of freely
distibutable Un*x stuff (i.e. GNU etc).  I'm not sure of the status of the
GNU c-compiler though.  OS9 is only source compatible with Un*x for fairly
mundane things, and various libraries exist to try to make it closer.

*** MACH ***

Mach is NOT unix. Mach is a UNIX kernel. That means that you can implement
UNIX of top of it, but you still need unix in addition. e.g. the NeXT
uses MACH as a kernel , but has UNIX BSD 4.3 on top of it.
Theoretically you could put another operating system on top of mach.
MACH itself is free from CMU , but for the UNIX you've got to pay
again. MACH is the darling of the computer scientist, and with some
reason. Without doubt it is the most advancest and powerful UNIX basis
around. But again, it is only part of a full UNIX. If you can get it ,
can get a decent UNIX to run on top of it, can afford it (all of these
can be BIG ifs), I'd personally take MACH. Probably it won't make any
big difference when you begin UNIX programming, but once you are into
it, you would be able to do things with it easily you can't do with
any other UNIX. 

---

Mach is an extended form of BSD 4.x UNIX.  The extensions are mainly intended
to allow large chunks of code to be extracted from the kernel, and run as
normal user processes.  For example, practically all network support has been
separated from the kernel.  Mach is still pretty compatible with standard BSD,
though.

Currently, the Mach people are working to replace all AT&T code in Mach, so
that Mach users won't have to pay AT&T licensing fees.  I don't know if Mach
includes source code or not.

---

Mach really isn't available yet. Carnegie-Mellon ported Mach to the Mac, 
but will not be distributing it. The distribution of MacMach is being 
negotiated between Apple and Mt Xinu. This whole situation really has me 
pissed off. CMU, Apple, and Mt Xinu are being very tight-lipped about 
this. I really don't see why since my (and your) tax dollars paid for the 
development of Mach. The sad thing is that even if we see MacMach, it will 
probably virtually impossible to get the source code. The source code for 
every other port of Mach can be obtained, so the problem basically lies 
with Apple.

*** A/UX ***

Finally , A/UX. If nothing else fits consider it. But first a few
caveats against it, too: The FSF (the free software foundation, a
group of programmer producing arguably the best software in the world
, for free) boycott apple because of its look-and-feel lawsuits. That
means that none of the FSF software (their c-compiler gcc,
c++-compiler g++ and a plethora of other first rate tools) is not
available for the MAC. This would be an important point against AUX
for my uses of UNIX, maybe you feel similarily. If you want any of
their software (some of it is quasi-hacker-standard) you would have to
port it yourself, which can be quite hard. This is especially bad for
AUX as no other hardware maker runs AUX on his machine. If you got
some other more widespread dialect of unix , you could probably use
the ports for that dialect made on other machines.

cc, make , lex and yacc should come with most of these system as a
standard. Unix is pretty useless without them and I've never seen any
unix which didn't have them as standard.  All of them have superior
FSF replacements, which you'd probably want to get.

---

I just bit the bullet and purchased A/UX.  I'm too green to have a well
informed opinion, but my first reaction is favorable with a few qualifications.

Regarding A/UX, It came up much easier than Open Desktop from SCO and gives
a much nicer shell without needing X.  Eventually I plan to try compiling 
the MIT distribution, but I'm not there yet.  The installation manuals that
come with aux are not good enough to get me out of trouble, though they were
fully adequate to install the default system. I was able to transport a sun
unix tar file from a Sequent mainframe to my mac via zmodem under the mac os,
save it to a floppy, read the floppy under aux and untar the file to get a 
set of fortran files which aux's version of f77 seems not to choke on (that
is a very preliminary statement).

The integration of the mac and unix environments is highly impressive, but the
unix environment is (necessarily) complex and occasionally vexatious.  For 
example, right now I'm using cu to log in to my host.  If I kill my local
cu or drop the connection with my host I'll have a hell of a time getting
control of my modem port back so I can start another cu.  The only method 
I've found so far is to log in as root, call init 1 to kill all processes,
including the one that hijacked tty0, call itit 2, WAIT FOR IT TO FINISH
(very important I discovered) and start another cu.  For some reason, just
killing cu does not release the serial port.  The manuals that came with 
the distribution have nothing to say of such problems.  Maybe a good Unix
guru wouldn't need them, but I sure do and they cost a lot, $200 or so.

A/UX is definitly a pig when it comes to both hard disk space and cpu time.
It fits in 80 meg, but there's only bout 10 or 15 meg of free space in the
default setup.  I'm running a iici with 8 megs of ram (no cache yet) and
things like session starts take perhaps a minute from a quantum 105. About
two thirds of the delay appears to be disk access, the rest I don't know about.
Things like window opening are usually fast enough, but opening the chooser
or control panel sometims takes an appreciable length of time.

If first indications are any guide, aux will give me access to unix workstation
software at the price of an as yet unknown amount of grey hair. I don't  know
what the performance will be like, but would expect it to be comparable
to an older Motorola based Sun workstation.  

---

If you want a complete, robust, Mac-compatible Unix system then A/UX is 
the only way to go. There are very few Unix tools that you don't get. A/UX 
is multiuser, but don't try having more than 2-3 people log into an fx. 
Even though the OS can support many users, the hardware can't yet. You 
have to give Apple credit on this one though. They are really trying to 
put out a high-quality Unix. 

SUMMARY

Currently, A/UX is the only way to go if you want the real thing on a Mac.
It is a complete System V implementation, so it includes all the utilities.
OS/9 is an alternative if you don't mind porting tools yourself. It is not
a real Unix, but it may come close enough for many people.
Minix is to be considered because most Unix tools are included or otherwise
available for it (FSF), but one should keep in mind that it is not a true
replacement OS (it runs under the Mac OS), and that it was originally
intended as a Unix learning tool. So, although it is Unix-compatible from a
programmer's point of view, it may lack the power for many uses.
Anyone completely new to Unix should probably start with Minix, as it is
cheap and runs on all Macs - one person reported using it on a Mac Plus.

Mach, or MachTen, can currently only be classified as vaporware. Two people
mentioned something called Idris, or MacIdris, but no one seems to actually
have and use it. If you feel that A/UX, Minix and OS/9 are not for you, you
might wait until Mach or Idris are released as actual products, but for now,
A/UX and Minix get the nod.

coolidge@cs.uiuc.edu (John Coolidge) (12/05/90)

thomas@duteca (Thomas Okken) writes:
>The FSF (the free software foundation, a
>group of programmer producing arguably the best software in the world
>, for free) boycott apple because of its look-and-feel lawsuits. That
>means that none of the FSF software (their c-compiler gcc,
>c++-compiler g++ and a plethora of other first rate tools) is not
>available for the MAC. This would be an important point against AUX
>for my uses of UNIX, maybe you feel similarily.  If you want any of
>their software (some of it is quasi-hacker-standard) you would have to
>port it yourself, which can be quite hard.

This is, in general, only half true. It is quite true that the FSF
maintains a boycott of A/UX; it does not follow, however, that FSF
tools are not available for A/UX. There are quite a number of people
maintaining ports of the major Gnu tools for A/UX. I maintain an
archive (at wuarchive.wustl.edu, in systems/aux/Gnu) that contains
a number of Gnu tools, including gas, gcc, g++, bash, gdb, and emacs.

>Regarding A/UX, It came up much easier than Open Desktop from SCO and gives
>a much nicer shell without needing X.  Eventually I plan to try compiling 
>the MIT distribution, but I'm not there yet.

If you've got access to ftp, a complete build of MIT X11R4 with all
patches and shared library support added by me is available from
the aforementioned wuarchive.wustl.edu archive (systems/aux/X11R4).

>If you want a complete, robust, Mac-compatible Unix system then A/UX is 
>the only way to go. There are very few Unix tools that you don't get. A/UX 
>is multiuser, but don't try having more than 2-3 people log into an fx. 
>Even though the OS can support many users, the hardware can't yet.

We commonly have 3-4 people on a IIx with no trouble. I've currently
got 9 CommandShell windows and MacX with epoch (remote) and several
istat's (local) with no particular load (and I'm running nn and posting
this on the ci :-)). I've gotten three compiles going at a time; the
load is quite noticable but not offensive.

--John

--------------------------------------------------------------------------
John L. Coolidge     Internet:coolidge@cs.uiuc.edu   UUCP:uiucdcs!coolidge
Of course I don't speak for the U of I (or anyone else except myself)
Copyright 1990 John L. Coolidge. Copying allowed if (and only if) attributed.
You may redistribute this article if and only if your recipients may as well.

gft_robert@gsbacd.uchicago.edu (12/07/90)

-----
 
In article <1990Dec5.051741.1909@julius.cs.uiuc.edu>, coolidge@cs.uiuc.edu (John Coolidge) writes...
 
>thomas@duteca (Thomas Okken) writes:
>>The FSF (the free software foundation, a
>>group of programmer producing arguably the best software in the world
>>, for free) boycott apple because of its look-and-feel lawsuits. That
>>means that none of the FSF software (their c-compiler gcc,
>>c++-compiler g++ and a plethora of other first rate tools) is not
>>available for the MAC. This would be an important point against AUX
>>for my uses of UNIX, maybe you feel similarily.  If you want any of
>>their software (some of it is quasi-hacker-standard) you would have to
>>port it yourself, which can be quite hard.


Not true.  I just downloaded the gnu c compiler from apple.com yesterday
(pub/gnu.mpw I think).  It works with MPW.  I think I might have seen A/UX
versions there too, but I'm not sure.  There is other gnu stuff archived both
at apple.com and ftp.apple.com (the permanently "semi-up" site).

Robert



============================================================================
= gft_robert@gsbacd.uchicago.edu * generic disclaimer: * "It's more fun to =
=            		         * all my opinions are *  compute"         =
=                                * mine                *  -Kraftwerk       =
============================================================================