0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

看看Linux中形形色色的接口

Linux阅码场 来源:未知 作者:胡薇 2018-10-04 09:19 次阅读

如果将内核比作一座工厂,那么Linux中众多的接口就是通往这个巨大工厂的高速公路。这条路要足够坚固,禁得起各种破坏(Robust)。要能跑得了运货的卡车,还要能升降飞机。(Compatible)。当然了这条路要越宽越好(Performant)。如下图所标,Linux中有四种类型的接口。位于内核和用户之间的API(应用程序接口)和ABI(应用二进制接口)。内核内部的API和ABI。下面我们逐条的来看看这些接口。

1.Linux API

内核-用户接口有内核系统调用和GNU C Library (glibc)的包装例程(wrap subroutines)构成。Linux API开发的目标是给POSIX标准提供一个相对兼容的,程序健壮性强的,高性能的实现,同时又实现一些Linux特有的标准。

1.1 Linux内核的系统调用接口

系统调用接口包含了内核中所有已经实现的和可使用的系统调用。

1.2 C标准库

标准库是对系统调用的封装,用于给用户提供一个简单易用的用户态接口。其中最为熟知的就是GNU C Library(glibc),还有为嵌入式和移动设备使用的uClibc。

1.3对POSIX的补充

还有一些接口是Linux特有的,比如:

Cgroup子系统,该子系统包含cgroup系统调用和libcgroup。

Futex,epoll,dnotify,inotify,Fanotify等系统调用。

2. Linux ABI

ABI是一系列约定的集合,例如GNU/Linux,FreeBSD约定函数调用的头六个整型参数放在寄存器RDI, RSI, RDX, RCX, R8和R9上;同时XMM0到XMM7用来放置浮点变元。对于系统调用,R10用来替代RCX。其他额外的参数推入栈,返回值保存在RAX中。[1] 可以说调用惯例(calling convention)就是ABI。因此,ABI是和具体CPU架构和OS相关的。

具体而言,ABI包含以下内容:[3]

1. 一个特定的处理器指令集

2. 函数调用惯例

3. 系统调用方式

4. 可执行文件的格式(ELF,PE)

那么,究竟我们为什么要纠结于ABI这个概念呢?答案是为了兼容,只要OS遵守相同的ABI规范,那么不同的应用就可以实现向前兼容,再也不用担心版本升级后,旧版本的应用不能运行了。

3. In-kernel API

内核API主要是内核中标记为 “EXPORT_SYMBOL”的函数。这些函数主要是为了内核模块的编写而提供的。收到内核版本迭代的影响,内核API并不稳定。2.x版本内核的模块可能在3.x版本上就无法使用。

4. In-Kernel ABI

内核的abi和linux abi的定义类似,再次不再赘述。

5. Abstraction ABI

在某些情况下,内核过于底层,开发者需要更高一层的抽象。于是出现了类似Mesa 3D的为图形驱动开发而生的API。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11292

    浏览量

    209331
  • API
    API
    +关注

    关注

    2

    文章

    1499

    浏览量

    61964

原文标题:黄东升: Linux中形形色色的接口API和ABI

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    浅谈Linux内核形形色色的“钟表”

    既然本文讲Linux的计时工具,那么我们首先面对的就是“什么是时间?”,这个问题实在是太难回答了,因此我们这里就不正面回答了,我们只是从几个侧面来窥探时间的特性,而时间的本质就留给物理学家和哲学家思考吧。
    发表于 09-18 16:08 842次阅读
    浅谈<b class='flag-5'>Linux</b>内核<b class='flag-5'>中</b>的<b class='flag-5'>形形色色</b>的“钟表”

    如何利用废旧手机芯片编程

    不知道大家有没有共同的想法,工作至今,抽屉里面形形色色的手机都是换下来的产品,我们可不可以把各种cpu取下来,对其进行编程学习呢?需要找各种芯片的资料
    发表于 08-16 20:11

    形形色色的 USB 连接器,你分得清吗?

    你能分清形形色色的 USB 连接器型号吗,说能的算你牛逼,但你能记住不同类型 USB连接器的引脚定义吗,请说不能,否则小编这篇文章就白整理了。由于型号太多,在这里只是整理了几种常见的 USB 连接器
    发表于 05-16 10:00

    画PCB过程应该注意哪些细节?

    布线是PCB设计过程中技巧最细、限定最高的,即使布了十几年布线的工程师也往往觉得自己不会布线,因为看到了形形色色的问题,知道了这根线布了出去就会导致什么恶果,所以,就变的不知道怎么布了。但是高手还是有的,他们有着很理性的知识,同时又带着一些自我创作的情感去布线,布出来的线就颇为美观有艺术感。
    发表于 02-24 06:53

    [组图]形形色色的J型天线

    型天线的特点:J型天线又叫波兰人天线,其特点是辐射仰角低且有一定的增益,效率是1/4 GP天线的
    发表于 04-15 21:07 4360次阅读

    SMT环境的最新复杂技术

       只要关注一下如今在各地举办的形形色色的专业会议的主题,我们就不难
    发表于 04-16 20:50 401次阅读

    电容器的基础知识

    第1讲:电容的特性(隔直通交)形形色色的电容:
    发表于 04-16 23:47 4535次阅读

    音箱选购基础知识问与答

    ●音箱由哪几部分组成?     市面上的音箱形形色色,但无论哪
    发表于 04-17 23:41 440次阅读

    形形色色的光电器件

    形形色色的光电器件
    发表于 06-30 19:30 752次阅读

    关于变电站,你知道多少?

    行走在城市的大街小巷,我们经常能够看到形形色色的变电站,你对它又知道多少呢?
    发表于 07-09 10:30 7405次阅读

    盘点六大常见通讯接口,拿捏不定就选他们吧

    在互联网时代,设备与设备之间的互连通讯、组网是在正常不过的事情了,而在形形色色接口中,什么场合下如何选择通讯接口才能使通讯更为便捷呢?本文将给出解答。
    发表于 06-23 15:32 139次下载

    浅析Linux操作系统备份恢复技术的应用

    都不可能保证绝对的安全。只要有网络存在,就会有来自网络的形形色色的威胁。为了抵御网络的攻击和入侵,虽然我们引入了日趋成熟的入侵检测系统、防火墙系统等,黑客们的入侵手段也日益高明,他们总能找到这些系统的安全漏洞及不足
    发表于 11-07 10:18 0次下载

    Molex全套现成电缆解决方案

    Molex 提供全套的电缆解决方案,供应多种连接器与形形色色长度的配置,可以同时促进原型的开发以及全球化的生产。
    发表于 07-12 10:55 1263次阅读

    区块链将会如何改变各行各业

    比起形形色色的各类虚拟货币,区块链技术的潜力更大,应用范围更广,商业潜力也是目前这些代币所无法比拟的。
    发表于 07-09 14:34 545次阅读
    区块链将会如何改变各行各业

    机器人各显其能 助力抗击疫情

    今年这场突如其来的战“疫”,一群特殊的战士格外引人瞩目。它们就是形形色色的机器人。
    发表于 03-06 08:49 1131次阅读