毕业论文终稿(一个简易操作系统的实现).docx

上传人:11****ws 文档编号:2319977 上传时间:2019-05-06 格式:DOCX 页数:77 大小:362.23KB
下载 相关 举报
毕业论文终稿(一个简易操作系统的实现).docx_第1页
第1页 / 共77页
毕业论文终稿(一个简易操作系统的实现).docx_第2页
第2页 / 共77页
毕业论文终稿(一个简易操作系统的实现).docx_第3页
第3页 / 共77页
毕业论文终稿(一个简易操作系统的实现).docx_第4页
第4页 / 共77页
毕业论文终稿(一个简易操作系统的实现).docx_第5页
第5页 / 共77页
点击查看更多>>
资源描述

1、I摘 要作为学习操作系统的新手,商用的操作系统设计复杂,代码量大,不适合作为学习的蓝本,如果能够从零开始开发一个小型的操作系统雏形,不但可以全面深入地了解操作系统的工作原理,还可以为读大型开源操作系统的代码积累经验。这个取名为 MyOS 的从头开始开发的系统虽然结构简单,但是具备了内存管理、多任务控制、任务切换、基本输入输出管理并且运行在 32 位保护模式下,在用户接口方面,它采用的是图形界面和命令行界面混合的方式来与用户交互,在程序接口方面,设计了部分 API,主要是针对于图形显示和计时器两方面,本文利用这些 API,实现了“贪吃蛇”、 “时钟计时器”两个例子程序。本文首先介绍操作系统运行所

2、依赖的硬件系统组成,然后重点地介绍了操作系统的基本特征和主要功能,接着详细地说明了 80386 以上 Intel CPU 所运行的贯穿整个操作系统开发的 32 位保护模式,接下来简述了 MyOS 的开发环境和语言,以及 MyOS 的基本运行原理,然后重点介绍了 MyOS 的设计与实现,最后叙述 MyOS 的程序接口 API,以及利用MyOS 中的 API 设计的应用程序。关键词:操作系统,运行原理,32 保护模式IIABSTRACTAs a fresh man who want to learn Operating System deeply, commercial using OS are

3、too complex to learn .So ,if we develop a demo of OS from blank, if we start from scratch ,we can not only have a good know for the running principle of a OS, but also accumulate many experience which are of significant importance to our further study and research for the operating system.This thesi

4、s is about a Operating System which is developed from the blank,and its name is MyOS.This MyOS is simple in structure, however, it possesses the management of memery and task and basic input and out, it support the multitask and run under the 32 bit protect mode. In addition, it using both graphical

5、 interfaces and command line interfaces to interact with user.As for the API, the MyOS get some API for the graphical display and timer, by which we develop some program which may run on the MyOS.This thesis are composed by these elements.First of all, it describe the hardware which Operating System

6、 run on, and then ,it present the fundamental character and main function of the Operating System. Secondly ,it illuminates the protect mode which is one of the two important elements of the thesis, and the other one is particularize the design and realization of the MyOS, before which ,it will brie

7、fly tell you the developing circumstance and the developing language. At last, it deals with the API of MyOS and the program developed based on these APIs.Keywords: Operating System , Principle of Running ,32bit Protect Mode1目 录摘 要 .IABSTRACT.II第 1 章 绪论 .11.1 选题背景和意义 .11.2 国内外研究现状 .21.3 主要研究内容 .3第 2

8、 章 操作系统运行环境及运行原理简述 .42.1 计算机系统硬件组成简述 .42.1.1 总线 .42.1.2 I/O 设备 .42.1.3 主存 .52.1.4 处理器 .52.2 操作系统的基本特性 .52.2.1 并发性 .62.2.2 共享性 .62.2.3 虚拟性 .62.2.4 异步性 .72.3 操作系统的主要功能 .72.3.1 处理机管理 .72.3.2 存储器管理 .72.3.3 设备管理 .82.3.4 文件管理 .82.3.5 用户接口 .92.3.6 程序接口 .9第 3 章 32 位保护模式介绍 .113.1 32 位保护模式简述 .113.1.1 存储管理机制和地

