欢迎来到天天文库
浏览记录
ID:29967337
大小:17.63 KB
页数:6页
时间:2018-12-25
《linux系统调用实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划linux系统调用实验报告 操作系统实验报告 -----Linux下的系统调用 计算机10-4赵俊楠 实验目的:实现多个系统调用实验 实验内容:添加简单系统调用、添加随机抽牌系统调、用模块添加系统调用 实验步骤: 1.在usr/src//include/asmi386/中添加#define__NR_print_info259和#define__NR_rank260 2.在usr/src//arch/i386/kernel/中添加.
2、longSYMBOL_NAME(sys_print_info)和.longSYMBOL_NAME(sys_rank);3.在usr/src//kernel中添加 asmlinkageintsys_rank(intvalue,intsuit) { if(value==1)return(int)(4*13+suit); elsereturn(int)(4*(value-1)+suit); };和 asmlinkageintsys_print_info(inttestflag) {目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的
3、巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 printk(KERN_EMERG"It'smysyscallfunction!"); return0; } 4.在usr/src//kernel/ksyms中添加 #ifndef__mips__ EXPORT_SYMBOL(sys_call_table); #endif 至此,三个实验的系统调用添加完毕下面开始编译内核。 clean makemrproper
4、makeoldconfig makedep makebzImage makemodules makemodules_install makeinstall 在添加系统调用时候一定要专心、仔细,否则在编译的时候会出现错误,改起来很麻烦!! 6.重启Linux后,显示界面如下 7.进入新内核后不要忘了将#define__NR_print_info 260添加到中目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利
5、开展,特制定安保从业人员的业务技能及个人素质的培训计划 8.然后编写三个测试程序分别测试新的系统调用结果如下图: 关于test_print_info 259和#define__NR_rank 关于 card 关于call和 test_call 实验总结: 本次实验的内容涉及到Linux的系统调用。所谓系统调用,即操作系统为应用程序提供的与内核进行交互的一组接口。通过此接口,用户态下的应用程序可以转化为内核态,同时调用相应的内核函数运行,从而可以实现应用程序和系统内核的交互。 通过三个实验对Linux的系统调用原理进行验证。第一个实验是简
6、单的系统调用的添加;第二个实验则是丰富了系统调用的功能,实现了一个抽牌的功能,而不仅仅是打印语句;第三个实验则是将编译内核改进成了内核模块的编译,这样在不重启调用编译后内核的前提下插入编译的系统调用内核模块,即可以调用新的系统功能。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 对于这次实验,我觉得最大的困难在于如何编译内核。开始的时候只知道makeclean和ma
7、kedep,却在makebzImage的时候出现了一堆选项让选y/n/M,后来才知道只要打makeoldconfig按原来的配置就可以了。然后是在makebzImage的时候出现了两个错误:一个是字母打错了,一个是位置加错了。又回去改,重新make。makemodules花费的时间最长,之后还算很顺利,只不过重启之后系统又自动进入RedHat我不知道,在执行test_print-info的时候显示i=-1,syscallfailed!,以为添加系统调用失败了!!后来才发现是进错了地方。 虽然对于这次实验,大多数内容都已经给出了,但是还是花了我很多时间。过
8、程很纠结,还好最后成功了! 最后,感谢老师在课上关于系统调用知识
此文档下载收益归作者所有