Shared libraries are not necessary

Frank Mayhar fmayhar at hermes.ladc.bull.com
Tue May 21 07:42:52 AEST 1991


In article <196 at titccy.cc.titech.ac.jp>, mohta at necom830.cc.titech.ac.jp (Masataka Ohta) writes:
-> In article <1991May16.002617.15386 at ladc.bull.com> I write:
-> >Again I ask, what do you consider a "right" way to implement them?  As opposed
-> >to what you consider a "wrong" way.  Ignore existing implementations.  I mean,
-> >in the best of all possible worlds, how should shared libraries be implemented.
-> >(And don't say that in the best of all possible worlds, shared libraries
-> >wouldn't exist.  See the last paragraph, below.)
-> 
-> I say, in a good world, shared libraries shouldn't exist.

Go back and reread what I wrote.  You're copping out.

-> Because, in a good world, unless someone proof something is really
-> necessary, it shouldn't exist.

OK, then, I have a counterargument:  Computers aren't necessary.  You can
do just as well (albeit somewhat more slowly) using pencil and paper.  After
all, people got by without computers for thousands of years.

Define "necessary."  Are 1-gigabyte disks "necessary?"  What don't you use
a teletype, a CRT isn't really "necessary," is it?

-> I have already proved that
-> 	1) its space saving is negligible

I beg to differ.  There is clear evidence that the savings, in both disk and
memory, is significant.  The larger the system, and the more users it has, the
more significant the savings becomes.  I'll let the statistics posted by Sean
and Nick speak for themselves.  Even with the overhead of such things as
indirect jumps, there are still significant savings.

-> 	2) shared libraries dose not help software version up
-> 	   from /etc/hosts to DNS

So what?  And, in fact, in certain situations, it does.  I was able to go from
/etc/hosts to DNS by adding _one_ shared library to my Sun.  And I didn't have
to recompile or relink a _single_ program.  I think that that's significant. 
And many other kinds of upgrades are made much simpler by using shared
libraries.  You can replace a single library instead of replacing dozens of
applications.

-> So, why you think shared libraries should exist?

See above, and my original post.

-> >In
-> >other terms, such as ease of maintenance or disk or memory usage (given
-> >that shared libraries' instruction space is sharable) it can be much
-> >more efficient.  This is the tradeoff.
-> Some claimed that with examples. And, with their examples, I made
-> measurement and investigation and proved they are wrong. So, there is
-> no tradeoff, so far.

Funny, I didn't see any sort of proof.  I saw a number of flat statements,
unsupported by data of any kind, but no proof.  What is your proof that it
saves neither disk space, memory, nor maintenance time?  I challenge you to
back up your assertions with real data.

I reiterate:  There is a tradeoff in the implementation of shared libraries
between various forms of efficiency, e.g. runtime versus memory or disk
savings, etc., but this certainly does not obviate the need for them.  Like
anything else with tradeoffs, there are arguments both for and against shared
libraries.  The thing to remember, though, for people in both camps is that
while shared libraries are extremely useful in certain situations, they
aren't always the best solution, in all cases.

Of course, this is probably falling on deaf ears, as it appears that both
this issue and the utility of windowing systems are religious issues to
you.
-- 
Frank Mayhar  fmayhar at hermes.ladc.bull.com (..!{uunet,hacgate}!ladcgw!fmayhar)
              Bull HN Information Systems Inc.  Los Angeles Development Center
              5250 W. Century Blvd., LA, CA  90045    Phone:  (213) 216-6241



More information about the Comp.unix.internals mailing list