x32 ABI

✍ dations ◷ 2025-09-11 21:26:09 #Linux内核接口,X86架构

x32 ABI(英语:x32 Application Binary Interface)是一种ABI及Linux内核接口之一。它允许程序得到x86-64的优点(较大的CPU寄存器号码,更佳的浮点性能,更快的地址无关代码共享库,通过寄存器传递函数参数,更快的系统调用指令),而使用32位指针,从而避免了对64位指针的开销。

尽管x32 ABI限制了程序的虚拟地址为4 GB,它也减小了程序的内存占用量,且在某些情况下,能使它运行得更快。在181.mcf SPEC CPU 2000基准测试中,x32 ABI版本比x86-64版本最多能快40%。一般而言,x32在SPEC CPU整数基准比x86-64快5-8%。在SPEC CPU浮点基准上,x86-64则毫无速度优势。

大多数情况下执行以ILP32模式编译的程序,但又能使用主要的64位CPU指令,这样的用户空间并非少见,特别是在“经典RISC”芯片领域中。例如,Solaris操作系统在SPARC和x86-64上就是这么做的。而对于Linux,SPARC和PowerPC上的Linux发行版,如Aurora SPARC Linux和Debian,也有ILP32用户空间。根本原因是LP64代码“更贵”,正如上文x86-64所述。就这方面而言,x32是“64位ILP32”概念在x86-64平台的延伸。

自从2003年Athlon 64发布以来,一些人就在讨论32位指针x86-64 ABI的好处,特别是2008年高德纳的研究。然而,在实现这种模式上,外界并没有看到有显著进展,直至2011年8月27日,汉斯·彼得·昂万在Linux内核邮件列表上宣布,他和H·J·鲁一直在x32-ABI上努力。

就在同一天,林纳斯·托瓦兹回应道,在x32 ABI中使用32位时间值,将来可能会导致问题。这是因为,使用32位时间值,将导致时间值在2038年溢出。根据这一要求,x32 ABI的开发者将时间值变为了64位。

2011年9月7日一个Linux Plumbers Conference上的演讲提及了x32 ABI。

x32 ABI于Linux 3.4起合并入内核,GNU C 库 2.16中添加了相应支持。

相关

  • 郝华德·洛斯克郝华德洛斯克,(Howard A. Rusk,1901年4月9日-1989年11月4日),国际公认的现代复健医学之父。洛斯克医师1923年毕业于密苏里大学,1925年毕业于宾州大学医学院。
  • 复合口服避孕药复合口服避孕药,也叫复方口服避孕药,是目前最常见的避孕药。它是一种通过服用复合雌激素和孕激素来控制生育的方法。如女性正确地根据药物说明,每日规律服用这种药,可达到避孕的
  • 折扇扇是一种拨动空气以令人凉快的工具,需要人手推动,所以又称之为拨扇。但在现代,凉快的工作多为电风扇或冷气机所取代,扇子渐渐衰落。最常见的扇子款式是折扇,又名聚头扇、折叠扇、
  • 广岛县广岛县(日语:広島県/ひろしまけん Hiroshima ken */?)是日本一级行政区划,位于日本本州西端中国地方。东接冈山县、北接鸟取县与岛根县、西邻山口县、南滨濑户内海。首府位于广
  • 放县维尔扬迪县 (Viljandi maakond,或称Viljandimaa)是爱沙尼亚南部的一个县,南邻拉脱维亚。面积3,422平方公里。2004年人口为56,854人。首府维尔扬迪。下分三市十二镇。
  • 斯离斯离,战国时期秦国将领,官居尉,故又作尉斯离。秦昭襄王二十三年(公元前284年),斯离与三晋、燕国军队会师讨伐齐国,破之于济西。
  • 摩洛哥阿拉伯语摩洛哥阿拉伯语在摩洛哥被称为达里贾(الدارجة‎ ,即“方言”),是阿拉伯语变体马格里布阿拉伯语的一支,主要分布于摩洛哥。摩洛哥阿拉伯语因历史原因受柏柏尔语、拉丁语、
  • 朱赓《古圣贤像传略》十六卷之《朱文懿像》朱赓(1535年-1608年),字少钦,号金庭,浙江绍兴府山阴县(今属绍兴市)人。明朝重臣,官至内阁首辅。生于明世宗嘉靖十四年(1535年),嘉靖四十年(1561年)举
  • 克里斯蒂安·康鹫克里斯蒂安·康鹫(爱沙尼亚语:Kristjan Kangur,1982年10月23日-),爱沙尼亚篮球运动员,现在效力于意大利球队瓦雷泽篮球俱乐部。他也代表爱沙尼亚国家男子篮球队参赛。
  • 舍利科夫海峡舍利科夫海峡是美国的海峡,位于阿拉斯加州西南面,连接库克湾和太平洋,将科迪亚克岛和阿福格纳克岛从大陆分隔,长240公里、宽40至48公里。