《操作系统原理》课程设计报告微型操作系统的设计

上传人:壹****1 文档编号:500804302 上传时间:2022-11-06 格式:DOC 页数:21 大小:272.04KB
返回 下载 相关 举报
《操作系统原理》课程设计报告微型操作系统的设计_第1页
第1页 / 共21页
《操作系统原理》课程设计报告微型操作系统的设计_第2页
第2页 / 共21页
《操作系统原理》课程设计报告微型操作系统的设计_第3页
第3页 / 共21页
《操作系统原理》课程设计报告微型操作系统的设计_第4页
第4页 / 共21页
《操作系统原理》课程设计报告微型操作系统的设计_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《《操作系统原理》课程设计报告微型操作系统的设计》由会员分享,可在线阅读,更多相关《《操作系统原理》课程设计报告微型操作系统的设计(21页珍藏版)》请在金锄头文库上搜索。

1、重庆科技学院操作系统原理课程设计报告 学 院:电气与信息工程学院 专业班级: 计科应08 学生姓名: 学 号: 设计地点(单位)_ _ _ _ _ _ _ 设计题目:_ _ 微型操作系统的设计_ 完成日期: 2011 年 6 月 17 日 指导教师评语: _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _ 重庆科技学院课程设计任务书设计题目:微型操作系统的设计 学生姓名课程名称操作系统原理课程设计专业班级计科应08地 点I524起止时间2011年6月12日-2011年6月16日设计内容及要求(1) 配置操作系统编写的所需的环境(虚拟机的建立和相应环境建立),以准备相关的必须工具的准备

2、,并学会相关工具的使用,为以后编写一个微操作系统奠定基础和准备平台。(2) 学习NASM汇编器在本次设计中的使用。(3) 学习裸机启动的过程,消化操作系统引导程序的结构,在此基础上,完成在实模式下从软盘引导计算机的程序编写。(4) 学习本次设计需要的实模式到保护模式切换的相关知识。理解GDT在保护模式的工作机理(5) 编写在保护模式下的引导程序,并用C语言模拟写一个“内核”,并实现在保护模下通过引导程序启动计算机并将该“内核”加载到内存中。最后切换到内核。设计参数(1) 写出编写一个操作系统所需的环境和操作说明书。(2) 总结计算机启动顺序和具体过程。(3) 实现在实模式下系统引导程序的编写。

3、(4) 理解消化实模式到保护模式切换原理以及相关的数据结构和工作过程,并实现之。(5) 完成保护模式下的引导程序,并完成“内核”的加载,并使“内核”运行起来。附加要求:请在设计的课后完成具有进程调度和管理的内核的编写。进度要求6月12日布置任务,对各个任务的基础知识进行讲解6月12日 安装环境,并熟悉相关工具的使用。6月13日完成实模式下引导程序的编写。6月14日完成实模式与保护模式的切换代码的设计。6月15日完成实模式引导程序和内核加载程序编写。6月16日完成答辩和报告撰写。参考资料随任务布置的相关电子文档。其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负

4、责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师: 年 月 日重庆科技学院操作系统原理课程设计报告摘要操作系统是用于控制和管理计算机系统内各种软硬件资源、合理有效地组织协调计算机系统的工作流程提供友好的用户接口以方便用户使用计算机的程序集合。本次设计主要基于在实模式下系统引导程序的编写,理解消化实模式到保护模式切换原理以及相关的数据结构和工作过程,并实现之,完成保护模式下的引导程序,并完成“内核”的加载,并使“内核”运行起来。所用到的设备有Windows XP系统PC机一台、装有Linux系统的PC机一台、VMwar

5、e虚拟机一台、winhex以及NASM编译软件。 结合本身的实际情况,写出设计要求的操作系统。关键词:操作系统 引导 模式 内核 NASM17目录摘要I1 需求分析11.1功能需求分析11.2 性能需求分析11.3 运行环境需求21.3.1 设备21.3.2 运行环境22系统设计42.1 引导程序和模式切换功能设计42.1.1 引导程序设计42.1.2 模式切换功能设计52.2 内核设计82.3 映像文件的设计113系统测试12总结14致谢15参考文献161 需求分析无论什么项目或者是软件,我们首先必需弄清它的需求分析,才能达到我们开发的目的,而不是在那盲目的开发,最后却不知道产品所需求的功能

6、。1.1功能需求分析PC机开机后,CPU被设定为执行FFFF:0单元处的指令,此处有一条跳转指令。CPU执行该指令后,转去执行BIOS中的硬件系统测试和初始化程序。初始化程序将建立BIOS所支持的中断向量,即将BIOS提供的中断例程的入口地址登记在中断向量表中。硬件系统检测和初始化完成后,调用int 19h进行操作系统的引导。如果设为从软盘启动操作系统,则int 19h将主要完成以下工作:(1) 控制0号软驱,读取软盘0道0面1扇区的内容到 0:7C00(2) 将CS:IP指向0:7C00软盘的0道0面1扇区中装有操作系统引导程序。int 19h将其装入到内存0:7C00处后,设置CPU从0:

