API 与 ABI 的具体含义

API与ABI 是的,编译软件时需要考虑 ABI。因为 ABI 定义了应用程序的二进制代码如何与操作系统、硬件和其他软件组件在给定平台上进行通信,所以编译软件时必须遵循目标平台的 ABI 规则,以确保生成的二进制代码能够在该平台上正确运行。以 C 语言编写的程序为例,不同的编译器和不同的操作系统可能有不同的 ABI 规则,因此在编译时必须考虑目标平台的 ABI 规则。因此,在编译软件时必须考虑目标平台的 ABI 规则,确保生成的二进制代码能够与目标平台的操作系统、硬件和其他软件组件正确交互。 阅读详情

API都明白什么意思,最近总看到ABI,不太明白意思,搜一搜,原来如此!


转至http://blog.chinaunix.net/uid-14735472-id-111116.html

api 是应用程序和操作系统之间的接口,凡是符合该api标准的应用程序都可以在支持该api的操作系统上编译通过。

abi 是二进制级别的接口,规定了二进制文件的格式、内容、装载/卸载程序的要求、函数调用时的参数传递

规则、寄存器、堆栈的使用。
如果操作系统都支持该api,但是机器的体系结构不同即他们的abi不同,那么在一个机器上生成的二进制代码是不可以在另外一台机器上面运行成功的,可能因为函数调用的参数传递规则不同或者其他由abi定义的行为产生的差异性。
其实关键的是
abi定义了运行时的兼容性问题,这个问题是api无法解决的。api所能解决的是静态状态下的兼容性问题。

以下摘自encyclopedia of PCMAGZINE

Definition of: API 
(Application Programming Interface) A language and message format used by an application program to communicate with the operating system or some other control program such as a database management system (DBMS) or communications protocol. APIs are implemented by writing function calls in the program, which provide the linkage to the required subroutine for execution. Thus, an API implies that some program module is available in the computer to perform the operation or that it must be linked into the existing program to perform the tasks.

Definition of ABI

(Application Binary Interface) A specification for a specific hardware platform combined with the operating system. It is one step beyond the application program interface (API), which defines the calls from the application to the operating system. The ABI defines the API plus the machine language for a particular CPU family. An API does not ensure runtime compatibility, but an ABI does, because it defines the machine language, or runtime, format.

网络设备调试指南:如何用MDIO Clause22/45协议读写Marvell MV88E6390寄存器 本文深入解析了如何通过MDIO Clause 22/45协议对Marvell MV88E6390交换芯片进行寄存器读写调试。文章详细对比了两种协议的本质区别与适用场景,并重点阐述了MV88E6390的直接与间接寻址策略,提供了实战代码示例与关键调试技巧,帮助网络工程师高效解决配置与通信问题。 阅读详情

相关推荐

使用Typora时LaTeX内联公式简单汇总

0、前言 在使用Typora写笔记时,有时候需要添加上LaTeX排版的公式。以下是整理出的一份简单笔记,方便记忆不清楚时查阅。笔记暂时不够完善,之后再补充。 注:有些公式语法KateX不能解析,但在Typora中可以使用(不用在意) 1、一些基本内联公式 位置关系 展示 LaTeX 说明 x2x^{2}x2 x^{2} 右上标 x2x_{2}x2​ x_{2} 右下标 2x{}^{2}x2x {}^{2}x 左上标 2x{}_{2}x2​x {}_{2}x 左下标

白白旧维的博客 4438

细谈ABI

细谈ABIABI (Application Binary interface)API与ABI的区别影响ABI兼容性的因素硬件 - 如处理器操作系统编译器语言层面 - C++总结参考资料 ABI (Application Binary interface) ABI (Application Binray interface) : 应用程序二进制接口,描述了应用程序和操作系统之间,一个应用和它的库之间,或应用的组成部分之间的低接口。 API与ABI的区别 ABI从名字上看是二进制接口,而二进制文件再linux

