参考文献 39
基于IA32架构的操作系统基本功能的研究与实现
1. 绪论
1.1研究背景和意义
计算机操作系统(Operating System,简称 OS)是计算机软件最基本的组成部分,每当打开计算机操作系统就会自动启动,它是计算机系统的核心软件,具有管理计算机硬件资源、为用户提供界面操作、为应用程序提供调用接口等功能[1]。
计算机是由硬件和软件两大部分组成的,如图1所示,计算机硬件就是物理实体,它包括主机(处理器(CPU)、内存)、I/O设备(键盘、显示器、I/O接口等)以及其他一些外围设备(打印机、光盘等)。在此基础上为了方便用户使用还需要编制各种系统软件用来管理上述硬件设备,扩充机器的功能,这些系统软件的总和便称作操作系统。操作系统主要有五大功能:处理机管理、存储管理、设备管理、文件管理和作业调度[2]。
图 1 计算机系统组成示意图
站在计算机教育的角度,《操作系统》作为计算机及其相关专业的一门专业核心课程,是一门理论、实践与应用都很强的课程,其“复杂”、“深奥”、“抽象”的特点是初学者心中难以翻越的一座“大山”,仅仅靠学习理论知识是很难理解透彻的。
自己动手设计操作系统是深刻理解操作系统抽象理论知识的有效手段,但操作系统与计算机硬件关系密切,抛开硬件仅仅关注操作系统软件本身,依旧难以理解其核心部分的实现原理。
本项目立足学习者的角度,通过分析还原一个最简单操作系统的实现过程,为初学者们提供从理论到实践的参考,让大学生们更好地理解操作系统这门课程,对整个计算机学科有一个更深的理解。
与操作系统相应的处理器虽然已经发展到了64位,但本项目选择Intel IA32体系结构,具体实现选择80386处理器,因为这种架构结构较为清晰,且具有诸多为现代操作系统提供的优秀设计,如保护模式等,能够满足基本功能操作系统的开发。
1.2国内外发展趋势
2. 系统分析
2.1系统设计目标
本文立足于学习者的角度,为操作系统的学习者还原一个简易操作系统的实现过程,对深刻理解操作系统复杂、抽象的结构和原理起到辅助作用。
本文从硬件层面出发,一方面剖析IA32架构对操作系统软件设计所提供的支持,另一方面展现操作系统各模块的基本功能及其实现细节。本文所描述的操作系统期望达到如下设计目标:
1)建立引导扇区,实现操作系统的开机自启;
2)实现基于保护模式的操作系统基本功能,如内存管理、中断管理和多任务管理;
3)提供一系列基于C语言的API函数接口,如字符输出函数,以便上层用户程序可以藉此调用输出相关外设;
4)提供一个基于图形的命令行窗口,通过该窗口,用户能够运行操作系统提供的实用程序,或运行其他用户程序。
本着结构简单、易实现、能够完整运行的原则,在涉及到操作系统各模块具体算法的时候本项目都倾向于选择较简单易实现的方法,避免陷入深奥的具体算法中而忽略了对整个系统的理解。
2.2系统功能模块划分
从计算机的逻辑层次结构来看,操作系统位于硬件体系结构和用户程序之间,一方面负责管理计算机硬件资源,另一方面为用户和用户程序提供必要的服务。
通常,操作系统软件本身也设计为层次结构,底层为操作系统内核,直接面对硬件平台提供的接口,负责对硬件资源进行管理,包括内存管理模块、I/O设备管理模块以及多任务管理模块,这些模块都涉及到底层硬件知识,是操作系统最为核心的部分。 基于IA32架构的操作系统基本功能的研究+源程序(2):http://www.youerw.com/jisuanji/lunwen_24778.html