SUSE Linux EnterpriseŽ 可用于多个 64 位平台。但是这并不表示内含的所有应用程序都已移植到 64 位平台上。 SUSE Linux Enterprise 支持在 64 位系统环境中使用 32 位应用程序。 本章简单介绍了如何在 64 位 SUSE Linux Enterprise 平台上实现这种支持。 它解释了如何执行 32 位应用程序(运行时支持)以及应该如何编译 32 位应用程序以使它们既可以在 32 位系统环境中运行,又可以在 64 位系统环境中运行。 另外,您还可以了解有关内核 API 的信息和 32 位应用程序如何在 64 位内核下运行的解释。
![]() | IBM System z 上的 31 位应用程序: |
|---|---|
IBM System z 上的 s390 使用 31 位环境。以下对 32 位应用程序的参照也适用于 31 位应用程序。 | |
用于 64 位平台 ia64、ppc64、s390x 和 x86_64 的 SUSE Linux Enterprise 被设计为可以让现有 32 位应用程序无需进行额外设置即可在 64 位环境中运行。相应的 32 位平台是 x86(对于 ia64)、ppc(对于 ppc64)、s390(对于 s390x)、x86(对于 x86_64)。这种支持意味着您可以继续使用所需的 32 位应用程序,而无需等待对应的 64 位端口可用。当前的 ppc64 系统以 32 位方式运行大多数应用程序,但您可以运行 64 位应用程序。
![]() | 应用程序版本之间的冲突 |
|---|---|
如果某个应用程序在 32 位和 64 位环境中都可用,则两个版本的并行安装必定会导致出现问题。 在这种情况下,在两个版本中选一个,然后安装并使用这一版本。 | |
若要正确执行,每个应用程序都需要一系列库。 不巧的是,这些库的 32 位和 64 位版本的名称是相同的。 必须通过另一种方法对它们加以区分。
同样的方法用于 64 位平台 ppc64、s390x 和 x86_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 位库的空间,因此两个版本的文件名都可以保持不变。
如果对象目录的数据内容不取决于此大小,则不移动 32 位 /lib 目录的任何子目录。 例如,X11 字体仍位于 /usr/X11R6/lib/X11/fonts 下的常规位置。 此方案符合 LSB(Linux 标准库)和 FHS(文件系统层次标准)。
►ipf:
用于 ia64 的 64 位库位于标准 lib 目录。这种情况下,既没有 lib64 目录,也没有 lib32 目录。ia64 将在仿真下执行 32 位 x86 代码。一组基本库将安装在 /emul/ia32-linux/lib 和 /emul/ia32-linux/usr/X11R6/lib 中。
◄