10 添加syscall打印所有进程.docxVIP

  • 25
  • 0
  • 约5.63千字
  • 约 8页
  • 2021-01-18 发布于安徽
  • 举报
实验10 添加syscall打印所有进程 1实验目的 掌握用户程序如何利用系统调用与操作系统内核实现通信的方法,加深对系统调用机制的理解。 2实验内容 本次实验主要是修改linux内核增加一个系统调用,打印出所有的进程信息,包括系统函数的实现、系统调用表、系统调用入口的修改,对新的内核编译安装,调试新的系统调用。 3实验原理 3.1 系统调用 系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定时器等。 从逻辑上来说,系统调用可被看成是一个内核与用户态程序交互的接口——它好比一个中间人,把用户进程的请求传达给内核,待内核把请求处理完毕后再将处理结果送回给用户态。 系统服务之所以需要通过系统调用来提供给用户态的根本原因是为了对系统进行“保护”,因为我们知道Linux的运行空间分为内核态与用户态,它们各自运行在不同的级别中,逻辑上相互隔离。所以用户进程在通常情况下不允许访问内核数据,也无法使用内核函数,它们只能在用户态操作用户数据,调用用户态函数。比如我们熟悉的“hello world”程序(执行时)就是标准的用户态进程,它使用的打印函数printf就属于用户态函数,打印的字符“hell

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档