云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 华科操作系统实验报告(DOC)

华科操作系统实验报告(DOC)

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 23:19:29

华 中 科 技 大 学 课 程 设 计 报 告

{

printk(\ }

sys_close(source); sys_close(dest); set_fs(fs); return 1; }

测试程序源代码

#include #include

int main(int argc ,char * argv[]) {

syscall(351,argv[1],argv[2]);

return 0; }

③ 实验过程与步骤

根据教程http://www.linuxidc.com/Linux/2013-06/85335.htm编译新的内核: 第一步:

(1)获取系统的版本号,使用命令uname -a, 获取版本号为3.13.0 (2)下载3.12.39的内核,解压到文件夹/usr/src中,解压命令:

xz –d linux-3.13.tar.xz tar –xvf linux-3.13.tar

(3)进入linux-3.13.0目录,清除残留的.config和.o文件,命令:

make mrproper

(4)安装ncurses-5.9:下载ncurses-5.9,按照安装linux-3.13的方法解压ncurses-5.9

华 中 科 技 大 学 课 程 设 计 报 告

到文件来/usr/src中,进入文件夹ncurses-5.9中配置环境: cd ncurses-5.9 ./configure make make install

(5)make menuconfig选择编译配置选项。 (6)确定依赖性:make dep (7)清理中间文件:make clean (8)生成新内核:make bzImage (9)生成modules:make modules (10)安装modules:make modules_install (11)安装内核 make install (12)重启选用新内核

第二步:添加自定义系统调用

(1) 添加系统调用函数,修改文件:/kernel/sys.c asmlinkage int sys_mycall(char* sourceFile,char* destFile) {

int source=sys_open(sourceFile,O_RDONLY,0);

int dest=sys_open(destFile,O_WRONLY|O_CREAT|O_TRUNC,0600); char buf[4096]; mm_segment_t fs; fs = get_fs(); set_fs(get_ds()); int i;

if(source>0 && dest>0) {

do {

i=sys_read(source,buf,4096);

华 中 科 技 大 学 课 程 设 计 报 告

sys_write(dest,buf,i); } while(i); } else {

printk(\ }

sys_close(source); sys_close(dest); set_fs(fs); return 1; }

(2)添加系统调用号,修改文件 /arch/x86/syscalls/syscall_64.tbl

351

common

mycall

sys_mycall

(3) 添加声明到头文件,修改文件,/include/asm-generic/syscalls.h

asmlinkage int sys_mycall(char* sourceFile,char* destFile)

(4)重新编译内核,只用第一步中的(8), (11),重启即可。 第三步:测试函数 代码: { }

int main(int argc, char * argv[])

syscall(351,argv[1],argv[2]); return 0;

华 中 科 技 大 学 课 程 设 计 报 告

三、 掌握增加设备驱动程序的方法。通过模块方法,增加一个新的设备驱动程序,其功能可以简单(实现字符设备的驱动)。

① 任务分析:linxu系统中,在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,它完成以下的功能:

1.对设备初始化和释放.

2.把数据从内核传送到硬件和从硬件读取数据.

3.读取应用程序传送给设备文件的数据和回送应用程序请求的数据. 4.检测和处理设备出现的错误.

Linux操作系统允许设备驱动程序作为可装载内核模块实现,这也就是说,设备的接口实现不仅可以在Linux 操作系统启动时进行注册,而且还可以在Linux 操作系统启动后装载模块时进行注册。总之,Linux操作系统支持多种设备。

② 设备驱动程序代码: #include \#include \#include \#include \#include \#include \#include \#include \#include \#define MAX_SIZE 20

static int my_open(struct inode *inode, struct file *file); static int my_release(struct inode *inode, struct file *file);

搜索更多关于: 华科操作系统实验报告(DOC) 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

华 中 科 技 大 学 课 程 设 计 报 告 { printk(\ } sys_close(source); sys_close(dest); set_fs(fs); return 1; } 测试程序源代码 #include #include int main(int argc ,char * argv[]) { syscall(351,argv[1],argv[2]); return 0; } ③ 实验过程与步骤 根据教程http://www.linuxidc.com/Linux/2013-06/85

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com