向Linux内核增加一个系统调用.doc

向Linux内核增加一个系统调用.doc

ID:55901700

大小:1.37 MB

页数:6页

时间:2020-06-13

向Linux内核增加一个系统调用.doc_第1页
向Linux内核增加一个系统调用.doc_第2页
向Linux内核增加一个系统调用.doc_第3页
向Linux内核增加一个系统调用.doc_第4页
向Linux内核增加一个系统调用.doc_第5页
资源描述:

《向Linux内核增加一个系统调用.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、操作系统实验一实验报告一、基本信息:实验题目:向Linux内核增加一个系统调用完成人姓名:金威报告日期:2016年4月24日二、实验目的通过实验,熟悉Linux操作系统的使用,掌握构建与启动Linux内核的方法;掌握用户程序如何利用系统调用与操作系统内核实现通信的方法,加深对系统调用机制的理解;进一步掌握如何向操作系统内核增加新的系统调用的方法,以扩展操作系统的功能。三、实验内容1.Linux环境下的C或C++编译和调试工具的使用。2.向Linux内核增加新的系统调用,系统调用名称和功能自行定义

2、,但必须实现如下输出功能:“MyStudentNo.is×××,andMyNameis×××”。3.Linux新内核的编译、安装和配置。4.编写应用程序以测试新的系统调用并输出测试结果。四、实验步骤1.第一次尝试了使用VirtualBox,但是出了一些问题,虚拟机网连不上就换了VMwareworkstations,曾试过用ubuntu-10.04.4-desktop-i386和比较老版本的内核,但是过程略繁琐,且很容易出错,就更换了Ubuntu6415.10来创建虚拟机。2.我先在windows

3、中下载了linux-4.2的内核,然后直接拖入了虚拟机中(拖入的过程有时可能会无法进行,可以对虚拟机的VmwareTools重新安装,或者用共享文件夹的形式拖入),拖入了桌面后,我直接进行了解压,较新版本无需cp入/usr/src中。3.接着进入终端,sudoapt-getinstallbuild-essentialkernel-packagelibncurses5-devfakeroot获得编译内核必需,但是这个所需下载的东西太多,有1个G左右,中间可能如果网络出现故障,出现故障中断下载后我是

4、按它的提示输入了apt-getupdate更新软件环境。4.修改systemtable。进入解压的文件目录下,执行sudogedit/arch/x86/entry/syscalls/syscall_64.tbl在打开文件中,在x32specificsystemcall设定之前添加32364mycallsys_mycall。5.向syscalls.h中添加函数。Cd入/include/linux,sudogedit./syscalls.h,在#endif后添加asmlinkageintsys_my

5、call(intnumber)。6.进入/kernel的目录,执行gedit./mycall.c新建一个mycall.c文件,内容如下:7.sudogedit./Kconfig.mycall新建一个Kconfig.mycall文件,内容如下8.修改/kernel下的Makefile文件,向obj-y列表中添加mycall.osudogedit./Makefile9.修改Linux-4.2目录下的Makefile文件,填写EXTRAVERSION的值,为新版本的内核名称。我填写了我的姓名的拼音.J

6、in10.编译内核。在cd到linux-4.2.0所在文件夹makelocalmodconfig//去掉一些不需要的模块make–j4//使用双核同时编译能使速度加快,同时在创建虚拟机分配内存时也多分配了些,磁盘也分配了32个Gmake–j4modules_install//编译模块11.Makeinstall//安装内核,最后显示的就是新内核的版本号12.进入新内核测试系统。安装完后reboot后自动进入新内核,编写测试系统调用的函数,系统调用函数中的第二个参数值可变,第一个参数对应前面步骤设

7、置的参数(由于之前没有进入root权限,之后执行系统调用时出现错误所以需要获得root权限)suroot//获得权限在test.c文件目录下打开终端。gcctest.c–otest//对test.c文件编译./testdemesg–c//查看系统调用结果五.实验体会能用新的版本就用新的版本吧,老的版本过程繁琐,而且容易出错,在老版本失败多次后,我再使用了新版本的乌班图和linux内核,很快就搞定了实验。在刚开始实验时,对linux没有了解,毫无头绪,在熟悉命令行时也花费了很多时间,但是这些对以后

8、对linux系统的使用都很有好处,也渐渐了解了系统调用的过程。

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

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

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