从14.04开始,Ubuntu中x32 ABI实现的当前状态是什么?


11

14.04发行说明包含以下句子:

还引入了X32 ABI支持(带有32位指针的64位模式)。

我认为这值得更多解释。当您使用搜索引擎查找有关“ x32 ABI”的更多信息时,您可能最多只能找到Wikipedia文章,但大部分是Phoronix和Slashdot,它们似乎并不是很有用。

我想在以下方面找到一些有见地的答案:

  • 14.04当前如何或如何实现x32 ABI?
    • 是默认情况下在14.04 64位中启用它还是设置x32 ABI是否需要任何其他步骤?
    • 哪些组件或什么软件可以使用x32 ABI?
  • 运行x32 ABI的计算机/安装是否有实际好处?
    • 与默认的32位和64位安装相比,内存消耗如何?

理想情况下,x32 ABI应该将两全其美的方法结合在一起:x86-64的大部分速度改进和较低内存消耗的用户使用的旧64位硬件没有太多RAM


我自己对此很好奇。我可以告诉您有关x32内存使用情况的一件事是,它使用32位寻址(与x86相同的4GB限制)。由于64位处理器使用64位内存寻址,因此内存引用需要以64位存储在内存中,是在32位模式下存储内存引用所需的32位的两倍。因此,在某些情况下,当使用大量的内存引用(指针)时,64位内存的性能会明显变差。
Chuck R

Answers:


5

在64位安装上,您将在内存使用方面遇到很大的差异(尤其是对于chrome,firefox,mysql和java应用程序等应用程序)。

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

它来了x32 ABI:一个内核功能,旨在完全限制此问题。

什么是x32 ABI:
根据此pdf文件,与64位普通OS(即使增强40%)相比,它具有更大的内存优势。

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

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

尝试方法
默认情况下新内核具有必需的标志,因此您需要以正确的方式编译打包的文件(此处为确定规则的Gentoo;)
在Ubuntu上,我不确定为此是否有任何存储库/ ppa,无论如何Debian和Arch有一些解决方案:

德比安


我想它需要像Debian Wiki中所述在grub中添加内核选项。
jarno

1
从Ubuntu最终用户的角度来看,安装x32-ABI Ubuntu系统似乎太困难了:(
jarno
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.