linux0.11系统调用原理与实验总结.docxVIP

  • 47
  • 0
  • 约8.39千字
  • 约 11页
  • 2018-09-20 发布于湖北
  • 举报
Linux0.11系统调用原理及实验总结 系统调用的原理 概述 系统调用是一个软中断,中断号是0x80,它是上层应用程序与Linux系统内核进行交互通信的唯一接口。通过int 0x80,就可使用内核资源。不过,通常应用程序都是使用具有标准接口定义的C函数库间接的使用内核的系统调用,即应用程序调用C函数库中的函数,C函数库中再通过int 0x80进行系统调用。 ?所以,系统调用过程是这样的: ?应用程序调用libc中的函数-libc中的函数引用系统调用宏-系统调用宏中使用int 0x80完成系统调用并返回。 另外一种访问内核的方式是直接添加一个系统调用,供自己的应用程序使用,这样就不再使用库函数了,变得更为直接,效率也会更高。 相关的数据结构 ??在说具体的调用过程之前,这里先要说几个数据结构。 ???系统调用函数表 ?系统调用函数表sys_call_table是在sys.h中定义的,它是一个函数指针数组,每个元素是一个函数指针,它的值是各个系统提供的供上层调用的系统函数的入口地址。也就是说通过查询这个表就可以调用软中断0x80所有的系统函数处理函数。 ???函数指针偏移宏 ?这是一系列宏,它们的定义在unistd.h中,基本形式为#define _NR_name value,name为系统函数名字,value是一个整数值,是name所对应的系统函数指针在sys_c

文档评论(0)

1亿VIP精品文档

相关文档