Subject: Re: RFC: migration to a fully dynamically linked system
To: None <tech-userlevel@netbsd.org>
From: sudog <sudog@sudog.com>
List: tech-userlevel
Date: 12/21/2001 09:43:15
> Another pro you haven't mentioned is that the memory usage of programs 
in   
> /sbin and /bin will decrease in this scenario.  At the moment, each of 
these
> programs has to have a separate in-memory copy of all the bits of libc it
> cares about.  If they were dynamically-linked, they could share them with
> each other and with the rest of the system.  Since the programs in /bin
> especially are used quite a lot (sh, ls, cp, mv), this should be a
> noticeable win.

Not so noticeable. How many copies are running simultaneously and impact 
the memory of critical server software that this would make any useful 
difference in large-scale system? Besides, if static copies are noticeably 
faster, then why would I (as a rhetorical virtual hoster of masses of 
websites, for example) want to take a performance hit just to save a few 
megabytes of RAM? I'd rather fork out some extra money for the extra ram, 
pump it up to its maximum (however many gigs I can fit and are recognized) 
and get the extra performance I need to make my customers happy.

Memory's cheap and can be easily upgraded. There's only so much CPU time 
to go around though.

> >               - Redhat 6.2 (and other Linux systems?) has /lib
> >                 populated with the .so files that are used by /bin
> >                 and /sbin (and /usr/lib contains .so files which
> >                 are installed in /usr/pkg/lib on NetBSD.)

And I can't count on my hands and feet the number of times that busy 
(millions of hits/day) Linux systems under my care have died because 
something went bad and puked all over either libc, or libc and the dynamic 
linker, making the entire thing useless until someone arrived on-scene 
with a boot-disk.

> Actually, I think the usual Linux arrangement is more like your option 
4.   
> For instance, libcrypto is in /usr/lib on both RHL 7.1 and NetBSD.  The 
fact
> that most Linux distributions make the "system" rather larger than we do 
is
> independent.
> 
> >  4. Dynamically link /bin and /sbin against /lib, rest against /usr/lib
> 
> I _think_ this is my preferred option, but not by much.

Linux is Not The Right Way To Do things. Don't take me down the garden 
path and bend me over a barrel by going all-dynamic. I'll just migrate my 
systems at each upgrade to some other OS.

But then again, that may be just me. :)

ttyl,
-sudog