[TUHS] shared objects in Unix

Larry McVoy lm at mcvoy.com
Fri Mar 30 11:46:42 AEST 2018


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/mapfiles87.ps

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).



More information about the TUHS mailing list