(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). 

外部がいぶ链接

编辑