[TUHS] shared objects in Unix

Larry McVoy lm at mcvoy.com
Fri Mar 30 09:24:09 AEST 2018

On Fri, Mar 30, 2018 at 10:11:42AM +1100, Dave Horsfall wrote:
> On Thu, 29 Mar 2018, Paul Winalski wrote:
> [...]
> >What is the history of shared objects on Unix?  When did they first
> >appear, and with what object/executable file format?  The a.out ZMAGIC
> >format doesn't seem to support them.  I don't recall if COFF does. MACH-O,
> >at least the MacOS dialect of it, supports dynamic libraries. ELF supports
> >them.
> I first saw 'em when they appeared in SunOS (can't remember which release)
> and thought they were wonderful, along with loadable drivers.

Warner and I have been going back and forth about this.  We're both pretty
sure that shared libs were part of the 4.0 release (that was the release
that had the VM system rewrite by Joe Moran (mojo at sun.com) with mmap() as
invisioned by Bill Joy while still at Berkeley.  

I've got a number of papers about it:

http://mcvoy.com/lm/papers/SunOS.shlib.pdf - that's the shared lib paper
http://mcvoy.com/lm/papers/SunOS.vm_arch.pdf - that's the VM architectue paper
http://mcvoy.com/lm/papers/SunOS.vm_impl.pdf - that's the VM implementation paper

There's other stuff there too if you are bored.  SunOS.smoosh.pdf is the basic
idea that is the under pinnings of every distributed source management system,
SunOS.tfs.pdf is Dave Hendrick's copy on write file system writeup, 
SunOS.ufs_clustering.pdf is the work I did in UFS to get platter speed perf
out of UFS, etc.  Most of that stuff is Sun stuff though there is some other
random bits.  If you are curious about any of it I can go into detain off
(or on) list.


More information about the TUHS mailing list