Inhaltsverzeichnis
Zusammenfassung
AMD hat im September 2003 den AMD Athlon64-Prozessor der Öffentlichkeit vorgestellt. Dieser neue Prozessor ist ein 64-bit Prozessor und kann somit neue 64-bit AMD64-Programme ausführen. Desweiteren ermöglicht er die Ausführung bestehender 32-bit x86-Programme mit gleicher Performance.
64-bit Programme erlauben einen größeren Adressraum und können aufgrund von Extra-Registern, die nur im 64-bit Modus unterstützt werden, sowie von weiteren Änderungen, wie den moderneren Aufrufkonventionen „Calling conventions“ für Funktionen, eine bessere Performance bieten.
SUSE LINUX unterstützt den neuen Prozessor mit diesem Produkt in doppelter Hinsicht:
Die 32-bit SUSE LINUX für x86 unterstützt diesen Prozessor als 32-bit Prozessor, so wie es auch den AMD Athlon und die Intel Pentium Prozessoren unterstützt.
Die neue 64-bit SUSE LINUX für AMD64 unterstützt den Prozessor im 64-bit Modus. Desweiteren wird sowohl Ausführung als auch Entwicklung von 32-bit x86 Programmen unterstützt.
![]() | Wichtig |
|---|---|
Aus historischen Gründen ist die Ausgabe von uname -m x86_64, da dies der Name der ersten Spezifikation von AMD war. | |
Auf der Hardware-Seite ist bei AMD64 aus Anwenderseite alles wie auf normalen AMD Athlon Systemen. Die gängigen Schnittstellen und Busse sind auf beiden Plattformen die gleichen und werden auch unterstützt.
Da die Hardware-Treiber für Linux auf AMD64 64-bit Treiber sein müssen, müssen diese teilweise erst angepaßt werden. Einige ältere Karten funktionieren zur Zeit nicht, aber die Hardwareunterstützung von aktueller Hardware sollte in 32-bit und 64-bit gleich sein.
Auf der Software-Seite sind fast alle Pakete 64-bit. Desweiteren wird die Ausführung von 32-bit Programmen unterstützt. Hierzu wurden extra 32-bit Library-Pakete entwickelt, die in der Standardinstallation auch installiert werden. Um 32-bit und 64-bit Libraries mit gleichem Namen auf einem System zu installieren, werden 32-bit Libraries in Verzeichnisse /lib und 64-bit Libraries in /lib64 Verzeichnisse installiert. Die ermöglicht insbesondere, dass 32-bit RPMs ohne Änderungen installiert werden können.
Auf der Administrations- und Anwendungsseite ist eine Unterscheidung zwischen 32-bit und 64-bit nicht direkt erkennbar, alle Programme sehen gleich aus und haben gleiches Verhalten.
32-bit Software, welche uname aufruft um die Architektur festzustellen, muss eventuell angepasst werden um, damit sie auf einem AMD64 System läuft. Ändern Sie die Ausgabe von uname -m mit dem Programm linux32. Geben Sie dazu den Befehl linux32 gefolgt von einem Leerzeichen und dann den Programmaufruf ein. Damit können Sie auch eine Shell starten, in der uname für alle Eingaben modifiziert ist. Aus dieser Shell können Sie problemlos eine beliebige Zahl von Programmen starten.
Auf einem SUSE LINUX für AMD64 System lassen sich sowohl 32-bit als auch 64-bit Programme entwicklen. Die GNU Compiler erzeugen normalerweise 64-bit AMD64 Code. Der Schalter -m32 sorgt für die Erzeugung von 32-bit x86 Code, der dann auch auf einem 32-bit AMD Athlon oder Intel Pentium System läuft.
Bei der Entwicklung von 64-bit Code müssen die 64-bit Libraries benutzt werden. Die Pfade /lib64 und /usr/lib64 werden immer durchsucht, aber für z.B. X11-Code, muß ein -L/usr/X11R6/lib64 benutzt werden. Hier sind also teilweise Anpassungen an den Makefiles nötig.
Zum Debuggen von Code kann GDB benutzt werden, für 64-bit AMD64 Programm heißt das Programm gdb, aber für 32-bit x86 Programme gdb32. Das Tool strace kann sowohl 32-bit als auch 64-bit Programme untersuchen und bei dem Library Tracer ltrace gibt es auch ein extra 32-bit Program ltrace32.