x32 ABI

✍ dations ◷ 2025-07-22 03:13:05 #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中添加了相应支持。

相关

  • 跗节节肢动物的腿,是体节上的附属肢(简称附肢),通常用于行走。在英语中,节肢动物附属肢的许多术语源自于拉丁文,并且通常与用于描述骨头的术语相混淆。例如:coxa (底节或者髋关节)、tro
  • 芽孢乳酸菌凝结芽孢杆菌(学名:Bacillus coagulans),又称芽孢乳酸菌(Lactobacillus sporogene),是一种可以产生乳酸的革兰氏阳性菌。此种细菌为杆菌,大小约为0.9*3-5微米,具有过氧化氢酶,营养型态
  • 药效反应药物效应动力学(英语:Pharmacodynamics (PD) ),简称药效学,是药理学的一个分支,主要研究药物作用(action)与药理效应(effects)(即药物对机体的作用及作用机制(mechanism of action)
  • 富裕具有价值的东西就称之为财富,包括自然财富、物质财富、精神财富等等。经济学上,财富是指物品按价值计算的富裕程度,或对这些物品的控制和处理的状况。财富的概念为所有具有货币
  • 古罗马建筑古罗马建筑(英语:Ancient Roman architecture)指由古罗马人创造并且扩展到地中海沿岸其所控制疆域的一种新风格的建筑艺术,经常简称为罗马建筑(英语:Roman architecture)。他直接继
  • 国际手语翻译协会国际手语翻译协会(简称 WASLI)是一个国际组织,旨在推广手语口译的职业。WASLI 于2003年7月23日在加拿大蒙特利尔举行的第十四届世界聋人联合会大会上成立的。 它的办公室位于
  • 南康德站南康德站(韩语:남강덕역)是朝鲜民主主义人民共和国咸镜北道清津市松坪区域的一个铁路车站,属于平罗线和康德线。平罗线康德线
  • 北野宪造北野 宪造(日语:きたの けんぞう、1889年(明治22年)8月24日 - 1960年(昭和35年)7月25日)为日本陆军军人。最终阶级为陆军中将。滋贺县出身。税务署长・北野本次郎之子。彦根中学校
  • 潘家仪潘家仪(英语:Vanessa Pan,日语:ヴァネッサ・パン,1991年7月19日-),台湾艺人、Cosplayer,艺名咖滋咪。12岁以“野臣一美”(Kazumi Noomi)名义开始玩Cosplay,16岁作为模特儿在无名小站以“
  • 原节子原节子(1920年6月17日-2015年9月5日),本名会田昌江,生于日本神奈川县横滨市,女演员。有映画“四大女优”之誉(另三位是田中绢代、高峰秀子和山田五十铃)。原节子幼年时的志愿是成为