Linux 和 x32-ABI - 如何使用?

Linux 和 x32-ABI - 如何使用?

介绍
我刚刚转移到 64 位安装,并且内存使用情况存在很大差异(特别是对于 chrome、firefox、mysql 和 java 应用程序等应用程序):

  • 以前4gb就够了,现在他们很快就用完了!

这是 64 位操作系统众所周知的副作用,无论如何 64 位还带来了一些其他优势。

除了内存非常便宜之外,还有一些上网本仍然配备 1/2GB 内存……而它来了x32 ABI:一个旨在限制这个问题的内核功能。

什么是 x32 ABI:
根据这个pdf与 64 位普通操作系统相比,它提供了巨大的内存优势(甚至增强了 40%)。

现在如果我明白了x32-ABI 需要:

  • 使用 CONFIG_X86_X32=y 编译的 Linux Kernel 3.4
  • 海湾合作委员会4.7
  • 二进制实用程序 2.22
  • glibc 2.16
  • 使用 gcc -mx32 重新编译应用程序所需的所有系统库

我知道 Debian 和其他发行版实际上正在提供支持 32x-ABI 的库,但我找不到任何文档来设置此功能(我使用的是 Ubuntu 14.04 64 位)

我想用这个问题来帮助我和其他人收集信息,因为我认为这是一个非常有趣的功能。

特别是,我的目标是使用 x32-ABI 运行一个应用程序(例如 chrome、firefox 或 mysql)。

答案1

德班
我还没有尝试过,但这里有一些在 debian 上运行 X3​​2-ABI 的说明: https://wiki.debian.org/X32Port


这里有一个包含许多 X32 软件包(例如 chromium、mysql)的存储库: https://github.com/fantix/ArchLinux-x32

答案2

对于喜欢冒险的人,您可以重新编译自己的内核和 glibc 等:https://sourceware.org/glibc/wiki/x32

另请注意,找到在 64 位内核上运行 32 位二进制文​​件的发行版支持要“容易得多”,因此您可以只针对该版本进行编译 ( -m32) 而不是 x32 位 ( -mx32),虽然会损失一些好处,但更容易设置后,仍然可以节省一些 RAM。

相关内容