应用程序、API、系统调用、内核、内核模块、驱动程序、设备的关系

引言

最近想给开发板做Linux内核移植,一进来发现水很深,有很多东西可以研究,在边移植边学习的过程中很多概念之间的关系一直有点迷糊,干脆就停一下把这块的东西学一下再出发。

这里的关系总结都是本着每一层之间的联系来的,概念的概括也都是以与下一级概念关联为目的来概括的所以不是很权威,仅供参考,以理清思路为使用目的

应用程序

程序员调用API或者库函数编写新的程序实现目标功能构成应用程序

API

API(用户编程接口)操作系统供给用户方便设计应用程序的函数,是一个提供给应用程序的接口,是与程序员进行直接交互的一组函数,它与库函数的区别是库函数是一门编程语言本身支持的一些基本函数
由于在linux中,将程序的运行空间分为内核和用户空间(内核态和用户态);逻辑上它们相互隔离,因此应用程序不能访问内核数据,也无法调用内核函数,所以用户使用系统提供的API在用户空间编写的程序要想运行,必须得用到系统调用,由API和系统调用共同完成用户态和内核态的数据访问

系统调用

操作系统提供给用户程序调用的一组“特殊”

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值