pure64 Hoary

Tollef Fog Heen tfheen at canonical.com
Mon Jan 24 14:33:01 UTC 2005


* Matt Zimmerman 

| On Sun, Jan 23, 2005 at 12:53:00PM +0000, Mike Hearn wrote:
| 
| > The user concerned said he had 32 bit compatibility libraries installed,
| > yet for some reason the version of libcrypto in /usr/lib appeared to not
| > be 32 bit. I was under the impression that 64 bit libs went in /usr/lib64
| > and the linker would automatically choose the right one. Am I wrong? Is
| > that Fedora specific?
| 
| I'm not sure about many other distributions, but this is not the way that
| Ubuntu/amd64 works.  The system is 64-bit native, so /usr/lib contains
| 64-bit libraries.

Ubuntu has the 32 bit compatibility libraries in /usr/lib32.

| > Ryan pointed me to this page:
| > 
| >   http://digital-conquest.ath.cx/wiki/index.php/Ubuntu
| > 
| > which talks about "pure64" systems, a term I've never seen before.
| 
| That is a term which is used in some circles, to distinguish between a
| 32-bit native system with some 64-bit programs, and a native 64-bit system.

It was coined by somebody in the Debian amd64 project to distinguish
between pure 64 bit systems and biarch systems which have both 32 and
64 bit libraries available.

| On some 64-bit architectures, it is desirable to run mostly 32-bit code,
| because it provides better performance.  However, this is not the case on
| amd64 systems, so we run everything 64-bit.

(except in some very, very special cases.  Grub is 32 bit and some
applications are faster in 32 bit mode, but in general 64 bit is
faster on AMD64 due to the increased number of registers.)

| > Does anybody know of a page which explains how the 32/64
| > sideloading system works?

Technically?

(shonap is an i386 system, vawad is an amd64 system)

: tfheen at shonap ~ > ldd /bin/ls| grep ld
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7feb000)

/bin/ls contains a reference to /lib/ld-linux.so.2 which is the
dynamic linker for linux-i386.

: tfheen at vawad ~ > ldd /bin/ls |grep ld-
        /lib64/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2
        (0x0000002a95556000)

/bin/ls contains a reference to /lib/ld-linux-x86-64.so.2 which is the
dynamic linker for linux-amd64 (the kernel architecture is called
x86_64).  If you try to run a 32 bit ls on an amd64 (without and
ia32-libs installed), it will try to run it through /lib/ld-linux.so.2
and you will get a somewhat confusing «file not found» error.
ia32-libs provides a /lib/ld-linux.so.2 which can be used for running
the 32 bit ls.

-- 
Tollef Fog Heen                                                        ,''`.
UNIX is user friendly, it's just picky about who its friends are      : :' :
                                                                      `. `' 
                                                                        `-  




More information about the ubuntu-doc mailing list