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

2019-03-16 19:19

摘 要

作为学习操作系统的新手,商用的操作系统设计复杂,代码量大,不适合作为学习的蓝本,如果能够从零开始开发一个小型的操作系统雏形,不但可以全面深入地了解操作系统的工作原理,还可以为读大型开源操作系统的代码积累经验。

这个取名为MyOS的从头开始开发的系统虽然结构简单,但是具备了内存管理、多任务控制、任务切换、基本输入输出管理并且运行在32位保护模式下,在用户接口方面,它采用的是图形界面和命令行界面混合的方式来与用户交互,在程序接口方面,设计了部分API,主要是针对于图形显示和计时器两方面,本文利用这些API,实现了“贪吃蛇”、“时钟计时器”两个例子程序。

本文首先介绍操作系统运行所依赖的硬件系统组成,然后重点地介绍了操作系统的基本特征和主要功能,接着详细地说明了80386以上Intel CPU所运行的贯穿整个操作系统开发的32位保护模式,接下来简述了MyOS的开发环境和语言,以及MyOS的基本运行原理,然后重点介绍了MyOS的设计与实现,最后叙述MyOS的程序接口API,以及利用MyOS中的API设计的应用程序。

关键词:操作系统,运行原理,32保护模式

I

ABSTRACT

As a fresh man who want to learn Operating System deeply, commercial using OS are 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 thesis 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 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 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 briefly 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 Mode

II

目 录

摘 要 .......................................................................................................................................... I ABSTRACT ................................................................................................................................... II 第1章 绪论 ................................................................................................................................. 1

1.1 选题背景和意义 ............................................................................................................. 1 1.2 国内外研究现状 ............................................................................................................. 2 1.3 主要研究内容 ................................................................................................................. 3 第2章 操作系统运行环境及运行原理简述 ............................................................................. 4

2.1 计算机系统硬件组成简述 ............................................................................................. 4

2.1.1 总线 ....................................................................................................................... 4 2.1.2 I/O设备 ................................................................................................................. 4 2.1.3 主存 ....................................................................................................................... 5 2.1.4 处理器 ................................................................................................................... 5 2.2 操作系统的基本特性 ..................................................................................................... 5

2.2.1并发性 ...................................................................................................................... 6 2.2.2共享性 ...................................................................................................................... 6 2.2.3虚拟性 ...................................................................................................................... 6 2.2.4异步性 ...................................................................................................................... 7 2.3 操作系统的主要功能 ..................................................................................................... 7

2.3.1 处理机管理 ........................................................................................................... 7 2.3.2 存储器管理 ........................................................................................................... 7 2.3.3 设备管理 ............................................................................................................... 8 2.3.4 文件管理 ............................................................................................................... 8 2.3.5 用户接口 ............................................................................................................... 9 2.3.6 程序接口 ............................................................................................................... 9

第3章 32位保护模式介绍 ...................................................................................................... 11

3.1 32位保护模式简述 ...................................................................................................... 11

3.1.1 存储管理机制和地址转换机制简介 ................................................................. 11 3.1.2 保护机制 ............................................................................................................. 12 3.2 分段管理机制 ............................................................................................................... 15

3.2.1 段定义 ................................................................................................................. 15 3.2.2 虚拟地址到线性地址的转换机制 ..................................................................... 15 3.2.3 虚拟地址到线性地址的转换机制所需要的数据结构和寄存器 ..................... 16 3.3 分段管理机制所依赖的两类寄存器 ........................................................................... 17

3.3.1 控制寄存器 ......................................................................................................... 17 3.3.2 系统地址寄存器 ................................................................................................. 18 3.4 系统段描述符、门描述符、任务状态段 ................................................................... 20

3.4.1 系统段描述符 ..................................................................................................... 20 3.4.2 门描述符 ............................................................................................................. 21 3.4.3 任务状态段TSS ................................................................................................. 22 3.5 控制转移 ....................................................................................................................... 23

