java abi生成工具

阅读: 评论:0

java abi生成工具

java abi生成工具

.htm

《Linux系统编程(第2版)》第1章入门和基本概念,这一章着眼于Linux系统编程的基础概念并从程序员视角探索Linux系统。本节为大家介绍ABI。

1.2.2  ABI

API定义了源码接口,而ABI定义了两个软件模块在特定体系结构上的二进制接口。它定义了应用内部如何交互,应用如何与内核交互,以及如何和库交互。API保证了源码兼容,而ABI保证了“二进制兼容(binary compatibility)”,确保对于同一个ABI,目标代码可以在任何系统上正常工作,而不需要重新编译。

ABI主要关注调用约定、字节序、寄存器使用、系统调用、链接、库的行为以及二进制目标格式。例如,调用约定定义了函数如何调用,参数如何传递,分别保留和使用哪些寄存器,调用方如何获取返回值。

尽管曾经在不同操作系统上为特定的体系结构定义一套唯一的ABI,做了很多努力,但是收效甚微。相反地,操作系统(包括Linux)往往会各自定义自己独立的ABI,这些ABI和体系结构紧密关联,绝大部分ABI表示了机器级概念,比如特定的寄存器或汇编指令。因此,在Linux,每个计算机体系结构都定义了自己的ABI。实际上,我们往往通过机器体系结构名称来称呼这些ABI,如Alpha或x86-64。因此,ABI是操作系统(如Linux)和体系结构(如x86-64)共同提供的功能。

系统编程需要有ABI意识,但通常没有必要记住它。ABI并没有提供显式接口,而是通过工具链(toolchain),如编译器、链接器等来实现。尽管如此,了解ABI可以帮助你写出更优化的代码,而如果你的工作就是编写汇编代码或开发工具链(也属于系统编程范畴),了解ABI就是必需的。

ABI是由内核和工具链定义和实现的。

本文发布于:2024-01-28 03:42:38,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063845644530.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:工具   java   abi
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23