x32 ABI

✍ dations ◷ 2025-11-11 17:09:41 #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中添加了相应支持。

相关

  • 罗杰·斯佩里罗杰·沃尔科特·斯佩里(英语:Roger Wolcott Sperry,1913年8月20日-1994年4月17日),美国神经生理学家,出生于康乃狄克州哈特福。由于对大脑半球研究的贡献,而获得1981年诺贝尔生理学
  • 降血脂药物降血脂药(英语:Hypolipidemic agents),又称调血脂药或antihyperlipidemic agents、lipid-lowering drugs,是一类用来治疗高脂血症的药物。常用的降血脂药有两大类,分别为他汀类药
  • 世界设计之都世界设计之都(英语:The World Design Capital,简称WDC)是一个由国际工业设计社团协会(ICSID)所认定并授奖的城市推动计划。自2008年起,每两年由全球投件申请的城市中选出一个城市作
  • 五趣上座部佛教上座部佛教《长部》33经记载五趣是地狱、畜生、鬼、人、天神。汉传佛教《杂阿含经》卷15〈406经〉:“佛告阿难:“盲龟浮木,虽复差违,或复相得。愚痴凡夫漂流五趣,暂复
  • 金桥开发片区金桥经济技术开发区,位于上海浦东新区中部,是浦东新区下辖的一个类乡级行政单位,也是中华人民共和国的国家级经济技术开发区,前身为金桥出口加工区,于1990年经国务院批准建立。该
  • 艺术与建筑索引典艺术与建筑索引典(英语:Art & Architecture Thesaurus,AAT)是一个用来描述关于艺术、建筑和物质文化项目的受控词表。AAT收录各种通用术语,如“大教堂”,但不收录专有名词,如“圣母
  • 大多伦多机场管理局大多伦多机场管理局(英语:Greater Toronto Airports Authority,GTAA是一家位于加拿大安大略省密西沙加市的多伦多皮尔逊国际机场的非营利私有企业,主要业务为机场管理及服务。该
  • 二苯基汞二苯基汞为一种无色的结晶, 是一种有机汞试剂具有化学式 C12H10Hg。它可以在乙醇中通过摩尔比数2:1二氯化汞和三苯甲基锡制备。 几乎所有的有机汞试剂的配位几何在汞原子上都
  • 吸血鬼猎人巴菲集数列表《吸血鬼猎人巴菲》(英语:),是一部美国电视剧,1997年3月10日起在WB电视网播出。
  • 直接制版机直接制版机(英文:Computer to Plate,缩写CTP)是由计算机直接制版的设备。直接制版机是在计算机排版发展到一定阶段的产物。在计算机直接出软片之后水到渠成而出现的一项新工艺。