- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WORD 格式 整理
学习 参考 资料 分享
操作系统课程设计
实验报告册
班级:
学号:
姓名:
教师:
实验说明
实验做为学习的重要促进手段,是为了深化对理论的理解,锻炼实践动手能力。
实验同时也作为考核的手段。
实验内容会在课程进行中下达,并且会分次地、部分地被抽查。
课程结束时,要求把所有的实验整理成一个完整的电子文档并上交,做为最后成绩的评定依据。
如果有兴趣的合适的题目,也可自己选题目。
格式说明
本文档文件名命名为“学号-姓名”,如小王”。
留白部分不足的自己调整长度,也可加页(增加内容应在表格内)。
每次的实验报告都要在这个文件中(按照实验次序依次)增加,而不是每次一个新的word文件。
本文档保存为doc格式( 请勿用Word2007的docx格式)。
重要提示:
实验正文建议使用小四号或五号宋体。
若附加图形,则请直接嵌入到实验手册相应位置。
各实验的源程序,请按实验分目录存放,如第一个实验的源程序存放在目录lab1下,第二个实验的源程序存放在目录lab2下等等,依次类推。
可互相讨论,但严禁抄袭网络或同学的实验结果。
实验编号
4
题目
系统调用
实验目的
了解系统调用
学习添加系统调用。
实验内容
为Linux内核增加一个系统调用,并编写用户进程的程序来测试。要求该系统调用能够完成以下功能:(1). 该系统调用有1个整型参数,接收输入自己的学号;(2). 若参数为奇数,则返回自己学号的最后5位。如您的学号则返回51007;(3). 若参数为偶数,则返回自己的学号的最后4位。如您的学号则返回1004。
报告内容要求
(1) 实现方法和思路
(2) 测试及结果
报 告 正 文
1.第一步:
解压缩内核源码包linux-2.6.32.60.tar.bz2到目录/usr/src下
解压缩命令tar xvf linux-2.6.32.60.tar.bz2 /usr/src
解压缩后在/usr/src中多了一个linux-2.6.32.60的文件夹,之后的修改源码的工作都是在这个文件夹中进行。
第二步:
修改系统调用表文件
linux-2.6.32.60/arch/x86/kernel/syscall_table_32.S
在文件中最后一组.long代码后添加一行
.long sys_mycall
第三步:
修改系统调用号文件,增加自己函数的系统调用号,并将系统总调用号增加。
linux-2.6.32.60/arch/x86/include/asm/unistd_32.h
在文件最后增加系统调用
#define __NR_mycall 337 //自己函数的调用号
同时修改系统调用函数总数,这是可以调用的编号上限
#define NR_syscalls 338
注意:系统调用号不是随意添加,一定是按顺序排列是第几个就是第几个编号,例如原有336个系统调用,新添加的必须放在最下边的第337的位置,不能改成其他位置,编号是337.
第四步:
增加系统调用声明,修改文件
linux-2.6.32.60/include/linux/syscalls.h
在文件后添加代码
asmlinkage long sys_mycall(int num);//我这里测试用的系统调用函数只用了一个int型参数,并返回一个long型值,这条语句是你自己的函数的完整声明,有几个参数写几个参数。
第五步:
添加系统调用函数的实现,修改文件
linux-2.6.32.60/kernel/sys.c
在文件后添加代码,必须和第四步的声明完全对应
printk()的输出可以在终端中用dmesg命令查看
asmlinkage long sys_mycall(int num)
第六步:内核编译
按照第二次课的PPT重新编译内核,用新编译的内核作为启动项。
第七步:打开终端编写测试代码,代码中调用你自己写的系统函数,编译运行查看运行结果是否调用成功。
也可以用dmesg命令查看进程的printk()函数的输出。
调用方式:syscall(系统调用号,参数列表);
创建一个.c的源文件,写入测试代码。
测试
实验编号
5
题目
内核模块
实验目的
学会使用与创建内核模块
实验内容
题目一
编写一个内核模块;
编译该模块;
加载、卸载该模块;
题目二
用内核模块的方式为系统添加一个系统调用
具体要求同专题一
报告内容要求
(1) 实现方法和思路
(2) 测试及结果
报 告 正 文
内核模块
编写内核模块
准备 代码和makefile
代码
您可能关注的文档
最近下载
- 内蒙古版综合实践活动五年级下册第三课 今天我是小交警 课件.ppt
- 道德与法治四年级上册第一单元 与班级共成长 大单元整体学历案教案 教学设计附作业设计(基于新课标教学评一致性).docx
- 公安寄递物流业治安管理.pptx VIP
- 2024年苏科版九年级数学下册第六章《相似图形》课件.ppt VIP
- 故事——小羊过桥.ppt
- 自动售货机plc控制系统设计.doc
- 股先知周线指标公式通达信版(1).docx VIP
- 选择结构程序设计-C语言程序试验报告.pdf
- 以廉洁风险防控为核心的“三不腐”机制应用-来源:现代企业文化(第2020010期)-中国工人出版社.pdf VIP
- 疯狂星期二_13610597.pdf
文档评论(0)