跳至內容跳至頁面導覽:上一頁 [access key p]/下一頁 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文件 / 管理指南 / 系統 / 64 位元系統環境中的 32 位元和 64 位元應用程式
適用範圍 SUSE Linux Enterprise Server 15 SP3

16 64 位元系統環境中的 32 位元和 64 位元應用程式

SUSE® Linux Enterprise Server 可用於多種 64 位元平台。開發商尚未將所有 32 位元應用程式移植至 64 位元系統。本章簡略說明 64 位元 SUSE Linux Enterprise Server 平台上的 32 位元支援實作。

適用於 64 位元平台 POWER、IBM Z 和 AMD64/Intel 64 的 SUSE Linux Enterprise Server 可讓現有的 32 位元應用程式無需額外設定 即可在 64 位元環境中執行。對應的 32 位元平台為:用於 POWER 的 POWER 和用於 AMD64/Intel 64 的 x86。這項支援表示您可以繼續使用偏好的 32 位元應用程式,無需等到對應的 64 位元連接埠上市。目前的 POWER 系統以 32 位元模式執行大部分應用程式,不過您可以執行 64 位元應用程式。

注意
注意:不支援建構 32 位元應用程式

SUSE Linux Enterprise Server 不支援編譯 32 位元應用程式。它只為 32 位元二進位檔案提供執行時期支援。

16.1 執行時期支援

重要
重要:不同應用程式版本之間的衝突

如果某個應用程式有提供可在 32 位元和 64 位元環境下執行的版本,則同時安裝這兩個版本可能會導致問題。在這種情況下,請決定要安裝哪一個版本,以避免潛在的執行時期錯誤。

此規則的一個例外是 PAM (可插入驗證模組)。SUSE Linux Enterprise Server 在驗證程序中使用 PAM 做為使用者與應用程式之間的溝通層。在有執行 32 位元應用程式的 64 位元作業系統上,請務必安裝 32 位元和 64 位元的 PAM 版本。

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

為了與 32 位元版本保持相容,64 位元和 32 位元程式庫將儲存在同一位置。在 32 位元和 64 位元環境中,libc.so.6 的 32 位元版本位於 /lib/libc.so.6

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

如果 /lib 之下 32 位元子目錄的資料內容與字詞大小無關,則不會移動這些子目錄。此配置與 LSB (Linux Standards Base) 以及 FHS (File System Hierarchy Standard) 相容。

16.2 核心規格

適用於 AMD64/Intel 64、POWER 和 IBM Z 的 64 位元核心提供 64 位元和 32 位元兩種核心 ABI (應用程式二進位介面)。後者與對應的 32 位元核心的 ABI 是相同的。這意味著,32 位元和 64 位元應用程式與 64 位元核心的通訊方式相同。

針對 64 位元核心的 32 位元系統呼叫模擬不支援系統程式使用的某些 API。這要視平台而定。因此,有少數應用程式 (例如 lspci) 必須在非 POWER 平台上以 64 位元程式的形式編譯,才能正常運作。在 IBM Z 上,並非所有 ioctl 都可用於 32 位元核心 ABI

64 位核心只能載入 64 位元核心模組。必須專門為 64 位元核心編譯 64 位元模組。無法在 64 位元核心下使用 32 位元核心模組。

提示
提示:核心可載入模組

部份應用程式需要個別的核心可載入式模組。如果您想要在 64 位元系統環境中使用 32 位元應用程式,請聯絡應用程式提供者與 SUSE。確定 64 位元版的核心可載入模組及 32 位元編譯版核心 API 適用於此模組。