AMD presented its Athlon64 processor to the public in September 2003. This new processor is a 64-bit processor and is therefore able to execute new 64-bit AMD64 programs. It also supports the execution of existing 32-bit x86 programs at the same level of performance.
64-bit programs have a larger address space and offer better performance by providing modern calling conventions and additional registers which are only supported in 64-bit mode.
SuSE Linux supports the new processor with this product in two ways.
The output of uname -m is x86_64 due to historical reasons as this was the name of the first AMD specification.
From the perspective of the user, hardware relates to the AMD64 just like it does with AMD Athlon systems. The common interfaces and buses are the same on both platforms and are equally supported.
Since the hardware drivers for Linux on AMD64 have to be 64-bit drivers, some of them still need to be adapted. While some older cards are currently not functional, the support of current hardware should be the same in 32-bit and 64-bit.
Almost all packages are 64-bit on the software side. The execution if 32-bit programs is additionally supported. Dedicated 32-bit library packages were developed to this end and are installed in the default installation. In order to install 32-bit and 64-bit libraries with the same name on one system, the 32-bit libraries are installed in the directory /lib while the 64-bit libraries are installed in the /lib64 directory. This especially makes the installation of 32-bit rpms possible without any modifications.
Non-64-bit packages include OpenOffice and some commercial packages, like the Acrobat Reader.
From the perspective of the administrator or the user, there is no directly discernable difference between 32-bit and 64-bit. All programs look and feel the same.
32-bit software which calls uname in order to probe for the architecture possibly needs to be persuaded to run on an AMD64 system. This can be achieved with the application linux32, which changes the output of uname -m:
$ uname -m x86_64 $ linux32 uname -m i686
A SuSE Linux for AMD64 system supports the development of 32-bit applications as well as 64-bit applications. The GNU compiler usually create 64-bit AMD64 code. The switch -m32 invokes the creation of 32-bit x86 code which then also runs on a 32-bit AMD Athlon or Intel Pentium system.
The 64-bit libraries have to be used for the development of 64-bit code. The paths /lib64 and /usr/lib64 are always searched, yet an option -L/usr/X11R6/lib64 needs to be added for X11 code. Some adaptation of the Makefiles is thus necessary.
GDB can be used for the debugging of code. While the application for 64-bit AMD64 code is called gdb, it is called gdb32 for 32-bit x86 code. The strace tool can examine 32-bit as well as 64-bit programs and the library tracer ltrace also comes in a separate 32-bit version called ltrace32.
The websites of AMD (www.amd.com) and the project page of the Linux port to AMD64 (www.x86-64.org) provide additional information on the subject.