linux系统调用实验报告.pdf

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

竭诚为您提供优质文档/双击可除

linux系统调用实验报告

篇一:linux系统调用实验报告

西安邮电大学

(计算机学院)

课内实验报告

实验名称:系统调用

专业名称:软件工程

班级:软件

学生姓名:学号(8指导教师:xxxxx

实验日期:20XX年5月31日

一.实验目的及实验环境

实验目的:

1)了解系统调用,学习系统调用函数的使用;

2)理解调用系统调用与直接调用内核函数的区别;

实验环境:ubuntu

115

二.实验内容

1)对比调用系统调用和直接调用内核函数的区别;

2)跟踪系统调用的执行;

三.实验原理

1)系统调用

系统调用,顾名思义,说的是操作系统提供给用户程序

调用的一组“特殊”接口。用户程序可以通过这组“特殊”

接口来获得操作系统内核提供的服务,比如用户可以通过文

件系统相关的调用请求系统打开文件、关闭文件或读写文件,

可以通过时钟相关的系统调用获得系统时间或设置定时器

等。

从逻辑上来说,系统调用可被看成是一个内核与用户空

间程序交互的接口——它好比一个中间人,把用户进程的请

求传达给内核,待内核把请求处理完毕后再将处理结果送回

给用户空间。

总的概括来讲,系统调用在系统中的主要用途无非以下

几类:

?控制硬件——系统调用往往作为硬件资源和用户空间

的抽象接口,比

如读写文件时用到的write/read调用。

?设置系统状态或读取内核数据——因为系统调用是用

户空间和内核的

215

唯一通讯手段[2]所以用户设置系统状态,比如开/关某

项内核服务

(设

置某个内核变量),或读取内核数据都必须通过系统调

用。比如getpgid、getpriority、setpriority、sethostname

?进程管理——一系统调用接口是用来保证系统中进程

能以多任务在虚

拟内存环境下得以运行。比如fork、clone、execve、

exit等

第二,什么服务应该存在于内核;或者说什么功能应该

实现在内核而不是在用户空间。这个问题并没有明确的答案,

有些服务你可以选择在内核完成,也可以在用户空间完成。

选择在内核完成通常基于以下考虑:

?服务必须获得内核数据,比如一些服务必须获得中断

或系统时间等内

核数据。

?从安全角度考虑,在内核中提供的服务相比用户空间

提供的毫无疑问

更安全,很难被非法访问到。

?从效率考虑,在内核实现服务避免了和用户空间来回

传递数据以及保

护现场等步骤,因此效率往往要比在用户空间实现高许

315

多。比如,httpd等服务。

?如果内核和用户空间都需要使用该服务,那么最好实

现在内核空间,

比如随机数产生。

2)KDb使用

将其编译成名为getpid的执行文件“gcc–

ogetpid/getpid.c”,使用KDb来产看它进入内核后的执行

路径。

1、激活KDb(按下pause键,当然你必须已经给内核打

了KDb补丁);设置内核断点“bpsys_getpid”;退出kdb“go”;

然后执行./getpid。瞬间,进入内核调试状态,执行路径停

止在断点sys_getpid处。

2、在KDb提示符下,执行bt命令观察堆栈,发现调用

的嵌套路径,可以看到在sy

您可能关注的文档

文档评论(0)

各类考试卷精编 + 关注
官方认证
内容提供者

各类考试卷、真题卷

认证主体社旗县兴中文具店(个体工商户)
IP属地河南
统一社会信用代码/组织机构代码
92411327MAD627N96D

1亿VIP精品文档

相关文档