《操作系统》LG实验教学指导书1

《操作系统》LG实验教学指导书1

ID:47838719

大小:75.00 KB

页数:4页

时间:2019-11-22

《操作系统》LG实验教学指导书1_第1页
《操作系统》LG实验教学指导书1_第2页
《操作系统》LG实验教学指导书1_第3页
《操作系统》LG实验教学指导书1_第4页
资源描述:

《《操作系统》LG实验教学指导书1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、天津理工大学华信软件学院《操作系统》实验教学指导书1课程代码:1460350课程名称:操作系统/OperatingSystem开课院(系)、实验室:华信软件学院C408机房适用专业:软件工程专业实验指导书名称:自编指导教师:张一鸣实验一为LINUX增加新系统调用1.实验目的(1)学习掌握操作系统与应用程序Z间的接口一编程界面,或者说是操作系统提供给用户使用的程序界面,即系统调用。(2)学会用户根据口己的需要向Linux中增加新的系统调用命令,并将其纳入内核中的具体方法。2.实验任务在Linux的字符界面中,学生可以根据自己的需要向libc库中增加新的系统调用

2、命令,并将其纳入内核中。这个工作需要以下四个步骤:(1)编制新系统调用的程序源代码(用C语言编程);(2)对新编制的用户调用程序进行编译、链接,形成可执行代码,并连接此新系统调用到内核;(3)重建新Linux内核;(4)用新Linux内核启动系统;(5)编写用户测试程序,代用新编写的系统调用,并显示结果,验证期能正常执行。3.实验步骤(1)在Windows下启动Linux虚拟机选择屏幕左下角的:开始f程序fRedHatLinux4-*VMware虚拟机(2)在Linux下使用vi编程使用vi建立一个程序文件(如vimain.c),在vi中使用插入命令i,编写

3、一段C语言程序;用gcc命令编译和链接该程序,并用main来查看输岀结果。1)在Linux终端的字符界面,输入vimain.Co2)按i键切换到编辑模式。3)编辑一段C程序代码,然后按Esc键切换回命令模式,输入J”,再输入“wq”保存并退出或“q!”强制退出vi编辑器。4)用cat命令查看新建的main.c文件存在否。5)在Linux中使用gcc命令对新建的程序编译连接。女口:gccmain.c-omain。1)运行程序,即:./main。注:./表示当前目录。[源程序代码,示范]/*输入两个整数,输出最大的数*/#includeintm

4、ain(void){intmax(inta,intb);inta,b,c;printf("Pleaseinputtwonumber:^);scanf(“%d,%d‘‘,&a,&b);c=max(a,b);printf("max=%d”,c);}(1)编制新系统调用的程序源代码(用C语言编程)调用编辑程序vi编写要加入到内核中的新的源程序,即要加入到一个内核文件中去的一个函数,该函数的名称应该是新的系统调用名称前面加上sys_标,忐。假设新加的系统调用为mycall(intnumber),则在,7usr/src/Liinix・2.4.⑻kernel/sys

5、.c,源系统内核文件中添加口己需要的代码,其形式如下:asmlinkageintsys_mycall(intnumber){printf("AddingnewsystemcallfunctiontoLinnuxKernelM);printf("Doubleinputednumber%dto%d.'',number,2*number);return2*number;}本实验要求学生编写的sys_mycall函数对输入的任一个年份(4位正整数),能够判断出其是闰年还是平年。添加该内容后,耍让Linux内核的其余部分知道新的系统调用函数的存在,,这需要为已

6、有的内核程序中增加一个到新的函数的链接,需要编辑两个文件。第一个是/usr/src/Linux-2.4.18/include/asm-i386/unistd.h,在其中最后一个#define语句后面添加新的一行为#define_NR_mycall243(嘉定源文件的最后一句#define语句编号是242。第二个要修改的文件是:/usr/src/Linux-2.4.18/arch/i386/kernel/entry.s该文件屮冇类似如下的清单:.longSYMBOL.NAME(sys_系统调用名)。该清单用来对sys_call_table[]数组进行初始化。数

7、组中包含指向内核中每个系统调用的指针,即每个函数的入口地址。当增加新的内核函数吋,要在该文件的最后•一行z后•,增加一新行:.longSYMBOL.NAME(sys_新系统调用名)。(4)重建新的Linux系统内核。为了使新增加的系统调用命令冇效,需要重建Linux内核重新编译Linux系统内核。这必须以root超级用户身份登陆进入系统。然后,再进入/usr/src/Linux-2.4.18了目录中,使用下列键盘命令完成内核的重建工作:#pwd/usr/src/Linux#必须确保当前工作目录是'7usr/src/Linux-2.4.18v时,才能使用下面的

8、命令序列重建Linux内核:.#makemenuco

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

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

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