标签:
系统调用在用户空间进程和硬件设备之间添加了一个中间层,该层主要作用有三个:
在Linux中,系统调用是用户空间访问。内核的唯一手段;除异常和陷入外,它们是内核唯一的合法入口。
本章重点强调Linux系统调用的规则和实现方法。
首先,注意函数声明中的asmlinkage限定词,这是一个编译指令,通知编译器仅从栈中提取该函数的参数。所有的系统调用都需要这个限定词。
其次函数返回long。为了保证32位和64位系统的兼容,系统调用在用户空间和内核空间有不同的返回值类型,在用户空间为int在内核空间为long。
最后,注意系统调用get_pid()中的在内核中被定义成sys_getpid()。这是Linux中所有系统调用都应该遵守的命名规则,系统调用bar()在内核中也实现为sys_bar()函数。
实验过程:
1、库函数API使用系统调用
2、C代码中嵌入汇编代码使用系统调用
3、实验结果
标签:
原文地址:http://www.cnblogs.com/hw00332012/p/5299027.html