linux操作系统课程设计-内核的移植系统调用的添加.doc_第1页
linux操作系统课程设计-内核的移植系统调用的添加.doc_第2页
linux操作系统课程设计-内核的移植系统调用的添加.doc_第3页
linux操作系统课程设计-内核的移植系统调用的添加.doc_第4页
linux操作系统课程设计-内核的移植系统调用的添加.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统课程设计摘要操作系统是用于控制和管理计算机系统内各种软硬件资源、合理有效地组织协调计算机系统的工作流程提供友好的用户接口以方便用户使用计算机的程序集合。在设计报告中,第一部分介绍了内核的相关概念,在第二部分介绍了关于内核添加涉及的操作。从头至尾,完全按照个人完成该课程设计时的思路进行。其中包括遇到的一些问题,是如何解决的。由于能力有限,在本次设计中,参阅了较多书籍,电子文档。借鉴了别人的设计,并请教了别人。在设计最后,是本人在设计伊始及终的一些感受与想法。关键字:linux命令 内核 系统调用目 录1、概述.12、课程设计任务及要求12.1实现Linux操作系统的内核添加及系统调用.12.2添加一个简单的系统调用 .12.3设计要求.13、算法与设计结构14、课程设计与实现 4.1流程图.2 4.2程序说明.2 4.3实验结果.65、设计总结.76、参考文献.71、 概述这次设计主要完成的工作是编写一个简单的程序,然后加载到内核中并在Linux系统内核中添加系统调用。2、 课程设计任务及要求2.1实现Linux操作系统的内核添加及系统调用本次课程设计用到的是Linux虚拟机,将Linux操作系统装在以windows 7为宿主的VMware workstation中。Linux系统为Ubuntu 11.10版。(本人机器上的Redhat版本太低,在linuxtools安装完成后,仍不能进行相关操作,因此从同学那里找来了不错的虚拟机及系统)2.2添加一个简单的系统调用此课程设计中添加了一个简单的字符驱动,在系统调用时,会输出一段字符“Hello hytc !”2.3设计要求要求在学习操作系统的基础上找出解决方案,做出合理的设计,独立完成。给出测试值,得出结果并进行解释。3、 算法与设计结构系统中的调用函数的为:Asmlinkage void sys_zlx()Printk(“Hello hytc !”);4、 课程设计与实现4.1流程图 下载相关内核,并加载到系统中添 加 1、解压内核系 2、添加统 3、修改指针列表调用编译内核安装内核测试新添加的系统调用4.2程序说明具体步骤:S1:下载linux系统内核,网站下载内核版本linux-3.0.82.tar.xz放入linux虚拟机中。S2:添加系统调用1、 解压内核将linux-3.0.82.tar.xz移至/usr/src/目录中mv linux-3.0.82.tar.zx /usr/src/以需要管理员身份进入/usr/src/目录命令行输入:sudo su以获取管理员身份然后输入密码进入root模式开始解压:输入命令Xz -d linux-3.0.82.tar.xz(以.xz结尾的用xz -d +文件名 进行解压)得到linux-3.0.82.tar文件再输入命令 tar -xf linux-3.0.82.tar ls一下,得到文件linux-3.0.82,(要编辑的文件)2、系统调用添加Cd linux-3.0.82/kernelGedit sys.c打开sys.c文件进行编辑,在文末插入代码asmlinkage int sys_zlx()printk(KERN_EMERG hello hytc !;return 1;保存退出。3、 修改指针列表在当前目录输入 cd ./arch/x86/kernel然后输入 gedit syscall_table_32.S打开后,在最后加入:.long sys_zlxgedit syscall_table_32.S#打开syscall_table_32.S文件,在文末添加.long sys_helloworld保存并退出。输入命令:cd ./include/asm然后输入:gedit unistd_32.h打开后,在文末添加:#define _NR_sys_zlx 347最后的数改成348将下面行中的另一声明后的值由347改为348S3:编译内核回到linux-3.0.82目录,输入:apt-get install build-essential kernel-package libncurses5-dev fakeroot然后:make mrproper /此处特容易出错,要多次输入。用于清理编译产生的文件。再然后:make menuconfig最后:make j4 开始漫长的编译。/若前面有错误,则最后不能看到期望的结果。S4:安装内核输入命令:make modules_install然后输入:make install然后设置内核新启动项输入:apt-get install bootcd-mkinitramfs然后:mkinitramfs 3.0.82 o /boot/initrd.img-3.0.82输入:update-grub2最后:reboot第五步:检测系统调用编辑代码测试#includeint main()int tmp;tmp=syscall(347);printf(n);if(tmp=1)printf(succed!n);4.3实验结果在命令行里运行程序后得到结果:5、 设计总结 经过将近两周的设计,终于完成了系统内核的编译及系统调用的添加。之前选择关于驱动的编写及添加系统调用,自己在琢磨一段时间后,发现能力有限。其中有两天完全堆在上面还不能够继续开展下去,因此征得老师同意,换选了现在的该设计。不得不承认,即使有很多不会,但是认真摸索一下,还是有收获的。在本次设计中,从开头在工具选择上就遇到了问题,不知从何下手,几经周折,我查阅了一些参考资料,请教了同学,利用网络资源,不断地遇到问题,解决问

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论