zoukankan      html  css  js  c++  java
  • Syscall,API,ABI

    • 系统调用(Syscall):Linux2.6之前是使用int0x80(中断)来实现系统调用的,在2.6之后的内核是使用sysentry/sysexit(32位机器)指令来实现的系统调用,这两条指令是CPU原生支持的是内核向上层库(是应用提供的接口)API的一个特例,也是从ring3到ring0的一种方式。
    • API(Application Programming Interface):程序编程接口。在我们使用一些库的时候,库提供的接口。如果两个模块提供相同的API,则这两个模块是源码兼容,但是API如何实现,可能不一样,但是API用户都能成功编译。
    • ABI(Application Binary Interface):二进制接口。它定义了应用程序内部如何交互,应用程序如何与内核交互,以及如何和库交互,保证了二进制兼容,对于同一个ABI,目标代码可以在任何系统上正常运行,而不需要重新编译。它关注的是函数调用约定,字节序,寄存器的使用,系统调用,链接,库的行为以及二进制目标的格式。ABI是操作系统和体系结构共同提供的功能。为一个体系结构定义一套ABI是比较困难的,二进制可移植比较困难的。
  • 相关阅读:
    (转)ASP连接sql server实例解析
    (转)ASP与sql存储过程
    将博客搬至CSDN
    详细解析Java中抽象类和接口的区别
    蔬菜销售策划
    医学学习
    mlecms v2.2版权
    网页打印设置
    silverlight RadGridView总结系列(转载)
    silverlight RadGridView总结二(转载)
  • 原文地址:https://www.cnblogs.com/echo1937/p/6259458.html
Copyright © 2011-2022 走看看