操作系统上机实验报告Word文档格式.docx

上传人:b****5 文档编号:17912196 上传时间:2022-12-12 格式:DOCX 页数:8 大小:659.38KB
下载 相关 举报
操作系统上机实验报告Word文档格式.docx_第1页
第1页 / 共8页
操作系统上机实验报告Word文档格式.docx_第2页
第2页 / 共8页
操作系统上机实验报告Word文档格式.docx_第3页
第3页 / 共8页
操作系统上机实验报告Word文档格式.docx_第4页
第4页 / 共8页
操作系统上机实验报告Word文档格式.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

操作系统上机实验报告Word文档格式.docx

《操作系统上机实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《操作系统上机实验报告Word文档格式.docx(8页珍藏版)》请在冰豆网上搜索。

操作系统上机实验报告Word文档格式.docx

实验2内核模块................................6

实验3Proc文件系统............................7

实验4设备驱动.................................9

实验编号

1

题目

系统调用

实验目的

(1)了解为什么要进行系统调用

(2)了解系统提供借口的目的

(3)添加系统调用

实验内容

为Linux内核增加一个系统调用,并编写用户进程的程序来测试。

要求该系统调用能够完成以下功能:

(1).该系统调用有1个整型参数,接收输入自己的学号;

(2).若参数为奇数,则返回自己学号的最后5位。

如您的学号为13051007,则返回51007;

(3).若参数为偶数,则返回自己的学号的最后4位。

如您的学号为13051004,则返回1004。

报告正文

1.实验设计

1)第一步:

解压缩内核源码包linux-2.6.32.60.tar.bz2到目录/usr/src下

解压缩命令tarxvflinux-2.6.32.60.tar.bz2/usr/src

解压缩后在/usr/src中多了一个linux-2.6.32.60的文件夹,之后的修改源码的工作都是在这个文件夹中进行。

2)第二步:

修改系统调用表文件

linux-2.6.32.60/arch/x86/kernel/syscall_table_32.S

在文件中最后一组.long代码后添加一行

.longsys_mycall

3)第三步:

修改系统调用号文件,增加自己函数的系统调用号,并将系统总调用号增加。

linux-2.6.32.60/arch/x86/include/asm/unistd_32.h

在文件最后增加系统调用

#define__NR_mycall337//自己函数的调用号

同时修改系统调用函数总数,这是可以调用的编号上限

#defineNR_syscalls338

4)第四步:

增加系统调用声明,修改文件

linux-2.6.32.60/include/linux/syscalls.h

在文件后添加代码

5)第五步:

添加系统调用函数的实现,修改文件

linux-2.6.32.60/kernel/sys.c

6)第六步:

内核编译

运行结果如下:

dmesg命令查看printk()输出:

2

内核模块

(1)理解linux内核模块优缺点及简单原理

(2)了解内核模块的相关作用

(3)熟悉内核模块的几个步骤

(4)编译内核模块

题目一

编写一个内核模块;

编译该模块;

加载、卸载该模块;

题目二

用内核模块的方式为系统添加一个系统调用

具体要求同专题一

题目一:

编写相应的hello.c文件以及Makefile文件,编译

加载该模块:

卸载该内核模块:

查看内核模块运行结果:

编写相应的系统调用程序

make

3

Proc文件系统

(1)理解proc文件系统的作用

(2)了解proc文件系统中的重要部分文件

(3)了解proc文件系统与内核模块的交互

(1)编写一个程序,用来读取和修改内核参数(任意参数即可,不涉及到内核编程,只需要使用标准C库中的函数)。

(2)在/proc目录下用自己的学号创建一个目录,如/proc/13101201。

然后在学号目录下创建两个文件,一个用自己的姓作为文件名,如/proc/13101201/zhang,此文件是只读的,用于显示当前进程的PID信息;

另一个文件用自己的名字作为文件名,如/proc/13101201/xiaoming,此文件是可读写的。

(1)如下采用modify.c读取和修改内核参数

题目二:

如下,对以我的学号命名的文件进行读和写

4

设备驱动

(1)了解Linux设备驱动

(2)熟悉常见的Linux驱动例子

(3)设计设备驱动程序,使之完成相应的功能

完善例子中的字符设备程序,使之满足以下功能:

安装设备后从设备中读出字符串为你的学号;

设备支持每次写入字符不超过1024个,超过部分被丢弃;

用户可以读出最近写入到设备中的字符;

设备关闭前不能被多次打开;

设备支持系统调用ioctl(intd,intreq,…)

req=0x909090,清除设备中写入的字符串;

完成相应的设备驱动程序及Makefile文件的编写后,make:

我的设计是,编写三个小程序write:

写入信息;

read:

读信息;

clean:

清除信息则如下:

用write写入学号,read读出学号,clean清除信息后。

Read再读信息为空

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 职业规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1