首页
学习
活动
专区
工具
TVP
发布

Linux中形形色色的接口API和ABI

如下图所标,Linux中有四种类型的接口。位于内核和用户之间的API(应用程序接口)和ABI(应用二进制接口)。内核内部的API和ABI。下面我们逐条的来看看这些接口。 ?...Linux API开发的目标是给POSIX标准提供一个相对兼容的,程序健壮性强的,高性能的实现,同时又实现一些Linux特有的标准。 ?...Linux ABI ABI是一系列约定的集合,例如GNU/Linux,FreeBSD约定函数调用的头六个整型参数放在寄存器RDI, RSI, RDX, RCX, R8和R9上;同时XMM0到XMM7用来放置浮点变元...In-Kernel ABI 内核的abilinux abi的定义类似,再次不再赘述。 5. Abstraction ABI 在某些情况下,内核过于底层,开发者需要更高一层的抽象。...参考 [1] https://en.wikipedia.org/wiki/Linux_kernel_interfaces 所有图的来源 [2] https://abi-laboratory.pro/index.php

3.8K41

Android CPU ABI

ABI 简述 不同 Android 手机使用不同的 CPU,因此支持不同的指令集。CPU 与指令集的每种组合都有其自己的应用二进制界面(或 ABI)。...ABI 可以非常精确地定义应用的机器代码在运行时如何与系统交互。 您必须为应用要使用的每个 CPU 架构指定 ABI。 典型的 ABI 包含以下信息: 机器代码应使用的 CPU 指令集。...架构,其它没有被声明的 ABI 所对应的 .so 等库就不会被打包进 APK 中。...查看 CPU ABI 通常我们可以通过如下方式查看 CPU 支持的 ABI 架构: 通过 adb 命令查看 1.连接手机到电脑上 2.打开 cmd 命令窗口,输入命令 adb shell 3.然后输入命令...cat /proc/cpuinfo 通过代码获取 textView.setText("ABI:"+Build.CPU_ABI); 参考 ABI 管理

1.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

再谈无ABI函数调用

auok007[1] 发了在没有 abi 文件的情况下调用智能合约方法,web3py 实现 [2]之后,联系我的朋友不少,看来对这块有需求的朋友不少,在和他们交流的过程中,我发现不少人对这块还有一些误区...一些问题 1、调用合约函数,需要合约完整的 abi 吗? 不需要,只需要调用函数的函数定义 2、调用别人的合约需要什么?...目前 python 的已经实现,参考我前面的文章在没有 abi 文件的情况下调用智能合约方法,web3py 实现 | 登链社区 | 深入浅出区块链技术 (learnblockchain.cn)[3]node...ether.js 已经实现,放在登链集市ether.js 无 abi 调用合约函数,关键代码 - 作品详情 - 登链社区 (learnblockchain.cn)[4] 请能用到觉得有点用的朋友支持,...一个演示 部署 Greeter2 合约,用 Greeter 的 abi 进行调用,测试代码中有注释。

91410

黄东升: Linux中形形色色的接口API和ABI

如下图所标,Linux中有四种类型的接口。位于内核和用户之间的API(应用程序接口)和ABI(应用二进制接口)。内核内部的API和ABI。下面我们逐条的来看看这些接口。 ?...Linux API开发的目标是给POSIX标准提供一个相对兼容的,程序健壮性强的,高性能的实现,同时又实现一些Linux特有的标准。 ?...Linux ABI ABI是一系列约定的集合,例如GNU/Linux,FreeBSD约定函数调用的头六个整型参数放在寄存器RDI, RSI, RDX, RCX, R8和R9上;同时XMM0到XMM7用来放置浮点变元...In-Kernel ABI 内核的abilinux abi的定义类似,再次不再赘述。 5. Abstraction ABI 在某些情况下,内核过于底层,开发者需要更高一层的抽象。...参考 [1] https://en.wikipedia.org/wiki/Linux_kernel_interfaces 所有图的来源 [2] https://abi-laboratory.pro/index.php

1.1K20

ABI 与 API 的区别

文章目录 1.ABI 简介 2.API 简介 3.ABI 与 API 的区别 参考文献 1.ABI 简介 C++ 可执行文件是由编译器将源代码编译成目标文件后链接生成的,那么如果目标文件由不同的编译器编译生成...影响 ABI 的因素非常多,硬件、编程语言、编译器、链接器、操作系统等都会影响 ABI。我们以 C 语言为例,来看编程语言是如何影响 ABI 的。...以上只是部分因素会影响到ABI,其它的不再一一列举。到了 C++,语言层面对 ABI 的影响又增加了许多额外的内容,可见,这些内容使得 C++ 做到二进制兼容比C更加困难。...3.ABI 与 API 的区别 通过上面的介绍,可以知道 ABI 和 API 是两种完全不同的东西。二者的区别可总结概括为如下几点: 描述的内容不同。...ABI描述二进制层面的接口,API描述代码级层面的接口; 兼容的难度不同。ABI的兼容程度比API更为严格,即ABI实现兼容更加困难。

1.4K20

以太坊合约 ABI 和 EVM 字节码

本文作者:影无双[1] 本文从理论和命令行实践解释以太坊合约 ABI 和 EVM 字节码 介绍 本文解释以太坊中的合约 ABI[2] 和 EVM[3] 字节码。...你将了解到 了解合约 ABI 和 EVM 字节码是什么,以及它们的关系。 如何使用solc命令行生成合约 ABI 和 EVM 字节码 不包括: 合约 ABI 规范的详细信息(编码/解码)。...在以太坊中,合约 ABI 是一个接口,它定义了如何调用智能合约中的函数并取回数据的标准方案。合约 ABI 为外部使用而设计,实现应用程序到合约和合约到合约的交互。...关于如何编码和解码合约 ABI 有一个明确的规范。...如果您想了解 ABI 编码/解码规范的详细信息,请参阅合约 ABI 规范[5]。 实际上,与合约交互,你可以像下面这样使用 web3.js。

1.3K20

理解以太坊ABI - 应用程序二进制接口

ABI 是什么 ABI 全称是 Application Binary Interface,翻译过来就是:应用程序二进制接口,简单来说就是 以太坊的调用合约时的接口说明。还不是很理解,没关系。...这个数据就是ABI的编码数据: 0x60fe47b10000000000000000000000000000000000000000000000000000000000000001 ABI 编码分析...ABI 编码函数 那么怎么获得函数对应的ABI 数据呢, 有两种方法: Solidity ABI 编码函数 一个是 solidity 提供了ABI的相关API, 用来直接得到ABI编码信息,这些函数有:...abi.encode(…) returns (bytes):计算参数的ABI编码。...bytes): 计算函数选择器和参数的ABI编码 abi.encodeWithSignature(string signature, …) returns (bytes): 等价于* abi.encodeWithSelector

1.2K20
领券