Just one more generic comment about the x86_64 architecture.
This architecture supports the identical 32-bit architecture expected
by 32-bit code. Programs built as 32-bit will think they are on a
32-bit x86 architecture.
gaf@gaflap:~/src> gcc hello.c -o hello64
gaf@gaflap:~/src> file hello64
hello64: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for
GNU/Linux 2.4.1, dynamically linked (uses shared libs), not stripped
gaf@gaflap:~/src> gcc -m32 hello.c -o hello32
gaf@gaflap:~/src> file hello32 hello32: ELF 32-bit LSB executable,
Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked
(uses shared libs), not stripped
Another issue is the OS. You can run either a 32-bit or a 64-bit OS. he
32-bit OS will not give you any of the additional features of the
64-bit architecture. A 64-bit OS runs in full 64-bit mode, but does
allow both 64-bit and 32-bit binaries to run.
--
Jerry Feldman