加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入

ABI

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

每個(gè)操作系統(tǒng)都會(huì)為運(yùn)行在該系統(tǒng)下的應(yīng)用程序提供應(yīng)用程序二進(jìn)制接口(Application Binary Interface,ABI)。ABI包含了應(yīng)用程序在這個(gè)系統(tǒng)下運(yùn)行時(shí)必須遵守的編程約定。ABI總是包含一系列的系統(tǒng)調(diào)用和使用這些系統(tǒng)調(diào)用的方法,以及關(guān)于程序可以使用的內(nèi)存地址和使用機(jī)器寄存器的規(guī)定。從一個(gè)應(yīng)用程序的角度看,ABI既是系統(tǒng)架構(gòu)的一部分也是硬件體系結(jié)構(gòu)的重點(diǎn),因此只要違反二者之一的條件約束就會(huì)導(dǎo)致程序出現(xiàn)嚴(yán)重錯(cuò)誤。在很多情況下,鏈接器為了遵守ABI的約定需要做一些重要的工作。例如,ABI要求每個(gè)應(yīng)用程序包含一個(gè)程序中各例程使用的靜態(tài)數(shù)據(jù)的所有地址表,鏈接器通過收集所有鏈接到程序中的模塊的地址信息來創(chuàng)建地址表。ABI經(jīng)常影響鏈接器的是對(duì)標(biāo)準(zhǔn)過程調(diào)用的定義。

每個(gè)操作系統(tǒng)都會(huì)為運(yùn)行在該系統(tǒng)下的應(yīng)用程序提供應(yīng)用程序二進(jìn)制接口(Application Binary Interface,ABI)。ABI包含了應(yīng)用程序在這個(gè)系統(tǒng)下運(yùn)行時(shí)必須遵守的編程約定。ABI總是包含一系列的系統(tǒng)調(diào)用和使用這些系統(tǒng)調(diào)用的方法,以及關(guān)于程序可以使用的內(nèi)存地址和使用機(jī)器寄存器的規(guī)定。從一個(gè)應(yīng)用程序的角度看,ABI既是系統(tǒng)架構(gòu)的一部分也是硬件體系結(jié)構(gòu)的重點(diǎn),因此只要違反二者之一的條件約束就會(huì)導(dǎo)致程序出現(xiàn)嚴(yán)重錯(cuò)誤。在很多情況下,鏈接器為了遵守ABI的約定需要做一些重要的工作。例如,ABI要求每個(gè)應(yīng)用程序包含一個(gè)程序中各例程使用的靜態(tài)數(shù)據(jù)的所有地址表,鏈接器通過收集所有鏈接到程序中的模塊的地址信息來創(chuàng)建地址表。ABI經(jīng)常影響鏈接器的是對(duì)標(biāo)準(zhǔn)過程調(diào)用的定義。收起

查看更多