9、址转换机制简介 .113.1.2 保护机制 .123.2 分段管理机制 .153.2.1 段定义 .153.2.2 虚拟地址到线性地址的转换机制 .153.2.3 虚拟地址到线性地址的转换机制所需要的数据结构和寄存器 .163.3 分段管理机制所依赖的两类寄存器 .173.3.1 控制寄存器 .173.3.2 系统地址寄存器 .183.4 系统段描述符、门描述符、任务状态段 .203.4.1 系统段描述符 .203.4.2 门描述符 .213.4.3 任务状态段 TSS .223.5 控制转移 .233.5.1 任务内无特权级变换的转移 .233.5.2 任务内不同特权级的变换 .2423.5

10、.3 任务间控制转移-“任务切换” .26第 4 章 MyOS 具体设计与实现 .284.1 MyOS 的开发语言、开发流程以及开发环境简述 .284.2 MyOS 运行原理简述 .294.2.1 引导扇区 .294.2.2 加载内核 .304.2.3 执行系统内核 .304.3 MyOS 内核设计与实现 .314.3.1 内存管理 .314.3.2 定时器设计 .364.3.3 FIFO 缓冲区设计 .414.3.4 基本输入输出管理 .444.3.5 多任务管理 .474.3.6 图形界面的设计 .544.3.7 编程接口 API 设计 .56第 5 章 利用 MyOS 的 API 编写程

11、序并运行 .605.1 表秒计时器 .605.2 游戏“贪吃蛇” .61第 6 章 总结 .68参考文献 .69致 谢 .70华北电力大学本科毕业设计(论文)1第 1 章 绪论1.1 选题背景和意义众所周知,一个成型的操作系统往往非常复杂,因为考虑到操作系统作为软硬件桥梁的特殊地位,其看上去比一般的软件系统更加的难以理解,因为其核心部分往往包含许多直接针对 CPU,内存和 I/O 端口的操作。现在有许多公开源代码的操作系统,可供随时下载和阅读,但是如果没有些许实际开发的经验,往往会深陷代码的汪洋大海中, “一叶障目,不见泰山” ,并且这些代码的细节之间经常互相关联,要理解起来很不容易。而动手开

12、发一个简易的操作系统,从底层原理一步一步实现最基本和最简单的功能,到最后积累成一个简单的操作系统模型,最终达到为以后阅读大型操作系统(例如 Linux)的源代码打下基础的目的。作为一个计算机系并有志于从事计算机相关行业的大学生来说,很多本科时期计算机相关科目的学习都仅仅是“纸上谈兵 ”,缺乏实际操作,更谈不上实际应用,这对以后的深入学习和长期发展非常不利。例如:汇编课程学习的大部分内容都使用 8086/8088 的16 位实模式作为学习蓝本,而现在操作系统因为大内存的使用, 基本全部是 32 位保护模式,虽然语法等基础没有变化,但是其 32 保护模式的架构思想在汇编课程中却没有提及到;作为系统

13、开发利器的 c 语言,其课程学习只是掌握表面语法,如果没有深入地应用,没有研究其在机器层面的原理,很多精髓都无法掌握,也就谈不上真正掌握 c 语言;而对于学习操作系统本身,如果没有阅读经典操作系统的源代码或者尝试去做系统开发这方面的实践,对于其诸多概念和原理是无法深入理解的,只能停留在表面理解,无法做到心中有数,就更谈不上创新了。本文试图通过这么一个“麻雀虽小,五脏俱全”操作系统的开发,达到复习并总结本科时期诸多科目的目的,包括:x86 汇编语言,C 语言,计算机组成原理,微机原理,数据结构,操作系统,而事实上,在基本完成毕设,撰写论文之际,对这几门课程的确有了更新更高层次的理解,很多当时只是

14、浮于表面的概念现在都能够或多或少地落实到代码并能够亲自实现和完善,同时也初步具备了自己阅读和分析大型操作系统源代码的能力。华北电力大学本科毕业设计(论文)21.2 国内外研究现状操作系统并不是与计算机硬件一起诞生的,它是在人们使用计算机的过程中,为了满足两大需求:提高资源利用率、增强计算机系统性能,伴随着计算机技术本身及其应用的日益发展,而逐步地形成和完善起来的。操作系统的发展经历了手工操作(无操作系统) 、批处理系统、多道程序系统、分时系统、实时系统、通用操作系统。如今,概念意义上的操作系统和通俗意义上的操作系统差距越来越大,通俗意义上的操作系统为了方便而把最普通的包和应用程序的集合包括在操

