操作系统课程设计实验报告.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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 代码

文档评论(0)

zxiangd + 关注
实名认证
内容提供者

本人从事教育还有多年,在这和大家互相交流学习

1亿VIP精品文档

相关文档