From: bskendig@netcom.com (Brian Kendig)
Newsgroups: comp.sys.mac.misc
Subject: Re: ?:Mac operating systems
Date: 17 Aug 92 17:09:15 GMT
Organization: Starfleet Headquarters: San Francisco

In article <IeXwiEG00WDNAjPUAd@andrew.cmu.edu> angst+@CMU.EDU (Jon C. Slenk) writes:
>A friend and I were talking about kul Macintosh stuff. I have just
>recently learned how to hack the Mac and I find that the tool box is sota
>nifty. My background is programming in C under Unix, so the one problem I
>have with the Mac is it's lack of a "real" operating system.

Heh, you almost sound like BIFF. ;)

I could go on at length about how the Mac's operating system is every
bit as 'real' as Unix and probably more 'real' than MS-DOS, but I
won't.  Suffice it to say that the operating system is simply the
layer between applications and hardware; thus, both Unix and Mac
programs can be hardware-independent.  (DOS programs often get at the
hardware directly, bypassing DOS, which is why I wouldn't point to DOS
as a good example of an OS.)

>There are Mach implementations for the Macintosh. Could someone describe
>how these interface with the rest of the Mac system, especially the
>Toolbox routines?

Since vanilla Unix doesn't do graphics or sound, there's no real need
to allow access to the Mac toolbox if all you want to do is run normal
text-based applications.  The two Unix implementations I know about on
the Mac (A/UX, which isn't Mach, and MachTen, which is) both support
text windows without difficulty.

To handle graphics under Unix on the Mac, you need a windowing manager
such as X.  I believe that's how A/UX does it, and that's probably how
MachTen does it, too.  The windowing manager is just a layer that
translates high-level graphics calls into whatever the hardware needs
to be told.

There probably is a way to get at Toolbox routines from Unix, but be
warned that applications that do this won't be very portable; why not
just write them for the Mac OS?

>It semms to me that the ideal Macintosh would be to take the Mach
>microkernel (3.0), and then port the Toolbox routines to sit on top of
>that. You would get all the benefits of real memory protection, VM,
>messages, etc. etc. Is this possible?

Nice in theory, but let's be practical.  Real memory protection (i. e.
running programs in user mode, not supervisor mode all the time) might
require recoding Mac applications to let them cope with the different
memory environment.  I don't know what this would involve, but since
Apple hasn't done it yet, I'd assume it's not just a case of re-doing
a few calls in the Memory Manager.

Virtual memory is already implemented on the Mac.  It's not done in
the most efficient way (because the entire memory image is stored on
disk, not just the parts that are swapped out at the moment), but
improving it would increase the overhead involved, so I think the
current implementation is probably the best for the time being.

Messaging is a nice feature of Mach, but Mac applications couldn't
take advantage of it unless they were rewritten to do so, or
AppleEvents were re-worked to go through Mach.  Since AppleEvents work
fine as they are, there's really no need to use Mach messaging.

In short: Even though Unix and the Mac have similar paradigms (as
opposed to radically different operating systems such as IBM CMS),
they're two different beasts.  Nobody's going to run the Mac OS on top
of Unix on a Mac because that would offer little benefit in return for
the sheer effort required; things work fine as they are (as witnessed
by the number of Mac enthusiasts in the world).

However, people are porting the Mac OS to run on top of Unix on Sun
and NeXT workstations; I think this is driven more out of a desire to
have Mac applications run on these machines than it is a desire to
have the Mac OS run on top of Unix.

     << Brian >>

-- 
_/_/_/       Brian Kendig  Macintosh Jedi           Live never to be ashamed
 _/_/   Starfleet Captain  Oracle Employee         if anything you do or say
  _/  Intrepid Adventurer  Saturn SL2 Owner    is published around the world
      bskendig@netcom.com  Twin Peaks Junkie    -- even if what is published
    Princeton '92! BSE/CS  Writer/Actor/Singer                   is not true.
Newsgroups: comp.sys.mac.misc