操作系统课程设计报告NachOSexperimentsreport.doc
《操作系统课程设计报告NachOSexperimentsreport.doc》由会员分享,可在线阅读,更多相关《操作系统课程设计报告NachOSexperimentsreport.doc(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、四 川 大 学操作系统课程设计报告学 院: 软 件 学院专 业: 软 件 工 程 年 级: 08 级 组 成 员:提交时间: 2010年6月24日 指导教师评阅意见:. . . .实验项目一项目名称:在 Nachos 上开发一个 shell实验目的:本实践项目希望通过修改 Nachos 系统平台的底层源代码来实现以下目标: 1. 为 Nachos 实现一个 Shell (字符终端)界面,通过该界面,用户可以实现类似于 Linux Shell 的大部分功能; 2. Shell 界面上以“ - ”作为 Shell 命令输入提示符,输入命令后以“ ENTER ”作为输入结束键。试验背景知识操作系统的
2、重要的功能之一就是在用户和计算机硬件之间提供界面,向用户屏蔽底层的硬件细节,为用户提供交互的接口。界面大致可分为两类,一类是字符终端界面,比如 Linux 、 Unix 等操作系统的 Shell , Microsoft Windows 的 Dos 环境等;另一类是图形界面,比如 Linux 、 Unix 的 XWindows 和 Microsoft Windows 的桌面管理系统等。 Nachos 平台既没有提供字符终端界面,也没有提供图形界面, Nacos 对运行于其上的程序以“ Nachos -x Program ”的方式运行,与实际的操作系统使用体验有较大的差距。文字操作系统与外部最主要
3、的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。 shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。 Shell基本上是一个命令解释器,类似于DOS下的command.。它接收用户命令(如ls等),然后调用相应的应用
4、程序。较为通用的shell有标准的Bourne shell (sh)和C shell (csh)。 交互式shell和非交互式shell 交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。 shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。 参与人员与分工: 茂:编写报告,测试,平台搭建 周博鑫:平台搭建,整合代码 赖
5、锋:代码编写,查资料 吕少飞:代码编写,查资料实验环境:Redhat Linux 9.0 NachOS-4.1环境搭建:实验的开发环境是基于Windows的虚拟机软件安装的Red Hat Linux 9.0系统来搭建的,本组所使用的虚拟机软件为VMware-workstation-full-7.0.1-227600汉化版,由于此软件的安装无需太多的的设置,故在此省去其安装过程的介绍,直接以Red Hat Linux 9.0的安装开始。以下为虚拟机软件启动后的初始截图:当开始进入系统安装界面时,会出现以下界面,用户直接敲击Enter即可;大概经过一两分钟后,会进入以下起始安装界面,点击“Next
6、”进入下一界面:系统默认安装语言为英文,在此我们选择“简体中文”,然后点击Next”:下一设置界面为键盘和鼠标的设置,我们使用系统默认的设置即可,点击“下一步”:对于安装类型的选择,选择“个人桌面”即可,点击“下一步”:在进行磁盘分区设置时,选择“自动分区”,点击“下一步”:在进行防火墙设置时,注意勾选“eth0”和“SSH”,点击“下一步”:输入至少8位的根用户密码,点击“下一步”:之后系统进入自动安装状态,如下图:安装过程中其会提示更换安装光盘:此时点击虚拟机软件下方的“更换光盘”按钮进行光盘更换即可,安装过程中总共需要进行两次的光盘更换:当安装结束后其会自动重新启动,在重启之后会进入以下
7、界面,选择“否”,点击“下一步”图形化界面的配置,无需更改,点击“下一步”:初始设置界面,点击“前进”:用户账号设置,在输入用户名与密码后,点击“前进”:在提示注册系统时,选择“否”,点击“前进”:之后的设置为一些时区等的设置,由于系统会进行自动检测,故无需进行更改,使用默认设置即可,在此就不一一截图说明。当设置完成后,会进入以下初始登陆界面,输入用户名和密码后登陆系统:以下为进入系统后的界面,至此,整个系统的安装完成:拟机的创建重要的是nachos4.1与其交叉编译工具的安装。1 把nachos4.1下载到/usr/local目录2 tar -zvxf nachos-4.1.tgz3 进入解
8、压后的目录,其中有code子目录,再进入其中的build.linux子目录4 输入 make depend5 输入 make 看看结束有没有错误,如果没有,那么就成功了。编译好的nachos系统镜像就在build.linux目录下,运行时直接 . / nachos 就可以了。如果要到其他目录下运行的话,还要export才行。nachos详细运行参数可以用. / nachos -u 得到。交叉编译工具的搭建。把下载的交叉编译工具放到 / 目录下,即根目录下然后用tar -zvxf 命令解压即可。必须放到根目录下,因为压缩包里面包含了/usr/local的目录层次。另外还需要编译测试程序转换工具,
9、进入 nachos4.1/code/coff2noff运行 . / configuremake 即可。然后在Rat Hat上编译出nachos,其系统结构如下图所示:Si35Setup.rar的安装 虽然在linux我们可以高效地完成所有开发所需的任务,但是对于刚刚开始接触unix/linux的同学,一下子用熟那么多的工具还是有些困难的。正是基于这一点我们的教学上也提供了在windows下用来阅读代码的工具Source Insight,借助于它我们可以加快代码阅读速度。这个软件的安装是个很简单的过程只要运行setup一路next下去就可以了。代码阅读时要先建工程,点击projectnew pr
10、oject,然后按照要求回答源代码的位置,工程就会顺利的建成。代码阅读时如果需要一些功能比如想要查找某个符号的定义只要在选定的符号上点右键就会弹出菜单,选择相应的命令就可以了。Nachos的介绍Nachos的全称是“Not Another Completely Heuristic Operating System”,它是一个可修改和跟踪的操作系统教学软件。它给出了一个支持多线程和虚拟存储的操作系统骨架,可让学生在较短的时间对操作系统中的基本原理和核心算法有一个全面和完整的了解。Nachos的目录结构以上操作系统可以发现在工作目录下生成一个名为nachos-3.4 的目录。该目录中含有:copy
11、right 文件 Nachos 的信息readme 文件 Nachos 的readme 信息nachos.ps 文件 Nachos 的介绍文档(Postscript 格式)c+example 目录有关C+介绍和实例doc 目录 Nachos 各个部分介绍和原有的作业要求code 目录 Nachos 各个部分的源代码最主要的部分是Nachos 的源代码部分。它的目录结构是:MakefileMakefile monMakefile.dep文件文件文件Nachos 的Makefile 文件。当Nachos 需要移植到其它系统时,可以修改Makefile.dep 中的HOST 参数machine 目录
12、 Nachos 虚拟机模拟部分源代码threads 目录 Nachos 线程管理部分源代码filesys 目录 Nachos 文件系统管理部分源代码userprog 目录 Nachos 用户程序部分源代码network 目录 Nachos 网络管理部分源代码vm 目录 Nachos 虚拟存管理部分源代码test 目录一些测试用应用程序bin 目录包含有用户程序目标码变换的程序三、各个部分的编译运行Nachos的各个部分都可以独立编译运行,也可以同时编译各个部分。全部编译可以采用如下命令:/nachos-3.4$ make当需要单独编译线程管理部分时,先进入threads 目录,然后采用如下命令
13、:/nachos-3.4/threads$ make depend/nachos-3.4/threads$ make nachos实际上,各部分目录下都有一个Makefile 文件,容大体一样,区别在于一些条件编译的参数。比如在单独编译线程管理部分时,文件管理部分就被屏蔽了,这样读者读者就可以专心于线程管理部分的调试。四、应用程序的编译由于Linux 指令集和R2/3000 指令集不同,用户编写的应用程序用Linux 系统中标准gcc 编译后,不能直接在Nachos 虚拟机环境下运行。所以需要采用交叉编译技术。所谓交叉编译技术是在一个操作系统下将源码编译成另一个操作系统的目标码,这里就是在Li
14、nux 下通过gcc 交叉编译版本将用户程序的源码编译成R2/3000 指令集的目标码。在Linux 中,没有缺省的交叉编译工具。读者可以到交通大学计算机系FTP 服务器上下载,URL 为:ftp:/该文件的解开需要有超级用户的权利,将解开至/usr/local/目录下:/# gzip -dc cross-compiler.tgz | tar xf -在编译用户程序时,用交叉编译器将源码编译成R2/3000 指令集的目标代码,再经过一个简单的转换就可以在Nachos 虚拟机上运行。注意,在读者实现虚拟存储之前,有些应用程序可能会因为使用过多的存而不能运行。实验容:本项目在实践的过程中需要注意以
15、下要点:Shell项目的要求一、 设计一个简单的命令行shell,满足下面的属性并且可以在指定的UNIX平台下执行。1. 这个shell支持一下部命令:a) cd把当前默认目录改变为。如果没有参数,则显示当前目录。如果该目录不存在,会出现合适的错误信息。b) cle清屏。c) dir列出目录的容。d) environ列出所有的环境变量。e) echo在屏幕上显示并且换行(多个空格和制表符可能被缩减为一个空格)。f) help显示用户手册,并且使用more命令过滤。g) pause停止shell操作直到按下回车键。h) quit推出shell。i) shell的环境变量应该包含shell=/my
16、shell,其中/myshell是可以执行的shell完整路径(与shell的可执行路径,而不是他在目录下的硬连接路线)。2. 其他的命令行输入被解释为程序的调用,shell创建并执行折个程序,并作为自己的子进程。程序的执行的环境变量包含在以下条目中:parent=/shell,其中/myshell已经在1.i)中描述过了。3. Shell必须能够从文件中提取命令输入例如shell使用以下命令行被调用:programname arg1 arg2 outputfile这个批处理文件应该包括一组命令集,当到达文件结尾时shell退出。很明显,如果shell被调用是没有使用参数,他会在屏幕上显示提示
17、符请求用户输入。4. Shell必须支持i/o重定向,stdin和stdout,或者其中之一a) 例如命令行:programname arg1 arg2 outputfile使用arg1以与arg2执行程序programname,输入文件流被替换为inputfile,输出文件流被替换为outputfile.b) stdout重定向应该支持一下的部命令:i. dirii. environiii. echoiv. help以上部命令已在1中有具体解释,本处比在叙述。使用输出重定向时,如果重定向字符为,则创建输出文件,如果存在则覆盖之;如果重定向字符为,也会创建输出文件,如果存在则添加到文件尾。5.
18、 shell必须支持后台程序执行。如果在命令行后面添加&字符,在加载完程序后需要立刻返回命令行的提示符。命令行提示符必须包含当前路径。二、 写一个关于使用如何使用shell的简单的用户手册,用户手册应该包括足够的细节以方便UNIX的初学者简单方便的使用这个shell程序。例如:解释i/o重定向,程序环境以与后台程序执行。用户手册必须命名为readme,必须为一个可以并准文件编辑器可以打开的简单的文档。例如这个描述类型和深度的例子,cah和tcsh的在线帮助(man csh,man tcsh)。这两个shell明显比我们所谓的shell具有更加强大功能。所以用用户手册不一定要非常庞大,也不应包括
19、编译指示即文件列表和源代码,这个用户手册应该面向操作用户,所以台应该是一个操作用手册而不是一个程序员手册。三、 源代码必须有很详细得注释,并且要有很好的组织结构以方便非制作人员的阅读,维护或者修改。结构和注释使程序跟更加易于阅读和理解,并且可以保证批改你的作业的人不用很费劲的去读你的源代码。四、 在提交的源代码文件中,包括:a) 原文件b) makefilec) readme并且这些源代码应该能够编译完成完整的结果。五、 makefile必须产生二进制未见myshell。例如一个makefile例子:#Joe Citizen,s1234567-Operating Systems Project
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 报告 NachOSexperimentsreport
限制150内