Subject: Re: MACH?
To: Christian Kuhtz <chk@gnu.ai.mit.edu>
From: Jay Kistler <jjk@pa.dec.com>
List: port-arm32
Date: 02/07/1997 23:25:58
> Sorry, but to me the VM system and ddb are tiny parts of Mach and has not a  
> whole lot to do with the Mach way of doing business, which has a radically  
> different philosophy on the backend, reflected in its kernel architecture and  
> the single- and multi-server architectures.
>
> Mach mk's are a quite different architecture, much more than just a different  
> VM system and debugger.  It would help if you look at BSD4.4 from a Mach mk  
> ...

Sorry, Chris, I didn't realize that today when one refers to "Mach" 
they really mean "Mach mk."  I was under the impression that "Mach" 
referred to the *set* of operating systems that has evolved from 
Rashid, Tevanian, and Young's design, born at CMU in the early '80s.  

The "Mach" that I began hacking and building upon when I arrived 
at CMU in 1986 was not micro-kernel based, and did not have user-level 
servers.  There was certainly talk of that, but the reality was a 
BSD-like kernel that had a new and much-improved VM system and a 
task-and-thread model in place of Unix processes.  Both the VM system 
concepts and the task-thread model were significant OS advances, 
and have since been adopted by many commercial systems. 

During the 6+ years I spent at CMU -- in which I hacked daily on 
and in OS's known as "Mach" -- Mach was worked-on by many people 
and eventually, with version 3.0, evolved to a micro-kernel with 
a user-level Unix server.  Subsequent to that, I gather that multi-server 
implementations on top of the 3.0 kernel have come into being. 

My opinion is that these later efforts, from Mach 3.0 to the present, 
have not conclusively demonstrated their worth.  Perhaps they will 
in time, but to date the main contributions of "Mach" have been the 
mostly-machine-independent VM system and the task-and-thread model.  
The former has been imported into NetBSD and the latter hopefully 
will be in time.  Both can be found in the mainstream OS's of today 
and tomorrow.  (Fun Fact:  Mach 2.x was taken to NeXT when Avie Tevanian 
left CMU in 1988.  This month, Avie was named VP in charge of software 
at Apple.  Guess which version of Mach the next MacOS will most closely 
resemble.  Think it will have much in common with today's NetBSD?  
I do.) 


> That, and my personal work on Mach mk and server implementations over the  
> years, makes me stand firmly by my statement. Therefore,  I reject your  
> assertion of my remark being "plain wrong".

Sorry, Chris, I still think your original statement,

  There are no really relevant, characteristic parts of Mach incorporated 
  into the way NetBSD does business 

is "just plain wrong."  If you had qualified it with "Mach mk" rather 
than just "Mach" I probably wouldn't have bitten, but even then I 
think your claim would have been pretty dubious.  The user-level 
server argument just hasn't been convincingly demonstrated yet, whereas 
the pmap-model of the VM system and the task-thread model have. 

I think we should probably spare the other subscribers to this mailing-list 
any further discussion on this topic.  If you want to continue it 
privately that's fine with me.  But, if so, you should probably start 
cc'ing Rick Rashid (rashid@microsoft.com), Avie Tevanian (avie@apple.com), 
and Mike Young (mwyoung@transarc.com).  I'm sure they'll split their 
sides when they hear that the VM system of the OS they conceived 
is no longer one of its salient features. 

Regards,

                            -Jay


P.S.  If you look at the original Mach paper by Accetta et al (ca 
1986), you'll find that the VM system is one of the two main topics 
discussed (along with the task-thread model), and that the kernel 
debugger gets slightly more coverage than the plans to "kernelize" 
the system.