armlinux平台调用说明三、内核函数和系统调用、用户编程接口(AP
来源: 网络用户发布,如有版权联系网管删除 2016-07-01
armlinux平台调用说明三、内核函数和系统调用、用户编程接口(API)、系统命令的关系 1.系统调用并非直接和程序员或系统管理员打交道,它仅仅是一个通过软中断机制向内核提交请求、获取内核服务的接口。而在实际使用中程序员调用的多是用户编程接口——api,而管理员使用的则多是系统命令。
2.用户编程接口(API)其实是一个函数定义,说明了如何获得一个给定的服务,比如read()、malloc()、free()、abs()等。
它有可能和系统调用形式一致,比如read()接口就和read系统调用一一对应;
往往会出现几种不同的API内部用到同一个系统调用,比如malloc()、free()内部利用brk()系统调用来扩大或缩小进程的堆;
或一个API利用了好几个系统调用组合来完成任务;
更有些API甚至不需要任何系统调用,因为它不需要内核服务、如计算整数绝对值的abs()接口。
Linux系统中这些API主要是通过C库(libc)实现的;它除了定义的一些标准的C函数外,一个重要的任务是提供了一套封装例程、将系统调用在用户空间包装后供用户编程使用。
说明:上述封装并非必须;如果你愿意直接调用,Linux提供了一个syscall()的系统调用函数来实现调用。
3.系统命令相对编程接口更高了一层,它是内部引用API的可执行程序,比如我们常用的系统命令ls、hostname等。
查看评论 回复