On Tue, Dec 18, 2007 at 09:28:37PM -0600, Mike Miller wrote:
> On Tue, 18 Dec 2007, Brock Noland wrote:
> > They don't have the same kernels and same libraries.
> 
> Oh.  Good answer.  To what degree do the kernels differ?

A lot.  It's gotten better now, but the distribution still add
patches.  Check for yourself: fetch the source rpms, explode them
and see what patches are included, read the changelog to see why, etc.


>                                                          I thought a 
> Linux team made the kernel and the distros all used the same kernel but 
> perhaps different versions.  Do the different kernels prevent binaries 
> from one distro from functioning properly on another distro?

May or may not, depending on what's patched.  Support for an
experimental network protocol, or some piece of hardware.

> Regarding libraries:  I thought the point of LSB was mostly to get the 
> libraries to be the same, or at least fully compatible.  What's going on 
> with that?

The LSB requires a small number of libraries [1]:

    * libc
    * libm
    * libgcc_s
    * libdl
    * librt
    * libcrypt
    * libpam

while my Ubuntu desktop has:

   $ find /usr/lib -type f -name \*so\* | wc -l
   3397
   $ find /lib -type f -name \*so\* | wc -l
   295

and my Centos server has:

   $ find /usr/lib -name \*so\* -type f | wc -l
   774
   $ find /lib -name \*so\* -type f | wc -l
   284

and my Solaris server has:

   $ find /usr/lib -name \*so\* -type f | wc -l
   469
   $ find /lib -name \*so\* -type f | wc -l
   148

And $DEITY only knows what --configure options have been passed to
those libraries when built.

There are hundreds of millions of lines of [free] code out there, and tens
of millions are selected and configured for a given distribution.  It's
similar to the DNA -> cell -> organism.  The base [2] is the same, but
wiggle the sequence [3] a bit and you get many things.  Some which mate
with each other, some which eat each other.

>            Do differences in libraries cause binaries from one distro 
> from working on another distro.

Yes, they do.  For instance the Sun C++ compiler works on Ubuntu but not
on RedHat because there is a quirk in the GNU linker and how it interacts
with the name mangling.  Or try running an old binary application like Oracle
on a newer distribution: you'll need the 'compat' libraries.

Cheers,
florin

1: http://refspecs.linux-foundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/baselib.html
2,3: puns always intended

-- 
Bruce Schneier expects the Spanish Inquisition.
      http://geekz.co.uk/schneierfacts/fact/163
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://mailman.mn-linux.org/pipermail/tclug-list/attachments/20071218/df1fde3f/attachment-0001.pgp