Kapitel 6. 32-bit und 64-bit Applikationen in einer 64-bit Systemumgebung

Inhaltsverzeichnis

6.1. Laufzeit-Unterstützung
6.2. Softwareentwicklung
6.3. Software-Kompilierung auf Biarch-Plattformen
6.4. Kernel-Spezifika

Zusammenfassung

SUSE LINUX ist für mehrere 64-bit Plattformen erhältlich. Dies bedeutet nicht notwendigerweise, dass alle enthaltenen Applikationen schon auf 64-Bit portiert wurden. SUSE LINUX unterstützt die Verwendung von 32-bit Applikationen in einer 64-bit Systemumgebung. Dieses Kapitel gibt Ihnen einen kurzen Überblick, inwieweit diese Unterstützung auf 64-bit Plattformen bei SUSE LINUX umgesetzt ist. Daneben wird erläutert, wie 32-bit Applikationen ausgeführt werden (Laufzeit-Unterstützung), und wie solche Anwendungen kompiliert werden müssen, damit sie sowohl in einer 32-bit als auch in einer 64-bit Systemumgebung laufen können. Außerdem finden Sie hier Informationen über das Kernel-API und über die Möglichkeiten, eine 32-bit Applikationen mit einem 64-bit Kernel lauffähig zu machen.

SUSE LINUX für die 64-bit Plattformen AMD64 und EM64T ist so ausgelegt, dass existierende 32-bit Applikationen in der 64-bit Umgebung „out-of-the-box“ lauffähig sind. Dank dieser Unterstützung ist es möglich, Ihre bevorzugten 32-bit Applikationen weiter zu verwenden, ohne dass Sie auf die Verfügbarkeit eines entsprechenden 64-bit-Ports warten müssten.

6.1. Laufzeit-Unterstützung

[Important]Konflikte zwischen 32-bit und 64-bit Version einer Applikation

Ist eine Applikation sowohl für 32-bit als auch für 64-bit verfügbar, wird eine parallele Installation beider Versionen zwangsläufig Probleme bereiten. In solchen Fällen müssen Sie sich auf eine der beiden Versionen festlegen und diese installieren und verwenden.

Jede Applikation benötigt eine Reihe von Bibliotheken, um korrekt ausgeführt zu werden. Leider sind die Bezeichnungen für die 32-bit und 64-bit Versionen dieser Bibliotheken identisch – sie müssen auf eine andere Art und Weise voneinander unterschieden werden.

Um die Kompatibilität mit der 32-bit Version zu erhalten, werden die Bibliotheken an derselben Stelle im System gespeichert, an der sie auch in der 32-bit Umgebung liegen. Die 32-bit Version der libc.so.6 befindet sich sowohl in der 32-bit als auch der 64-bit Umgebung unter /lib/libc.so.6.

Alle 64-bit Bibiliotheken und Objektdateien befinden sich in Verzeichnissen namens lib64, d.h. dass die 64-bit Objektdateien, die Sie normalerweise unter /lib, /usr/lib und /usr/X11R6/lib suchen würden, nun unter /lib64, /usr/lib64 und /usr/X11R6/lib64 zu finden sind. So sind also nur die 32-bit Bibliotheken unter /lib, /usr/lib und /usr/X11R6/lib zu finden, wodurch der Dateiname für beide Versionen unverändert beibehalten werden kann.

Grundsätzlich wurden Unterverzeichnisse der Objektverzeichnisse, deren Dateninhalt von der Wortgröße unabhängig ist, nicht verschoben. Sie werden beispielsweise die X11 Fonts weiterhin wie gewöhnlich unter /usr/X11R6/lib/X11/fonts finden. Dieses Schema ist mit der LSB (Linux Standards Base) und dem FHS (File System Hierarchy Standard) konform.


SUSE LINUX Administrationshandbuch 9.3