首页
abi(abi)
返回

abi(abi)

2022-12-18 科技信息 By:佚名
最佳答案abi,abi这个很多人还不知道,小飞来为大家解答以上的问题。现在让我们一起来看看吧!1、比如我在PC上用不管什么样的COMPILER, 只要产生符合LINUX的ELF文件, 用相应的INSTRUCTION SET(比如INTEL, PPC, SPARC). 就可以在一个LINUX机器上运行. 调用系统或别人的LIB.ABI定义了BINARY的文件格式, 内容, ...

abi,abi这个很多人还不知道,小飞来为大家解答以上的问题。现在让我们一起来看看吧!

1、比如我在PC上用不管什么样的COMPILER, 只要产生符合LINUX的ELF文件, 用相应的INSTRUCTION SET(比如INTEL, PPC, SPARC). 就可以在一个LINUX机器上运行. 调用系统或别人的LIB.ABI定义了BINARY的文件格式, 内容, 以及装载/卸载程序的要求, 函数调用的参数传递规则, 寄存器, 堆栈的使用等. abi(应用二进制接口)我的理解就是机器代码一层的接口。

2、先说一下api(特指系统调用),api基本上是和机器硬件平台无关但是和操作系统密切相关的接口,一个api调用定义了一个对内核的操作,以及操作的参数。

3、C语言会议函数的形式调用api。

4、abi,是比api更贴近硬件的一层接口,它规定的是二进制代码之间的调用规则。

5、举个例子来说吧!一个应用程序,调用了.so库中的函数或者系统调用,如果它的编译器可以找到被调用函数或者系统调用的话,则编译可以同过,也就是说,它是用的api是正确的。

6、但是,这个调用离成功还很远。

7、 首先,如果编译出来的代码和运行库函数和系统调用的代码不是一个硬件平台的,则这个应用根本就不能和被调用代码运行在一起,则调用不会成功。

8、即使库函数、系统调用和是运行在同一硬件平台上的调用也不一定会趁成功。

9、因为程序最终是被编译成二进制代码的,并且是要加载到内存中运行的。

10、那么,在调用库函数或者系统调用的时候,应用要先要以库函数或者系统调用指定的方式和位置(内存或者寄存器)设置参数,然后通过中断或者其他方式跳转到被调用代码的起始处进行执行,被调用代码从指定位置去到参数,处理完毕之后再将结果放到指定的位置,最后应用再到指定的地方取回结果,调用完毕!我认为这个过程中,存放参数和结果的位置属于abi规定的范围,被调用程序的跳转地址或者中断号码也是abi规定的范围。

11、如果存取参数、结果的位置没有明确的规范,或者调用、被调用双方没有遵照统一个规范,那么这个调用能够根本就不可能成功;如果系统提供的库函数路径不正确,调用也不会成功;如果中断代码使用错误,调用也不会正确。

今天的内容分享完毕,希望对大家有所帮助。

猜你喜欢
蒲地蓝消炎片的作用有哪些功效(蒲地蓝消炎片的作用有哪些)

蒲地蓝消炎片的作用有哪些功效(蒲地蓝消炎片的作用有哪些)

12-19 0 阅读
申请一个公众号要钱吗(申请公众号要钱吗)

申请一个公众号要钱吗(申请公众号要钱吗)

12-19 0 阅读
直销家园网官网(直销家园网)

直销家园网官网(直销家园网)

12-01 0 阅读
进口轴承(关于进口轴承的介绍)

进口轴承(关于进口轴承的介绍)

12-18 0 阅读
亚米级是啥意思(亚米级是什么意思)

亚米级是啥意思(亚米级是什么意思)

12-19 0 阅读
柏吉尔资料(柏吉尔)

柏吉尔资料(柏吉尔)

12-18 0 阅读
热门推荐
九月第一天怎么发朋友圈说说(九月第一天怎么发朋友圈)

九月第一天怎么发朋友圈说说(九月第一天怎么发朋友圈)

12-18 0 阅读
第一款Blocks模块化智能手表可供预订

第一款Blocks模块化智能手表可供预订

12-19 0 阅读
怎么保证余额宝的安全(余额宝安全漏洞)

怎么保证余额宝的安全(余额宝安全漏洞)

12-18 0 阅读
荣耀C系列的新成员有望很快推出

荣耀C系列的新成员有望很快推出

12-18 0 阅读
spn故障码大全(spn)

spn故障码大全(spn)

12-19 0 阅读
蓝色生活一(2015)和生活8 xl在美国首次亮相

蓝色生活一(2015)和生活8 xl在美国首次亮相

12-18 0 阅读
曾经是小小少年到如今风度翩翩歌词(曾经小小少年到如今风度翩翩什么歌)

曾经是小小少年到如今风度翩翩歌词(曾经小小少年到如今风度翩翩什么歌)

12-19 0 阅读
小欧手机游戏(小欧手机)

小欧手机游戏(小欧手机)

12-18 0 阅读
人最正确的睡觉方向财运(人最正确的睡觉方向)

人最正确的睡觉方向财运(人最正确的睡觉方向)

10-05 0 阅读
LG KF510(LG KF600)

LG KF510(LG KF600)

12-18 0 阅读