x32 ABI

✍ dations ◷ 2025-05-11 04:47:21 #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中添加了相应支持。

相关

  • 脓疮脓疡(拉丁语:abscessus; 德语:Abszess; 法语:Abcès; 英语:Abscess)又称作脓疮、脓肿。指的是在身体组织中蓄积的脓。接近体表的脓疡会有红、肿、热、痛等症状,触诊病灶时感觉其内
  • 内在光敏视网膜神经节细胞内在光敏视网膜神经节细胞(英语:Intrinsically photosensitive retinal ganglion cells,缩写“ipRGCs”),也称作光敏视网膜神经节细胞(缩写“pRGC”)或黑视蛋白视网膜神经节细胞(英
  • 拜新同硝苯地平(英语:Nifedipine),商品名拜新同(Adalat),是一种二氢吡啶(英语:dihydropyridines)类钙离子通道阻滞剂,主要阻断L-型钙离子通道。硝苯地平主要用来治疗心绞痛(尤其是变异型心绞痛
  • 1180年重要事件及趋势重要人物
  • 中士中士是军人的职衔,士官的一种,在大多数国家的军衔制度中,中士之下的阶级为下士,中士之上的阶级为上士。军队编制上多以士官长、上士担任副排长,中士担任班长,下士担任副班长,下辖三
  • 约翰·马克斯维尔·库切约翰·马克斯维尔·库切(英语:John Maxwell Coetzee,或者简写为J. M. Coetzee,1940年2月9日-),又译柯慈,南非当代著名小说家,诺贝尔文学奖2003年的得主, 1987年耶路撒冷奖得奖者,使用
  • 被怀疑是br /假旗行动栽赃行动,亦作嫁祸行动,是隐蔽行动的一种,指通过使用其他组织的旗帜、制服等手段误导公众以为该行动由其他组织所执行的行动。栽赃行动在谍报活动中非常常见,此外民间的政治选举
  • 社区卫生中心社区卫生中心(Community health center,也称 healthcare center,或是  health center )是由一组普通科医生和护士组成的诊所,一群诊所组成一个网络,这个诊所为特定区域的人们提供
  • 每分钟计数每分钟计数(英语:Counts per minute,符号:CPM),表示单位时间1分钟内放射性检测仪器(如盖革计数器)测到的电离事件的计数。CPM不属于国际单位制。而CPS表示1秒钟内的电离事件的计数。
  • 李邦宁李邦宁,字叔固,元朝宦官。本名李保宁,钱塘县(今浙江省杭州市)人。初任宋朝小黄门,宋亡后归元,从宋恭帝入见元世祖忽必烈。为给事内庭,因为他为人机警聪敏,得到元世祖的赏识。他学习蒙