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(a)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.
--lm