(Translated by https://www.hiragana.jp/)
应用二进制接口 - 维基百科,自由的百科全书

应用进制せっこう

ざい软体开发ちゅう应用进制せっこうえい语:application binary interface,缩写为ABIゆび两程しき组间てきせっこう通常つうじょう其中一个程式模组会是函式库或作业系统所提供的服务,而另一边的模组则是使用者所执行的程式。

いち个ABIてい义了つくえ码如なんそん资料结构与运算ほどじょ,此处所定しょてい义的界面かいめん相当そうとうてい阶并且相于硬たい。而类概念的がいねんてきAPI则在原始げんし码定义这些,则较为高阶,并不直接ちょくせつしょう于硬たい通常つうじょうかいじん类可阅读てきほどしき码。いち个ABIつね见的样貌そく调用约定:资料怎么なり为计さんほどじょてき输入あるもの从中いた输出;x86てき调用约定そくいち个ABIてきれい

决定よう不要ふようさい既定きていてきABI(论是よしかんかた提供ていきょう),通常つうじょうよし编译さく业系统或はこしき库的开发しゃらい决定;しか而,如果せんうつし一个混和多个程式语言的应用程式,就必须直接ちょくせつ处理ABI,さいよう外部がいぶはこしきよびさけべえいForeign function interfaceらい达成此目的もくてき

描述

编辑

ABI涵盖りょうかく种细节,如:

  • かずすえ类型てき大小だいしょうぬのきょく对齐;
  • 调用约定ひかえせい函数かんすうてきさんすう如何いか传送以及如何いか接受せつじゅかえしかい值),れい如,所有しょゆうてきさんすう都通みやこどおり过栈传递,还是部分ぶぶんさんすうつう过寄そん传递;哪个よせそん器用きよう于哪个函すうさんすうどおり过栈传递てきだい一个函数参数是最先pushいた栈上还是さいきさき
  • けい统调ようてき编码一个应用如何向操作系统进行系统调用;
  • 以及ざい一个完整的操作系统ABIちゅう标文けんてき进制格式かくしきほどじょ库等とう

いち个完せいてきABI,ぞうIntel二进制兼容标准えいIntel Binary Compatibility Standard(iBCS)[1]まこと支持しじ它的操作そうさけい统上てきほどじょ经修あらためざい其他支持しじ此ABIてき操作そうさけい统上运行。

其他てきABI标准りょういち些细节,包括ほうかつC++名字みょうじおさむ[2] ,かずどう一个平台上的编译器之间的调用约定[3]ただし包括ほうかつまたが平台ひらだいてきけんようせい

ABI不同ふどう应用ほどじょせっこう(API),APIてい义了みなもとだいかず库之间的せっこういん此同样的だい码可以在支持しじ这个APIてきにんなんけい统中编译しか而ABIまこと许编译好てき标代码ざい使用しようけんようABIてきけい统中无需あらため动就のう运行。 ざいUnix风格てき操作そうさけい统中,存在そんざい很多运行ざいどう一硬件平台上互相相关但是不兼容的操作系统(ゆう其是Intel 80386けんようけい统)。ゆう一些努力尝试标准化ABI,以减しょう销售しょうはたほどじょ移植いしょくいた其他けい统时しょ需的工作こうさくしか而,ちょくいた现在还没ゆう成功せいこうてきれい,虽然Linux标准工作こうさくせいざいLinux做这方面ほうめんてき努力どりょく

嵌入かんにゅうしき应用进制せっこう指定していりょうぶんけん格式かくしきかずすえ类型、よせそん使用しよううずたか积组织优ざい一个嵌入式软件中的参数的标准约定。开发しゃ使用しよう自己じこてき汇编语言也可以使用しようEABIさく为与けんようてき编译生成せいせいてき汇编语言てきせっこう支持しじEABIてき编译创建てき标文けん以和使用しよう类似编译产生てきだい码兼よう,这样まこと许开发者链接一个由不同编译器产生的库。EABIあずか关于通用つうよう计算つくえてきABIてき主要しゅよう别是应用ほどじょだい码中まこと使用しようとく权指れい需要じゅよう动态链接(ゆう时是禁止きんしてき),さら紧凑てきうずたか栈帧组织ようらい节省ないそん[4] 广泛使用しようEABIてきゆうPower PC[5]ARM.[6][7]

まいり

编辑

参考さんこう资料

编辑
  1. ^ Intel Binary Compatibility Standard (iBCS). [2011-01-19]. (原始げんし内容ないようそん于2012-05-27). 
  2. ^ Itanium C++ ABI 互联网档あんてきそんそん档日2008-11-19. (compatible with multiple architectures)
  3. ^ Itanium C++ ABI: Exception Handling 互联网档あんてきそんそん档日2008-05-11. (compatible with multiple architectures)
  4. ^ EABI Summary. PowerPC Embedded Application Binary Interface: 32-Bit Implementation (PDF) Version 1.0. Freescale Semiconductor, Inc. 1995-10-01: 28–30 [2011-01-19]. (原始げんし内容ないようそん (PDF)于2012-03-16). 
  5. ^ "PowerPC Embedded Processors Application Note"[永久えいきゅう失效しっこう链接]
  6. ^ Debian ARM accelerates via EABI port. Linuxdevices.com. 2007-01-19 [2007-10-11]. (原始げんし内容ないようそん档于2012-07-14). 
  7. ^ Andrés Calderón and Nelson Castillo. Why ARM's EABI matters. Linuxdevices.com. 2007-03-14 [2007-10-11]. (原始げんし内容ないようそん档于2012-07-14). 

外部がいぶ链接

编辑