NP_super的博客 1584

嘉立创EDA vs Altium Designer:新手如何选择?从界面到实战全对比

本文全面对比了嘉立创EDA与Altium Designer(AD)两大PCB设计工具,从设计哲学、界面交互、封装库管理、设计规则引擎、协作功能到成本生态六大维度进行深入分析。嘉立创EDA以极简设计和云端协作为特色,适合学生和创客快速上手;而AD则凭借专业级精准控制,成为高端电子设计的行业标准。通过实战案例和详细对比表格,帮助新手根据项目需求选择合适的EDA工具。

weixin_30296405的博客 720

电商API兼容性问题剖析:挑战、影响与系统性解决方案

电商API兼容性问题是一个复杂而严峻的挑战,但通过采用标准化的API接口规范、加强数据安全与隐私保护、引入联邦学习等新兴技术、建立灵活的维护与升级机制、利用第三方集成平台或服务以及实施API版本控制等措施,企业可以有效解决兼容性问题,提升运营效率、用户体验和数据安全性,推动电商业务的持续创新和发展。电商行业对API接口的性能和稳定性要求极高。例如,商品ID在不同平台上的命名规则可能不同,价格字段的精度和单位也可能存在差异,这些都需要开发者在数据交换过程中进行复杂的映射和转换,增加了数据处理的复杂性和成本。

Joe13265449558的博客 842

C# HttpClient 实战:3步绕过Cloudflare指纹拦截,获取完整网页内容

本文详细介绍了如何使用C# HttpClient绕过Cloudflare指纹拦截,获取完整网页内容的3步实战方案。通过完美复制浏览器请求头、智能管理Cookie容器以及处理动态挑战页面,开发者可以有效突破Cloudflare的反爬机制,适用于爬虫开发和数据采集项目。

weixin_31856057的博客 320

pgpool-II安装部署

文章介绍了pgpool-II的核心功能、架构组成以及实际部署的关键配置步骤

weixin_41690116的博客 1422

平台治理开发的API版本管理与兼容性

1.背景介绍 平台治理开发是一种新兴的软件开发方法,它强调在开发过程中考虑平台的治理方面,以确保平台的可靠性、安全性、性能等方面的要求。API版本管理和兼容性是平台治理开发中的重要环节,它们有助于确保平台的稳定性和可靠性。 API版本管理是指对API的版本进行管理,以确保API的兼容性和稳定性。API版本管理涉及到API的版本号管理、版本迭代策略的设计、版本回退策略的设计等。API版本管理的目...

AI天才研究院 1252

UNITE真菌数据库使用避坑指南:从下载到注释的完整流程

本文提供了UNITE真菌数据库从下载到注释的完整实战指南。针对真菌ITS序列分析,重点解析了数据库版本选择、格式转换的常见陷阱,并详细介绍了如何训练优化的sklearn分类器以提升物种注释的精度和可靠性,帮助用户构建高效稳定的本地工作流。

weixin_29240343的博客 199

SDK发布包中API兼容性问题及跨版本问题说明

目录1 版本兼容问题1.1 兼容性级别1.1.1 向后兼容性1.1.1.1 功能性兼容性1.1.1.2 源代码兼容性1.1.1.3 二进制兼容性1.1.2 向前兼容性1.2 怎么维护向后兼容性1.2.1 添加功能1.2.2 修改功能1.2.3 弃用功能1.2.4 移除功能2 跨平台问题 1 版本兼容问题 1.1 兼容性级别 通常应该为 API 的“主、次和补丁”版本提供不同级别的兼容性承诺。例如,可以承诺补丁版本同时满足向后和向前兼容,或者承诺只有主版本才会破坏二进制兼容性。 1.1.1 向后兼容性 向后兼

bigchen 4161

3步搞定.NET Core在UOS上的部署?手把手教你从零到上线!