15、作系统内,而随着操作系统的发展,一些功能更强的“第二类” 操作系统软件也被包括进去。在今天,没有图形界面和各种文件浏览器已经不能称为一个真正的操作系统了。另一方面,操作系统的发展和计算机硬件的发展紧密联系,而从计算机硬件发展的角度来看,操作系统的发展经过了大型机时代操作系统、小型机时代操作系统(Unix)和个人计算机时代操作系统。大型机时代。早期的操作系统非常多样化,生产商生产出针对各自硬件的系统。每一个操作系统都有很不同的命令模式、操作过程和调试工具,即使它们来自同一个生产商。最能 反映这一状况的是,厂家每生产一台新的机器都会配备一套新的操作系统。这种情况一直持续到二十世纪六十年代 IBM

16、公司开发了 System/360 系列机器。尽管这些机器在性能上有明显的差异,但是他们有统一的操作系统OS/360。OS/360 的成功陆续地催化出 MFT、MVT、SVS、 MVS、MVS/XA、MVS/ESA、OS/390 和 z/OS。 小型机和 UNIX 的崛起。UNIX 操作系统是由 AT&T 公司开发出来的。由于它的早期版本是完全免费的,可以轻易获得并随意修改,所以它得到了广泛的接受。后来,它成为开发小型机操作系统的起点。由于早期的广泛应用,它已经成为的操作系统的典范。不过,它始终属于 AT&T 公司,只有那些能负担的起许可费的企业才用得起,这限制了它的应用范围。 早期的操作系统是

17、可以被用户软件所利用的功能的集合。一些有能力的公司发展更好的系统,但他们不支持其他公司硬件的特性。 60 年代末 70 年代初,几种硬件支持相似的或提供端口的软件可在多种系统上运行。早期的系统已经利用微程序来在他们的系统上实现功能。事实上,除了 360/165 和360/168 外,360/40 之后的大部分 360 系列的机器都实行微程序设计。 华北电力大学本科毕业设计(论文)3个人计算机时代。Apple, DOS 和以后微型处理器的发展使计算机的应用普及至中小企及个人爱好者。而计算机的普及又推动了硬件组件公共接口的发展(如 S-100,SS-50,Apple II,ISA 和 PCI 总线

18、) ,并逐渐地要求有一种“标准” 的操作系统去控制它们。在这些早期的计算机中,主要的操作系统是 8080/8085/Z-80 CPU 用的 Digital Researchs CP/M-80,它建立在数码设备公司(Digital Research)几个操作系统的基础上,主要针对 PDP-11架构。在此基础上又产生了 MS-DOS(或 IBM 公司的 PC-DOS) 。这些计算机在ROM(只读存储器)都有一个小小的启动程序,可以把操作系统从磁盘装载到内存。IBM-PC 系列的 BIOS 是这一思想的延伸。自 1981 年第一台 IBM-PC 诞生以来,BIOS 的功能得到不断地增强。 随着显示设

19、备和处理其成本的降低,很多操作系统都开始提供图形用户界面。如:许多 UNIX 提供的 X Window 一类的系统、微软的 Windows 系统、苹果公司的 Mac 系统和IBM 公司的 OS/2 等。最初的图形用户界面是由 Xerox Palo Alto 研究中心 70 年代初期研发出来的,之后被许多公司模仿,继承发展。1.3 主要研究内容1. 实现一个能够在裸机上运行的简易的操作系统。 该操作系统在保护模式下运行,是一个多任务的操作系统,可以进行任务调度以及任务之间的通信。 该操作系统具有自己的硬盘驱动程序,并实现一个简易的文件系统,能够实现基本的文件操作系统调用。 该操作系统具有简单的内

20、存管理功能。 该操作系统使用键盘和显示器作为基本的输入输出系统。 该操作系统具有简易的命令行风格的用户界面,实现一些主要的操作系统命令。2. 在时间允许的情况下,进一步改善用户界面,能够实现一个简易的图形用户界面,可以使用鼠标进行操作,并能够输出声音(选做) 。 3. 将已完成的简易操作系统制作成软盘镜像文件,可在虚拟机中运行。4. 将已完成的简易操作系统制作成光盘在真机上运行(选做) 。5. 撰写毕业论文。6. 答辩。华北电力大学本科毕业设计(论文)4华北电力大学本科毕业设计(论文)5第 2 章 操作系统运行环境及运行原理简述2.1 计算机系统硬件组成简述如图 2-1 所示,这是一个计算机系

