Linux调试私房菜(七)缔造程序兼容的合约

十四、缔造程序兼容的合约(上)

1. 什么是 ABIApplication Binary Interface?

  • 应用程序二进制接口
    • 数据类型的大小、数据对齐方式
    • 函数调用发生时的调用约定
    • 系统调用的编号,以及进行系统调用的方式
    • 目标文件的二进制格式、程序库格式、等等

2. 什么是EABIEmbedded Application Binary Interface?

  • 嵌入式应用程序二进制接口
    • 针对嵌入式平台的ABI规范
      • 可链接目标代码以及可执行文件格式的二进制规范
      • 编译连接工具的基础规范、函数调用规范、调试格式规范等
      • EABI 与ABI的主要区别是应用程序代码中允许使用特权指令

3.ABI的概念

  • 广义上ABI的概念
    • 泛指应用程序在二进制层面应该遵循的规范
  • 狭义上ABI的概念
    • 特指
      • 某个具体硬件平台的ABI规范文档
      • 某个具体操作系统平台的ABI规范文档
      • 某个具体虚拟机平台的ABI规范文档

4. ABI规范示例

为什么下面的代码能够以0作为退出码结束程序运行?

5. 问题:ABIAPI有什么不同

  • ABIAPI是不同层面的规范
    • ABI是二进制层面的规范
    • API是源代码层面的规范
  • ABIAPI没有直接联系
    • 遵循相同ABI 的系统,所提供的API可能不同
    • 所提供API相同的系统,遵循的ABI可能不同

6. 实例分析:ABI 实例分析跨平台程序原理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值