系统调用接口与应用编程接口

一 系统调用(System Call)接口

系统调用(System Call)接口是操作系统(OS)内核与上层应用进程(APP)进行交互通信的唯一接口如图


通过这个接口,用户可以访问OS内核空间,具体步骤:用户地址空间APP->系统调用->OS->OS内核->返回用户空间。用户APP通过直接或者间接(库函数)调用中断int0X80,并在eax寄存器中指定系统调用功能号,即可使用内核资源包括硬件资源。例如很多情况下,APP都是使用具有标准接口定义下的C函数库中的函数间接地使用内核的系统调用如:


二 应用编程接口(Application Programming Interface,API)

应用编程接口API是一些预定义的函数,跟内核没有必然联系,提供APP与开发人员基于软件或者硬件以便访问一组程序的能力,这种情况无需链接内部实现细节。

两者区别:

API是函数定义,与内核无关,而系统调用时通过中断向内核发出请求完成内核有的服务。一般而言,一个API可能需要一个或者多个系统调用来完成特定功能,这种需要跟内核通信的API就需要系统调用,反正不需要。程序员调用的是API,API再调用系统调用。总之,

API是一个提供给应用程序的接口,一组函数,是与程序员进行直接交互的。 系统调用则不与程序员进行交互的,它根据API函数,通过一个软中断机制向内核提交请求,以获取内核服务的接口。 并不是所有的API函数都一一对应一个系统调用,有时,一个API函数会需要几个系统调用来共同完成函数的功能,甚至还有一些API函数不需要调用相应的系统调用(因此它所完成的不是内核提供的服务)



  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值