操作系统-系统调用实验报告

操作系统-系统调用实验报告

ID:33882739

大小:82.71 KB

页数:7页

时间:2019-03-01

操作系统-系统调用实验报告_第1页
操作系统-系统调用实验报告_第2页
操作系统-系统调用实验报告_第3页
操作系统-系统调用实验报告_第4页
操作系统-系统调用实验报告_第5页
资源描述:

《操作系统-系统调用实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、操作系统实验报告题目:实验5系统调用学院:教师:姓名:学号:班级:1•实验目的学习如何产生一个系统调用,以及怎样通过往内核中增加一个新函数,从而在内核空间中实现对用户空间的读/写。学习重建内核。2实验内容(1)设计并实现一个新的系统调用pedagogictime0,该函数通过使用一个引用参数的调用返回当前的系统时间。(2)编写一个用户空间程序来测试pedagogictime()。3.实验环境系统版本:Ubuntu14.04LTS内核版本:Linux3.2.0.29-generic欲编译内核:IJnux-2.6.32.604.实验步骤(

2、过程)Stepl:解压内核:内核文件在文件目录Documents下,将压缩包解压到/usr/src/目录下。(1)oslinux@oslinux-virtual-machine:~$cdDocuments//进入Documents目录下(2)os1inux@os1inux-virtual-machine:~/Documents$sudocplinux-2.6.32.60.tar.bz2/usr/src/〃将压缩包拷贝到/usr/src/目录下(2)oslinux@oslinux-virtual-machinc:~/Documcnts$

3、cd/usr/src///进入/usr/src/目录下(4)oslinux@oslinux-virtual-machine:/usr/src$sudotar-jxvf1inux-2.6.32.60.tar.bz2//解压压缩包Step2:添加系统调用:(1)编写系统调用服务例程编写加到内核中的源程序,即将要加到一个内核文件中去的一个函数,该函数的名称应该是新的系统调用名称前面加上sy.s_标志。在/usr/src/1inux-2.6.32.60/kernel/sys.c文件屮添加源代码。//用编辑器打开sys.c文件添加系统调用ped

4、agogictime的代码oslinux@oslinux-virtual-machinesudogedit/usr/src/1inux-2.6.32.60/kerne1/sys.c//添加到sys.c的最后一行,代码如下:asmlinkagelongsvspedagogictime(structtimeval*tv){~if(1ikely(tv)){structtimevalktv;dogcttimcofday(&ktv);if(copytouser(tv,&ktv,sizeof(ktv)))return-EFAULT;}return

5、0;}(1)添加系统调用号为了从已有的内核程序中增加到新的函数的连接,需要编辑两个文件:4/usr/src/linux-2・6.32.60/arch/x86/include/asm/unistd_32.h中增加新的系统调用号同时还要将宏变量NR_syscalls的值加1;oslinux@oslinux-virtual-machine:~$sudogedit/usr/src/1inux-2.6.32.60/arch/x86/include/asm/unistd_32.h添加下列代码至文件中336337再define_NR_perf_ev

6、ent_open#deftne―NR_pedagogtcttme^defineNR_syscalls338(2)修改系统调用表在/usr/src/1inux-2・6.32.60/arch/x86/kernel/syscall_table_32・S中增加新的内核函数的指针。——oslinux@oslinux-virtual-machine:〜$sudogedit/usr/src/1inux~2.6.32.60/arch/x86/kernel/syscall_table_32.S•longsys_rt_tgsigqueuei.nfo/*3

7、35*/•longsys_perf_event_open・longsys_pedagogtcttme/*337*/(1)重新编译Linux内核在当前工作目录(/usi7src/linux-2.6.32.60)进入超级用户,才可以重建内核。oslinux@oslinux-virtual-machine:~$cd/usr/src/1inux-2.6.32.60os1inux@oslinux-virtual-machinc:/usr/src/1inux-2.6.32.60$sudo-sStpe3:开始编译内核:编译内核的基本过程:root@

8、oslinux-virtual-machinc:/usr/src/1inux-2.6.32.60#makemrproper//清除依赖root@oslinux-virtual-machine:/usr/src/1inux

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。