这14.04 发行说明包含以下句子:
还引入了 X32 ABI 支持(带有 32 位指针的 64 位模式)。
我认为这值得进一步解释。当您使用搜索引擎查找有关“x32 ABI”的更多信息时,您可能会发现维基百科文章最好的情况下,但主要是 Phoronix 和 Slashdot,似乎不太有用。
我希望看到一些关于以下问题的深刻见解:
- x32 ABI 目前在 14.04 中是如何实现的?
- 它是否在 14.04 64 位中默认启用,或者是否需要任何其他步骤来设置 x32 ABI?
- 哪些组件或哪些软件可以使用 x32 ABI?
- 运行 x32 ABI 的机器/安装是否有实际好处?
- 与默认的 32 位和 64 位安装相比,内存消耗如何?
理想情况下,x32 ABI 应该将两全其美的优势结合在一起:x86-64 的大部分速度改进和更低的内存消耗较旧的 64 位硬件,没有太多 RAM。
编辑 2020-08-25:我最近注意到,在 Chromebook 上通过 Chrome OS Linux App Beta(Chrome OS 中运行 LXD 的特殊 VM,默认情况下运行 Debian,但可以运行 Ubuntu、Fedora、Arch Linux 和其他系统)运行 Ubuntu 时,它有一个 /libx32 文件夹。也许这个问题需要重新审阅/修改或再次提出。我会考虑的。
答案1
在 64 位安装中,您将体验到内存使用方面的巨大差异(尤其是对于 chrome、firefox、mysql 和 java 应用程序等)。
这是 64 位操作系统众所周知的副作用,无论如何 64 位还带来了一些其他优势。
这就是x32 ABI
:一个内核特性,其目的正是限制这个问题。
什么是 x32 ABI:
根据这个 pdf与 64 位普通操作系统相比,它提供了巨大的内存优势(甚至增强了 40%)。
现在如果我明白了x32-ABI 需要:
- 使用 CONFIG_X86_X32=y 编译的 Linux 内核 3.4
- Gcc 4.7
- Binutils 2.22
- Glibc 2.16
- 使用 gcc -mx32 重新编译应用程序所需的所有系统库
如何尝试
新内核默认有所需的标志,因此你需要仅有的以正确的方式编译打包(这里 Gentoo 肯定规则 ;)
在 Ubuntu 上,我不确定是否有任何存储库/ppa 用于此,无论如何 Debian 和 Arch 有一些解决方案:
Debian
有关如何在 Debian 上设置 chroot 环境和运行 X32-ABI 的说明: https://wiki.debian.org/X32Port
x32 软件包托管在这里:http://ftp.debian-ports.org/debian/pool-x32/main/
- 有关 x32 Debian 移植的信息http://debian-x32.org/
拱
- 这里有一个包含许多 X32 包(例如 chromium、mysql)的存储库: https://github.com/fantix/ArchLinux-x32