You might be right i don’t exactly remember the dates of each release. that said I do
remember Mach ran on a number of systems before Next, but they were not commercial. It
was similar to BSD where CMU ported to that hardware - I’ve forgotten the name of the guys
that spun out of DG that had an early MP based system that used reflected memory- but I
remember CMU had very early version of Mach running there that was based on the 4.1mash up
like the original Vax code from CMU that they started.
The point is that early Mach was working before 4.2 way final and released to the DARPA
community not much later. CRSG was doing Val support for DARPA and CMU was more researchy
(which was a point of contention in a lot of fronts that I’ll not scratch open any
further).
I was not commenting on the implementation of the goodness of the CMU or CSRG code by the
wsy. Sun could have had the first commercial version of shared libs that worked well,
although IBM might have been around the same time as Charlie pointed.
What had Paul asked when shared libs came to being for Unix. I was trying to say it did
not come from any one point. I do believe Mach and it’s parent Accent (which was not
Unix) was the first time any Unix had it but like BSD was a DARPA funded project and not
commercial. But a lot of different places were working on the idea as it was commonly held
to be an issue with Unix.
Also, joy / BSD 4.2 was heavily influenced by Accent (and RIG )and the Mach memory system
would eventually go back into BSD (4.3 IIRC) - which we have talked about before wrt to
sockets and Accent/Mach’s port concept.
FWIW If I'm remembering the sequence right I believe Mach 2.5 was quickly created as
a update to the original release after joy et al released the final 4.2. 4.1c was 83 as I
was leaving UCB and I brought it with me. But I think we had an early 4.1 based Mach
tape at Masscomp not too much later ??a year maybe?? And one of the reasons we were
interested in it was the shared library code because the exVMS at Masscomp all felt that
was a deficiency of Unix and at the time the only ‘open source’ in a HLL if you will that
had it was Mach.
Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite.
On Mar 29, 2018, at 9:46 PM, Larry McVoy
<lm(a)mcvoy.com> wrote:
On Thu, Mar 29, 2018 at 08:22:14PM -0400, Clem
Cole wrote:
I'm pretty sure the first unix to support shared libraries was
CMU's Mach using its modified about called macho, which lives today in Mac
OSX.
Uh, you sure about that?
http://cs.cmu.edu/afs/cs.cmu.edu/project/mach/public/doc/published/mapfiles…
is as close as I can find, and that's talking about stuff that was long after
Sun's shared libraries.
There may have been earlier stuff but the approach laid out in
http://www.mcvoy.com/lm/papers/SunOS.shlib.pdf
is pretty much the shared library world as we know it today so far as I
know.
I remember the world before that, I lived in it, and shared libraries were
not a working thing in my memory. Maybe on VMS, I didn't program much on
VMS, but on any Unix I could get my hands on, Sun was the first to have
working shared libraries.
CMU's Mach, mem, I am by no means a fan (I bought into the hype, read
all the papers, when I finally got to see the code, wow. NOTHING like Sun's
VM system, I mean, nothing. It claimed to be the same sort of thing, it was
an ugly mess and it still is. Sun's VM system was a thing of beauty, you
could read the code and figure out the architecture from the code. I'd
challenge anyone to do that from the Mach code).
But maybe it had shared libs before SunOS but who was using that code?
So far as I know the first time the Mach code was in a commercial product
was Next. Their first release was October 1988, SunOS 4.0 was Dec 1988
and was a far far far more mature release.
Here's a way to put it into perspective. In the mid 80's, and maybe
before, every single open source project's makefile just worked on
a Sun. I don't ever remember seeing a Makefile that just worked on
a Next (and I don't know of any other Mach based platform until Apple
many years later).