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