Linux 和 x32-ABI - 如何使用?

Fra*_*sco 8 64bit memory 32bit linux-kernel

简介
我刚刚转移到 64 位安装,我在内存使用方面遇到了很大的不同(特别是对于像 chrome、firefox、mysql 和 java 应用程序这样的应用程序):

  • 虽然之前 4GB 足够了,但他们很快就用完了!

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

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

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

现在,如果我了解x32-ABI 要求

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

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

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

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

Fra*_*sco 3

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

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

  • 所以你需要使用“syscall.x32=y”选项启动内核。 (2认同)