本文详细介绍了如何在统信UOS系统上部署.NET Core应用程序的完整流程。首先,通过安装.NET Core SDK,确保UOS系统能够编译和运行C#代码。接着,创建一个简单的控制台应用,并验证其本地运行情况。最后,通过发布应用、传输文件到UOS服务器,并解决权限问题,确保应用能够在UOS上顺利运行。文章还提供了常见问题的解决方案,如依赖缺失、权限不足和服务启动失败等,帮助开发者避免常见陷阱。通过本文的指导,开发者可以轻松将.NET Core应用部署到UOS系统,并实现24/7的稳定运行。

java专栏 587

Python爬虫实战:全自动采集银行理财产品收益率数据

本文通过Playwright动态爬虫技术,成功实现了对银行理财产品收益率数据的实时采集,并通过 Pandas 数据清洗、SQLite 存储、调度自动化等模块,构建了一个可扩展的银行理财数据抓取系统。理财非儿戏,数据做决策。掌握银行收益信息是我们迈向理性投资的第一步。希望这套工具对你有所帮助!

2201_76125261的博客 1155

【基础概念】API和ABI

API(应用程序编程接口)和ABI(应用程序二进制接口)是软件开发中两个重要的概念。

2201_75772333的博客 1263

【IC前端虚拟项目】spyglass lint环境组织与lint清理

和上个虚拟项目的lint清理环节一样,关于spyglass的lint清理功能与流程还是大家通过各种资料去学习下就好啦。和之前不同的事,这次的虚拟项目里我把流程封装为Makefile,更加的贴近了实际项目交付流程。而后就可以根据提示进行lint的清理工作了。

moon9999的博客 1886

ISA, ABI, API 的含义以及联系

ISA, ABI, API 的含义以及联系ISAABIAPI ISA ISA, instruction set architecture 指令集体系结构(ISA)是计算机的抽象模型。它也称为体系结构或计算机体系结构。 ISA的实体称为实现。 ISA允许多种实现,这些实现可能会在性能,物理大小和金钱成本(以及其他方面)方面有所不同。因为ISA充当软件和硬件之间的接口,为ISA编写的软件可以在同一IS...

weixin_43162745的博客 5999

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ABI 与 API 的区别

待续 参考文献 [1]余甲子,石凡,潘爱民.程序员的自我修养——链接、装载与库[M].北京:机械工业出版社,2009.C4.4.3C++与ABI.P115-P117

Doublelv 的博客专栏。 7723

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

API、ABI区别

应用程序二进制接口(ABI-Application Binary Interface)定义了一组在PowerPC系统软件上编译应用程序所需要遵循的一套规则。主要包括基本数据类型,通用寄存器的使用,参数的传递规则,以及堆栈的使用等等。 ABI涵盖了各种细节:如数据类型、大小和对齐;调用约定(控制着函数的参数如何传送以及如何接受返回值);系统调用的编码和一个应用如何向操作系统进行系统调用;以及在一个

xinghun_4的专栏 3万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ABI与API定义及区别

ABI与API定义及区别 ABI(Application Binary Interface,应用二进制接口)和 API(Application Programming Interface,应用程序接口)是软件工程中两个核心概念,本质区别在于作用层级与交互对象。

热土程序园,利他愉己~ 1639

ABI接口与API接口

API和ABI很类似,两者的全程只有一字之隔,API(Application Programming Interface)和ABI(Application Binary Interface),其实 两者都是应用程序接口,只是区别在于API是源代码层的应用程序接口,比如POSIX就是一个API,Windows所规定的应用程序接口都 是API;ABI是二进制层面的接口,ABI的兼容成都比API更严格。 举个例子,比如POSIX的pirntf()函数,在API层面,他能保证所有支持POSIX标准的系...

落幕的专栏 3485

详细解析API和ABI的区别