21、统硬件组成的简单模型。2.1.1 总线贯穿整个系统的是一组电子管道,称作“总线” ,它携带信息字节并负责在各个部件之间传递。通常总线被设计成传送定长的字节块,也就是“字” (word) 。一个字的字节数(被称为“字长” )是一个基本的系统参数,在各个系统中可能不相同。现在的很多机器字长有的是 4 个字节(即 32bit) ,有的是 8 个字节(即 64bit) 。 12.1.2 I/O 设备输入/输出设备(I/O 设备)是系统与外部世界的联系通道。如图 2-1 所示,示例系统包括 4 个 I/O 设备:作为用户输入的键盘和鼠标,作为用户输出的显示器,以及用于长期存储数据和程序的磁盘驱动。每个

22、I/O 设备都通过一个“控制器”或者“适配器”与 I/O 总线相连。 “控制器”和“适配器”之间的主要区别是它们的封装方式。 “控制器”是置于 I/O 设备本身或者系统的主板上的芯片组内,而“适配器”是是一块插在主板插槽上的卡。但是这两者的任务一样的,它们都负责在 I/O 总线和 I/O 设备自检传递和翻译信息。CPUALU寄存器文件PC总线接口 I/O 桥主存储器图形适配器 磁盘控制器USB 控制器磁盘鼠标 键盘 显示器系统总线 存储器总线I/O 总线扩展插槽图 2-1 计算机系统硬件组成的简单模型华北电力大学本科毕业设计(论文)62.1.3 主存主存是一个临时存储设备,在处理器执行程序时,

23、用来存放程序和程序所处理的数据。从物理组成的角度来说,主存是一组动态随机存取存储器芯片组成的,从逻辑来说,主存就是一个线性的字节数组,每一个字节都有唯一的地址,这些地址从 0 开始。一般来说,组成程序的每条机器指令都由不同数量的字节构成,与 C 程序变量相对应的数据项的大小是根据类型变化的。2.1.4 处理器 中央处理单元(CPU) ,简称处理器,是解释和执行存储在主存中指令的引擎。处理器的核心是一个字长的存储设备,称为程序计数器(PC) ,在任何时刻,PC 都指向主存中的某条机器语言指令。从系统通电开始,直到系统断电,处理器都一直在不断地执行程序计数器所指向的指令,再更新程序计数器,使其指向

24、下一条需要执行的指令,这条指令不一定和上一条执行的指令相邻。处理器看上去是按照一个非常简单的指令执行模型来操作的,这个模型是由指令集结构决定的。这样的简单操作并不多,而且操作是围绕主存、寄存器文件、和算术逻辑单元(ALU)进行的。寄存器文件是一个小的但是高速的存储设备,由一些 1 字长的寄存器组成,每个寄存器有唯一的名字和特别的使用方式。而 ALU 则负责计算,计算数据和地址。下面是一些简单操作的例子,可以通过这些例子更好地了解 CPU 的各个部件在 CPU 工作的作用和工作原理。CPU 在执行的要求下,可能会执行以下操作:a) 加载:把一个字节(或者一个字)从主存复制到寄存器,寄存器里原来的值被覆盖。b) 存储:把一个字节(或者一个字)从寄存器复制到主存的某个位置,以覆盖内存中该位置原来的值。c) 计算:把两个寄存器的内容复制到 ALU,ALU 对这两个字做算术运算,并将结果存在一个寄存器中,寄存器里原来的值被覆盖。d) 跳转:从指令中抽取一个字,并将这个字复制到程序计数器(PC)中,实现跳转。e) 处理器看上去指示它的指令集结构的简单实现,但是实际上现代处理器使用了非常复杂的机制来加速程序的执行。所以,可以这样区分“处理器的指令集结构”和“微体系结构”:“指令集结构描述的是每条机器代码指令的效果” ,而“微体系结构”描述的是处理器实际上是如何实现的。

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

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。