x32 ABI

✍ dations ◷ 2024-12-23 00:00:01 #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中添加了相应支持。

相关

  • 现象论现象主义(Phenomenalism ),认为物理对象无法被证明是自在存在的,而只能作为出现在时空中的感知现象或感觉刺激(如红色性、硬度、柔软度、甜味度等)而存在。特别是某些形式的现象主
  • 卢·贾里格亨利·路易斯·贾里格(英语:Henry Louis Gehrig,1903年6月19日-1941年6月2日)是美国职棒大联盟史上最伟大的一垒手,职棒生涯都效力于纽约洋基。贾里格生涯以稳定性高、不易受伤著
  • 韵律韵律(意大利语:Metrica,法语:Métrique,德语:Metrik,英式英文:Metre,美式英文:Meter,原于希腊语:μέτρον)是西方诗歌中韵文的基本用韵结构。一行诗(line)可以被分成几组音步(foot)。一组
  • WRKY结构结构 / ECODWRKY结构域是一类转录因子,存在于WRKY转录因子家族中。几乎所有植物基因组中都有带WRKY结构域的蛋白,同时WRKY基因也被发现存在于双滴虫、多细胞变形虫及其他变形
  • 海图海图又称航海图,是精确测绘海洋水域和沿岸地物的专门地图,最早的航海图为盛行于14世纪-17世纪的波特兰型海图,图上布满放射状的方位线,航行者借助这些方位线和罗经仪专供航海所使
  • 夜光藻夜光藻(学名:),属于甲藻门单细胞生物(英语:dinoflagellate),俗称海耀,又称夜光虫,在马来西亚和台湾也被称作蓝眼泪,为一种在海中生存的非寄生甲藻,能作生物发光(bioluminescence)。这种藻
  • 庇护三世教宗庇护三世(拉丁语:Pius PP. III;1439年5月9日-1503年10月18日),原名方济各·托代斯基尼·皮科罗米尼(Francesco Todeschini Piccolomini),于1503年9月22日至1503年10月18日岀任教
  • 2015 SBS演技大奖《2015 SBS演技大奖》(韩语:2015 SBS 연기대상,英语:2015 SBS Drama Awards)为SBS于2015年度颁发的电视剧大奖。
  • 尹聪耀尹聪耀(1997年3月4日-),中国湖北省黄石市西塞山区人,足球运动员,司职中场,现效力中国足球协会超级联赛重庆当代力帆足球俱乐部斯威队。尹聪耀家住湖北省黄石市西塞山区源建一村。据
  • 剪切、复制、粘贴在人机交互中,剪切和粘贴和复制和粘贴是一种为用户界面交互技术(英语:Interaction technique)提供从来源发送文字,数据、文件或对象到目的地的命令。用户常常有需要去进行剪切和