From mboxrd@z Thu Jan 1 00:00:00 1970 From: lm@mcvoy.com (Larry McVoy) Date: Thu, 29 Mar 2018 16:24:09 -0700 Subject: [TUHS] shared objects in Unix In-Reply-To: References: Message-ID: <20180329232409.GH8921@mcvoy.com> 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. --lm