操作系统实验一向Linux内核增加一个系统调用

操作系统实验一向Linux内核增加一个系统调用

ID:41683531

大小:49.00 KB

页数:5页

时间:2019-08-29

操作系统实验一向Linux内核增加一个系统调用_第1页
操作系统实验一向Linux内核增加一个系统调用_第2页
操作系统实验一向Linux内核增加一个系统调用_第3页
操作系统实验一向Linux内核增加一个系统调用_第4页
操作系统实验一向Linux内核增加一个系统调用_第5页
资源描述:

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

1、操作系统实验一:向Linux内核增加一个系统调用xx711103xx2012年3月18日一、实验目的通过实验,熟悉Linux操作系统的使用,掌握构建与启动Linux内核的方法;掌握用户程序如何利用系统调用与操作系统内核实现通信的方法,加深对系统调用机制的理解;进一步掌握如何向操作系统内核增加新的系统调用的方法,以扩展操作系统的功能。二、实验内容1.Linux环境下的C或C++编译和调试工具的使用2.向Linux内核增加新的系统调用,系统调用名称和功能自行定义3.Linux新内核的编译、安装和配置4.编写应用程序以测

2、试新的系统调用并输出测试结果三、实验步骤1、安装VirtuaIBox-4.0.8并在虚拟机上安装ubuntul1.10o(电脑上本有ubuntul1.1064位系统,但在编译内核完成后发现参考教程为32位系统,因64位系统与32位系统增加系统调用步骤差别较大,身为初学者的我选择安装虚拟机,并重新编译……)2、安装编译源环境sudoapt-getinstaIIbuild-essential、sudoapt-getinstaIIgcc>sudoapt-getinstaIIg++编写一个c++或c程序,并使用gcc-ox

3、xx或g++-oxxx进行编译并运行。3、用sudoapt-getupdate更新软件源,并用apt-getinstaIIIinux-source命令下载适合自己的内核。(当使用过老版本内核时,采用默认的内核配置makeoldconfig时,将会造成错误,自己也因此重做一遍)。4、增加系统调用:第一步:解压文件#cpIinux-source-3.0.0.tar.bz2/usr/src拷贝至/usr/src目录#tarxvfIinux-source-3.0.0.tar.bz2解压文件第二步:修改源程序,增加系统调用实

4、现#gedit/usr/src/Iinux-source-3.0.0/kernel/sys.casmIinkageintsys_mycaII(intnumber)prirrtk("helIo,mynewkernel,xw~!n);returnnumber;第三步:修改头文件,增加系统调用声名#gedit/usr/src/linux-source-3.0.0/arch/x86/kernel/syscall_tabIe_32.S将223行.longsys_ni_syscaII改为.longsys_mycaII(不要放在

5、其他地方,否侧可能出现错误)第四步:修改系统调用表,注册系统调用。#gedit/usr/src/Iinux-source-3.0.0/arch/x86/incIude/asm/unistd_32.h增加一行,对应上面的223第一步:make第二步:make第三步:第四步:第五步:makemakemake5、编译安装内核mrproper清除内核中不稳定的目标文件,附属文件及内核配置文件clean清除以前生成的目标文件和其他文件oIdconfig采用默认的内核配置bzImage编译内核modules编译模块终端cc[M

6、]fs/afs/vlcltent.occ[MJfs/afs/vlocation.occ[M]fs/afs/vnode.occ[M]fs/afs/volume.occ[M]fs/afs/write.oLD[MJfs/afs/kafs.oCC[M]fs/autofs4/tntt.oCC[M]fs/autofs4/inode.oCC[M]fs/autofs4/root.occ[M]fs/autofs4/symlink.occ[M]fs/autofs4/wattq.occ[M]fs/autofs4/expire.occ[M

7、]fs/autofs4/dev-xoctl.oLD[M]fs/autofs4/autofs4.oCC[M]fs/befs/datastream.oCC[M]fs/befs/btree・occ[M]fs/befs/super.occ[M]fs/befs/inode.occ[M]fs/befs/debug.occ[M]fs/befs/io.occ[M]fs/befs/linuxvfs•oLD[MJfs/befs/befs・oCC[M]fs/bfs/inode.o第六步:makemodulesinstaII安装模块终端文

8、件(F)编辑(E)查看(V)搜索(S)终端(T)帮助(H)E5■O“20:511xwO■'root@xw:/usr/src/llnux-source-3.0.0INSTALLdrtvers/medta/dvb/ftrewtre/ftredtv.koINSTALLdrtvers/medta/dvb/frontends/af9013.koINSTALLdrive

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

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

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