[TUHS] CMU Mach sources?

Clem Cole clemc at ccc.com
Mon Jun 24 07:52:33 AEST 2019


A couple of thoughts...

1.) Mach2.5 and 3.0 was part of an *extremely successful research project*
but also did suffer from issues associated with being so.  CSRG BTW *was
not a research project*, contrary to its name, it was a support contract
for DARPA since BTL would not support UNIX the way DEC, IBM, *et al*, did
with their products.   The reality is that Mach more than Thoth**), V
Kernel, QNX, Sol, Chrous, Minux or any other uK of the day, changed the way
people started to think about building an OS.    Give Rashid and team
credit - it showed some extremely interesting and aggressive ideas could be
made to work.

2.) Comparing Mach with BSD or SunOS 4.3 is not really a valid comparison.
 They had different goals and targets.   Comparing Ultrix, Tru64, or Mac
OSx with SunOS (or Solaris for that matter) is fair.   They all were
products.  They needed to be clean, maintainable and extensible [as Larry
likes to point out, Sun traded a great deal of that away for political
reasons with Solaris].   But the bottom line, you are comparing a test
vehicle to a production one.  And I while I agree with Larry on the
internals and a lot of the actual code in Mach, I was always pretty damned
impressed with what they crammed into a 5 lbs bag in a very short time.

3.) Mach2.5/386/Vax/etc.. << OSF/1 386 the later is similar what MtUnix
shipped.  Both are 'hybrid' kernels.   But while MtUnix created a product
with it, they were too small to do what DEC would later do.   But the
investment was greater than I think they could really afford.

4.) Mach 3.0 was from CMU, Mach 4.0 (which is still sort of available) was
from the OSF/1 [this is a pure uK].

3.) DEC OSF/1 (for MIPS) << Tru64 (for Alpha) - *a.k.a.* Digital UNIX - yes
both started with a Mach 2.5 hybrid kernel and the later was mostly the
same as OSF/1386, and both supported the Mach2.5 kernel message system -
but DEC's team rewrote darned near everything in the kernel -- which in
fact was both a bless and a curse [more in a minute].

Ok, so why have I bothered with all this mess.   The fact is Mach was able
to be turned into a product, both Apple and DEC did it.   Apple had the
advantage of starting with NextOS which (along with machTen) was the first
short at making a 'product' out of it.  But they invested a lot over the
years and incrementally changed it.  Enough to create XNU.    DEC was a
different story (which I lived a bit of personally).

The DEC PMAX (mips) and the Intel 386 were the first references from OSF.
 OSF had an issue.  IBM was supposed to deliver an OS, but for a number of
reasons was not ready when OSF needed something.   CMU had something that
was 'good enough.'

This is probably where Larry and I differ a little on shipping code.  I'm a
great believer figure out one solid goal and nailing it, and the rest is
'good enough' - i.e. fix in version 2.   I think OSF/1 as a reference
system nailed it.   Their job was get something out as a starting base that
ran on at least 2 workstations (and one server - which IIRC was an HP,
maybe an Encore box) but able to be shipped on an AT&T V.3 unlimited
license [which IBM had brought to the table].   The fact that they did not
spend a lot of time cleaning up about CMU at this stage was not their job.
 The kernel had to be good enough - and it was (Larry might argue Mach2.5
vs SunOS 4.3 it was not as good technically - and he might be right - but
that was not their job).

So DEC gets a new code based.  They have Ultrix (a product) for the PMAX.
OSF has released the reference port.   From a kernel code quality
standpoint, OSF1 1.0/PMAX < Ultrix/RISC 4.5.   They also are moving to a
new 64-bit processor that is not going to run either VAX or PMAX binaries (
*i.e.* you will have to recompile).   Two technical decisions and one
marketing one were made at the management level that would later doom
Tru64.   First, it was agreed that Tru64 was going to be 'pure 64-bit' and
it turned out >>none of the ISVs had clean code.  Moreover, there were no
tools to help find 64-bit issues.  This single choice cost DEC 3 years in
the ability to ship Tru64/Alpha.   The second choice was DEC's team decided
to re-write OSF/1 subsystem by subsystem.   The argument would be:  the XXX
system sucks.  It will never scale on a 64-bit system and it will not work
for clusters.  XXX was at least Memory Management, Terminal Handler, Basic
I/O, SCSI, File System.  The >>truth<< is each of these was actually right
in the small, they did suck.   But the fact is, they all were good enough
to get the system out the door and get customers and ISV's starting the
process of using the system.   Yes, Megasafe is an excellent FS, but UFS
was good enough to start.   The marketing decision BTW, that not to ship
Tru64/PMAX.   Truth is it was running internally.  But Marketing held that
Tru64 was the sexy cool thing and did not want to make it available.  The
argument was they would have to support it.   But the truth is that asking
ISV's and customers to switch Architecture and OS in one jump, opened the
door to consider Sun or HP (and with Tru64/Alpha's ecosystem taking 3 more
years, people left DEC).





** Mike Malcolm was the primary author of Thoth as his PhD from Waterloo.
HIs officemate, Kelly Booth (of the 'Graphics Killer-Bs) had a tee-shirt
made that exhaled:  'Thoth Thucks' and gave them to the lot of the Waterloo
folks.   BTW, Mike and Cheridon would later go to Stanford and create V.
 Two of their students would create QNX with still lives.

>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20190623/6be6cf24/attachment.html>


More information about the TUHS mailing list