3.5.1 任务内无特权级变换的转移 ............................................................................. 23 3.5.2 任务内不同特权级的变换 ................................................................................. 24

1

3.5.3 任务间控制转移----“任务切换” .................................................................... 26

第4章 MyOS具体设计与实现 ............................................................................................... 28

4.1 MyOS的开发语言、开发流程以及开发环境简述 ................................................... 28 4.2 MyOS运行原理简述 ................................................................................................... 29

4.2.1 引导扇区 ............................................................................................................. 29 4.2.2 加载内核 ............................................................................................................. 30 4.2.3 执行系统内核 ..................................................................................................... 30 4.3 MyOS内核设计与实现 ............................................................................................... 31

4.3.1 内存管理 ............................................................................................................. 31 4.3.2 定时器设计 ......................................................................................................... 36 4.3.3 FIFO缓冲区设计 ............................................................................................... 41 4.3.4 基本输入输出管理 ............................................................................................. 43 4.3.5 多任务管理 ......................................................................................................... 46 4.3.6 图形界面的设计 ................................................................................................. 54 4.3.7 编程接口API设计 ............................................................................................ 56

第5章 利用MyOS的API编写程序并运行 .......................................................................... 60

5.1 表秒计时器 ................................................................................................................... 60 5.2 游戏“贪吃蛇” ........................................................................................................... 61 第6章 总结 ............................................................................................................................... 68 参考文献 ....................................................................................................................................... 69 致 谢 ....................................................................................................................................... 70

2

华北电力大学本科毕业设计(论文)

第1章 绪论

1.1 选题背景和意义

众所周知,一个成型的操作系统往往非常复杂,因为考虑到操作系统作为软硬件桥梁的特殊地位,其看上去比一般的软件系统更加的难以理解,因为其核心部分往往包含许多直接针对CPU,内存和I/O端口的操作。现在有许多公开源代码的操作系统,可供随时下载和阅读,但是如果没有些许实际开发的经验,往往会深陷代码的汪洋大海中,“一叶障目,不见泰山”,并且这些代码的细节之间经常互相关联,要理解起来很不容易。而动手开发一个简易的操作系统,从底层原理一步一步实现最基本和最简单的功能,到最后积累成一个简单的操作系统模型,最终达到为以后阅读大型操作系统(例如Linux)的源代码打下基础的目的。

作为一个计算机系并有志于从事计算机相关行业的大学生来说,很多本科时期计算机相关科目的学习都仅仅是“纸上谈兵”,缺乏实际操作,更谈不上实际应用,这对以后的深入学习和长期发展非常不利。例如:汇编课程学习的大部分内容都使用8086/8088的16位实模式作为学习蓝本,而现在操作系统因为大内存的使用, 基本全部是32位保护模式,虽然语法等基础没有变化,但是其32保护模式的架构思想在汇编课程中却没有提及到;作为系统开发利器的c语言,其课程学习只是掌握表面语法,如果没有深入地应用,没有研究其在机器层面的原理,很多精髓都无法掌握,也就谈不上真正掌握c语言;而对于学习操作系统本身,如果没有阅读经典操作系统的源代码或者尝试去做系统开发这方面的实践,对于其诸多概念和原理是无法深入理解的,只能停留在表面理解,无法做到心中有数,就更谈不上创新了。

本文试图通过这么一个“麻雀虽小,五脏俱全”操作系统的开发,达到复习并总结本科时期诸多科目的目的,包括:x86汇编语言,C语言,计算机组成原理,微机原理,数据结构,操作系统,而事实上,在基本完成毕设,撰写论文之际,对这几门课程的确有了更新更高层次的理解,很多当时只是浮于表面的概念现在都能够或多或少地落实到代码并能够亲自实现和完善,同时也初步具备了自己阅读和分析大型操作系统源代码的能力。

1


毕业论文终稿(一个简易操作系统的实现).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018两会要点:防止因病致贫、因病返贫

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: