Re: Mac OS X is doomed - Linus says it's "crap"

  • From: Steve Baker <ice@xxxxxxxxxxxxxxxxx>
  • To: technocracy@xxxxxxxxxxxxx
  • Date: Mon, 9 Apr 2001 11:27:56 -0500

"M.K. Chatterji" <chat@xxxxxxxxxxxxxxxxxxxxxx> writes:
> Oh well. Like the great Confucius, he say:
> Everyman like the smell of his own fart.
>
> No doubt GMers say that about Fords and viceversa. I'm surprised 
> though, that there would such a level of sharp-tongued rhetoric 
> _within_ the Unix community. More so by someone so high up as Linus, 
> and with such sweeping generalization! You'd think the top dog would 
> have more humility.  If Mach is "crap" then BSD must be too.

  I assure you, Linus likely mostly if not entirely speaks of Mach when he
says its crap, and he's said it before.  He's just as right now as he was
then.

  Mach sprung out of college research on OS design that was at the time
fixated on layering everything.  The more layers of design the better.  What's
a layer you ask?  You know:

  Presentation Layer
 -------------------
  Application Layer
 -------------------
  Library Layer
 -------------------
  System Call Layer
 -------------------
  OS Layer
 -------------------
  Message Passing Layer
 -------------------
  Hardware Abstraction Layer
 -------------------
  Actual hardware that does something layer

  I might have a few of those mixed up, but you get the idea.  What Mach is,
almost in it's entirety is a Hardware Abstraction Layer or HAL and a Message
passing layer or MPL to comminucate with the OS above it.  The HAL is a simple
layer that abstracts all hardware underneath it into the same API, regardless
of what kind of hardware it is.  So if you're running on Sparc, Power or i386,
it doesn't matter, your OS will run equally as slow on all of them.  The
message passing layer is a communications layer between the HAL and OS for the
OS to tell the HAL what needs to be done.  Most computer scientists will tell
you that this MPL has never been implemented effeciently. The only OS with an
effecient MPL is the AmigaOS, but it had no HAL. It's MPL resides entirely
within the OS layer, making the AmigaOS a hybrid Monolithic/Microkernel
architechure.  It's MPL was also did not have to deal with virtual memory, so
it's debateble about how effecient it would be in that case.

  When you abstract hardware, and try to make it fit into one design, you make
assumptions that might not work so well across all hardware designs.  Also
since the point of Mach is to totally abstract the hardware, it ends up doing
things it really shouldn't in order to abstract things, like tasking.

  The whole point of Mach was supposed to be that porting to other
architechures is hard, so you built your OS to the HAL, then just ported the
HAL. What they failed to consider is that if you have a well designed OS, it's
really only a minimal amount of extra effort to just port the OS to the new
hardware and skip the HAL and MPL all together.  Linux proves this point
rather well, having more ports than Mach does.

  Really the only win for Mach is that you can write many OS's to it, and once
Mach has been ported to a new Arch, all the OS's that work with Mach are
effectively ported at the same time.  However, there aren't that many OS's
ported to Mach.  Essentially just BSD and Linux, and perhaps a few toy OS's no
one really cares about.  The only reason a Linux port to Mach even exists is
because those porting to the Power architechure had much trouble prying any
hardware information out of Apple.  There was an existing Mach port to the
Power, so they used it as an interim solution.  After reverse engineering most
of the hardware, a faster native port now exists, and the Mach port is falling
by the wayside.

  As far as FreeBSD goes, well, it's license sucks ass.  Any company can now
take it and completely coopt it.  I don't know why any free software developer
would develop anything with that license.

> And thusly AIX, HP/UX, Solaris, and so on. Too bad. (Too bad that people 

  But those _do_ suck.

> can't find _some_ good in other flavors and OSes.. E.g. if we didn't 
> have Solaris at our site, I don't know what we'd do to interface at 
> the level we must, with IBM/MVS. Oh I suppose we could use AIX--but 
> that's probably another "crappy" product.)  =)

  Demand a Linux port.  It's not going to port itself unless people demand a
port.

                                                                - Steve

Other related posts: