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.