章 7. 64 位元系統環境的 32 位元和 64 位元應用程式

內容目錄

7.1. 執行期間支援
7.2. 軟體開發
7.3. Biarch 平台的軟體編譯
7.4. 核心規格

摘要

SUSE Linux 可用於多種 64 位元平台。但這並不表示所有包含的應用程式都已移植到 64 位元平台。SUSE Linux 支援在 64 位元系統環境中使用 32 位元應用程式。本章簡略說明這項支援在 64 位元 SUSE Linux 平台的執行方式。它說明 32 位元應用程式的執行方式 (執行期間支援) 以及如何編譯 32 位元應用程式,讓它們在 32 位元和 64 位元兩種系統環境都可執行。另外,您可找到關於核心 API 和 32 位元應用程式如何在 64 位元核心下執行的相關資訊。

SUSE Linux 針對 64 位元平台設計的 AMD64 和 EM64T,讓現有的 32 位元應用程式可以在此 64 位元環境中執行,且「表現出色」。這項支援意謂您可以繼續使用偏好的 32 位元應用程式,無需等到對應的 64 位元連接埠上市。


7.1. 執行期間支援

[Important]不同應用程式版本之間的衝突

如果應用程式有 32 位元和 64 位元兩種版本,同時安裝二種版本,一定會發生問題。在這種狀況下,可在兩種版本中選定一種來安裝並使用。

若要正確執行,每一個應用程式都需要一些程式庫。不幸的是,這些程式庫的 32 位元和 64 位元版本,名稱都一樣。它們必須透過其他方法來區分彼此。

若要保留與 32 位元版本的相容性,程式庫儲存在系統中的位置,會與在 32 位元環境中的位置相同。在 32 位元和 64 位元環境中,libc.so.6 的 32 位元版本都位於 /lib/libc.so.6

所有 64 位元程式庫和物件檔案都位於名為 lib64 的目錄。您通常預期在 /lib/usr/lib/usr/X11R6/lib 之下找到的 64 位元物件檔案,現在放在 /lib64/usr/lib64 以及 /usr/X11R6/lib64 底下。這表示在 /lib/usr/lib/usr/X11R6/lib 之下,有預留空間給 32 位元程式庫使用, 因而兩種版本的檔案名稱能夠保持不變。

物件目錄中的子目錄,如果其資料內容不取決於文字大小,也不會移動。例如,X11 字型仍然可以在 /usr/X11R6/lib/X11/fonts 底下的一般位置找到。此配置與 LSB (Linux Standards Base) 以及 FHS (File System Hierarchy Standard) 相符。