API(Application Programming Interface)和ABI(Application Binary Interface)是软件开发中的两个关键概念,分别作用于源代码和二进制代码层面。API是开发者编写代码时使用的接口,定义了函数名、参数类型和返回值等逻辑规则。而ABI则规定了编译后的二进制代码如何与操作系统或其他库交互,涉及参数传递、寄存器使用等底层规则。两者的兼容性对程序运行至关重要:API变化会导致编译错误,而ABI变化则可能导致运行时崩溃。API通常由开发者直接使用,而ABI则

2504_91948029的博客 2001

ABI与API

ABI与API ABI 应用程序二进制接口 以下引自维基百科 维基:应用二进制接口 在软件开发中,应用二进制接口(英语:application binary interface,缩写为ABI)是指两程序模块间的接口;通常其中一个程序模块会是库或操作系统所提供的服务,而另一边的模块则是用户所运行的程序。 一个ABI定义了机器代码如何访问数据结构与运算程序,此处所定义的界面相当低端并且相依于硬...

weixin_44395686的博客 618

30|ABI 与 API 究竟有什么区别?

今天,主要讲解了 API 与 ABI 这两个概念之间的区别。API 的全称为“应用程序编程接口”,它是程序员可以通过编程语言调用的一种特殊资源。API 通过隐藏功能的内部实现细节隔离了其使用方与提供方,使得 API 实现与应用程序实现可以通过遵循统一、稳定的 API 规范,来达到各自独立维护的目的。API 有着多种具体表现形式,比如源代码形式的函数,或是基于互联网的 Web 接口。

qq_37756660的博客 1511

ABI和API的区别

应用程序二进制接口(ABI-Application Binary Interface)定义了一组在PowerPC系统软件上编译应用程序所需要遵循的一套规则。主要包括基本数据类型,通用寄存器的使用,参数的传递规则,以及堆栈的使用等等。 ABI涵盖了各种细节:如数据类型、大小和对齐;调用约定(控制着函数的参数如何传送以及如何接受返回值);系统调用的编码和一个应用如何向操作系统进行系统调用;以及在

严总的博客 2670

API 和ABI的区别

应用程序二进制接口(ABI-Application Binary Interface)定义了一组在PowerPC系统软件上编译应用程序所需要遵循的一套规则。主要包括基本数据类型,通用寄存器的使用,参数的传递规则,以及堆栈的使用等等。 ABI涵盖了各种细节:如数据类型、大小和对齐;调用约定(控制着函数的参数如何传送以及如何接受返回值);系统调用的编码和一个应用如何向操作系统进行系统调用;以及在一个完整的操作系统ABI中,目标文件的二进制格式、程序库等等。一个完整的ABI,像Intel二进制兼容标准(iBC.

Mr.Sugarcane 801

android abi和api,API和ABI之间的区别

Linux共享库最小可运行API与ABI示例在共享库的上下文中,“具有稳定的ABI”最重要的含义是,在更改库后,您无需重新编译程序。如下面的示例所示,即使API不变,也可以修改ABI,破坏程序。main.c#include #include #include "mylib.h"int main(void) {mylib_mystrict *myobject = mylib_init(1);asse...

weixin_29102619的博客 263

现代C:ABI 与 API 究竟有什么区别?

今天,我主要为你讲解了 API 与 ABI 这两个概念之间的区别。API 的全称为“应用程序编程接口”,它是程序员可以通过编程语言调用的一种特殊资源。API 通过隐藏功能的内部实现细节隔离了其使用方与提供方,使得 API 实现与应用程序实现可以通过遵循统一、稳定的 API 规范,来达到各自独立维护的目的。API 有着多种具体表现形式,比如源代码形式的函数,或是基于互联网的 Web 接口。

一个时代的落幕,一个时代的开启。 378
上一篇: 如何提交Code到google open source android gerrit
下一篇: Apache Tomcat+OpenGrok 安装配置
AnnaLoad
博客等级 码龄17年 7粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值