7、7C00开始执行此处的引导程序,操作系统被激活,控制计算机。如果在0号软驱中没有软盘,或发生软盘I/O错误,则int 19h将主要完成以下工作:(1) 读取硬盘C的0道0面1扇区的内容到0:7C00 (2) 将CS:IP指向0:7C00由以上描述可知,若我们想要控制引导过程,只需: (1) 编写程序 (2) 将该程序代码写入软盘或硬盘C的0道0面1扇区。 因为以上工作会破坏软盘或硬盘原有数据,因此本次实验,我们选择软盘存放我们自己的启动程序。1.2 性能需求分析该操作系统在性能上应达到如下要求:1)操作简单,界面友好:本系统是采用的虚拟机软盘映像文件驱动引导程序设计的启动模式,操作起来简单方便

8、快捷;界面可以根据自己的喜好设成不同的格式和布局。2)环境稳定:该操作系统的设计主要是引导程序的引入、实模式下的运行、实模式到保护模式的转换以及保护模式下内核的加载运行,所以运行环境必须稳定可靠。3)可扩展性:系统在结构上应该具有很好的扩展性,便于以后系统功能的扩展与开发。1.3 运行环境需求1.3.1 设备基于Windows环境平台下汇编编辑工具(EditPlus)或者基于Linux环境下的文本编辑器;NASM编译器;Winhex16进制编辑器;装有虚拟机的Windows XP系统PC机一台;Linux系统PC机一台。1.3.2 运行环境本次课程设计由于是通过虚拟机演示,主要用到虚拟机的软盘

9、通过镜像文件引导加载程序,下面简单介绍一下运行平台上的工具以及文件。1)虚拟机VMware1)关于VMware几个重要概念1. VM(Virtual Machine)虚拟机,指由Vmware模拟出来的一台虚拟的计算机,也即逻辑上的一台计算机; 2.HOST指物理存在的计算机,Hosts OS指HOST上运行的操作系统; 3. Guest OS指运行在VM上的操作系统。例如在一台安装了Windows NT的计算机上安装了Vmware,那么,HOST指的是安装Windows NT的这台计算机,其Hosts OS为Windows NT。VM上运行的是Linux,那么Linux即为Guest OS。2

10、)软盘映像文件映像文件是将资料和程序结合而成的文件,它将来源资料经过格式转换后在硬盘上存成 与目的光盘内容完全一样的文件,然后我们可以将这个文件以一比一对应的方式刻入光盘中。 在制作映像文件之前建议先做硬盘的资料重整与磁盘扫描,除此之外,由于一个映像文件的大小相当于刻入光盘的全部内容,所以一定要预留超过这个容量的硬盘空间来存储这个映像文件。3)映像文件合成工具WinHexWinHex 是一款以通用的 16 进制编辑器为核心,专门用来对付计算机取证、数据恢复、低级数据处理、以及 IT 安全性、各种日常紧急情况的高级工具: 用来检查和修复各种文件、恢复删除文件、硬盘损坏、数码相机卡损坏造成的数据丢

11、失等。4)Linux下的GCC编译器Linux系统下的Gcc是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作之一。Gcc是可以在多种硬件平台上编译出可执行的超级编译器,其执行效率与一般的编译器相比平均效率要高20%30%。Gcc编译器能将C、C+语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。5)NASM编译软件要将源文件demo.asm汇编为exe文件,可以在Command窗口输入如下命令:nasm demo

12、.asm -o demo1.exe要汇编为32位Windows程序,可以在Command窗口输入如下命令:nasm -f win32 demo.asm -o demo2.exe要汇编为64位Windows程序,可以在Command窗口输入如下命令:nasm -f win64 demo.asm -o demo3.exenasm命令的-o参数用于指定输出文件的文件名,-f用于指明文件格式,如果没有指明文件格式,则默认编译为bin格式,即纯二进制代码。所以,上面的demo1.exe实际上是个.com文件。2系统设计2.1 引导程序和模式切换功能设计2.1.1 引导程序设计首先通过一个小程序作为引导程

13、序,引导程序的主要作用是起到引导的作用,它将一个字符串输出显示到屏幕上,其源代码如下。org07c00h ; 告诉编译器程序加载到7c00处movax, csmovds, axmoves, axcallDispStr; 调用显示字符串例程jmp$ ; 无限循环DispStr:movax, BootMessagemovbp, ax ; ES:BP = 串地址movcx, 16 ; CX = 串长度movax, 01301h ; AH = 13, AL = 01hmovbx, 000ch ; 页号为0(BH = 0) 黑底红字(BL = 0Ch,高亮)movdl, 0int10h; 10h 号中断retBootMessage:dbyangjing2008540330!times 510-($-$)db0 ; 填充剩下的空间,使生成的二

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号