在 64 位 Linux 环境中运行 32 位用户空间,而不是 64 位用户空间

在 64 位 Linux 环境中运行 32 位用户空间,而不是 64 位用户空间

这可能与问题相反,但我想知道是否有办法在 64 位 Linux 环境中运行 32 位用户空间而不是 64 位用户空间。我可以通过multi-lib或类似方式运行 32 位软件。我可以想到这个的可能用途,例如:

  • 与运行 64 位版本相比,使用较少的内存但性能较慢。
  • 较少的内存占用使得可以在具有较低 RAM(例如 2GB)的系统中运行 64 位操作系统(带有 32 位用户空间)。
  • 有些 32 位应用程序的运行速度比 32 位操作系统快,我经常从Linux 内核网站
  • 它可能给人一种在 32 位操作系统上运行 64 位软件的错觉

是的,确实存在一些缺点,例如占用两倍的磁盘空间,包管理器会搞不清楚要安装哪种架构。此外,它还需要能够运行指令集的处理器。

有没有什么办法可以做这件事?

答案1

在可以明确指定机器架构的发行版中,这可能可行,但我从未尝试过。我对我的轻量级 64 位环境很满意。:)
在 Arch Linux 中,您可以在 pacman.conf 中指定架构。
您也可以尝试 Gentoo 并将 -m32 添加到 CFLAGS。
最后,您可以尝试在 32 位环境中强制安装 64 位内核,并使用引导加载程序而不是发行版提供的内核加载它。
但我不会在 64 位系统上依赖 32 位应用程序。几乎所有应用程序都可以为 amd64 编译,而且由于架构较新,它们通常比 32 位应用程序运行得更快。32 位应用程序通常针对 i686 进行优化,而 64 位应用程序至少针对奔腾 4 进行优化,奔腾 4 是一种较新的 CPU,具有编译器可用于优化的更高级功能。当然,64 位应用程序会使用更多一点的内存,但并不会影响速度,而且如果使用轻量级环境,内存一定不是问题。

相关内容