登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 计算机科学与技术 > 正文

一个X86架构的操作系统的实现毕业论文

 2020-07-02 22:37:55  

摘 要

操作系统作为计算机资源的管控者在资源分配和资源调度方面起着重要的作用。可以这样说没有安装操作系统对使用者来说是极不友善的,同时让操作人员直接对硬件进行处理也是极不安全的。

本操作系统的设计实现基于x86平台的复杂指令集。虽然内核只有不到40KB,但是基本实现了一个具有完整功能的操作系统。在整个设计实现过程中本人作为一个计算机专业的学生依然感到很多设计细节很难理解。操作系统所涉及的内容十分复杂可以说涉及到了本科阶段绝大部分的专业课,尤其是保护模式下的汇编语言编程,对C语言在内存基于栈的数据传递和处理。

作为一个占用内存空间极小的操作系统,BananaOS实现了实模式到保护模式的转变,内存管理,处理机的多任务调度,图形界面,类似DOS的命令行界面,对鼠标和键盘的响应和重要的文件系统的支持。

本文首先介绍了如何设计实现操作系统加电自检到主引导记录的设计再到内核加载的整个过程,而后又深入分析了x86架构的16位实模式与32位保护模式。之后详细介绍了内存管理,定时器,中断数据缓冲区的设计,多任务调度方法,以及为实现图形化界面而用到的图层概念,同时还为操作系统设计了API。

关键词:操作系统 x86架构 设计思想

An operating system implementation based on an x86 architecture

ABSTRACT

The operating system, as the controller of computer resources, plays an important role in resource allocation and resource scheduling. It can be said that not installing an operating system is extremely unfriendly for the user, and that it is also extremely insecure for the operator to handle the hardware directly.

The design of this operating system is based on the complex instruction set of the x86 platform. Although the kernel is only less than 40KB, it basically implements a fully functional operating system. Although I was a computer major student in the entire design implementation process, I still feel that many design details are difficult to understand. The content involved in the operating system is very complex. It can be said that most of the professional courses in the undergraduate stage, especially the assembly language programming in protected mode, are based on the stack-based data transfer and processing of C language.

As an operating system that occupies minimal memory space, BananaOS implements the transition from real mode to protected mode, memory management, multitasking of the processor, graphical interface, command-line interface similar to DOS, and responsiveness to mouse and keyboard. Support file system.

This article first introduced how to design the entire process from the design of operating system power-on self-test to the master boot record to the kernel loading, and then deeply analyzed the 16-bit real mode and 32-bit protection mode of the x86 architecture. After that, it introduced in detail memory management, timers, interrupt data buffer design, multi-task scheduling methods, and the concept of layers used to implement graphical interfaces. At the same time, an API was designed for the operating system.

Keywords: Operating System;x86 architecture ; Design idea

目录

摘要 I

ABSTRACT II

目录 III

第1章 绪论 1

1.1项目背景 1

1.2项目功能 1

1.3 本论文的组织结构 2

第2章 计算机组成与操作系统 3

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

2.1.1总线 3

2.1.2 I/O设备 3

2.1.3 存储设备 4

2.1.4 处理器 4

2.2 操作系统特性 4

2.2.1 并发性 4

2.2.2 共享性 5

2.2.3 虚拟性 5

2.2.4 异步性 5

2.3 操作系统主要功能 5

2.3.1处理机管理 5

2.3.2存储器管理 5

2.3.3设备管理 5

2.3.4文件系统 6

第3章 操作系统引导过程 7

3.1 阶段一:加电自检与 BIOS 7

3.2 阶段二:主引导记录(MBR) 7

3.3 阶段三:操作系统的内核载入 13

第4章 实模式与保护模式 14

4.1 32位保护模式和与16位实模式简介 14

4.1.1寻址方式 14

4.1.2操作系统的保护机制 14

4.2 全局描述表与中断描述表 14

4.2.1 全局描述表(GDT) 14

4.2.2 中断描述表(IDT) 15

4.3 保护机制 15

4.3.1 对任务的地址隔离 15

4.3.2 任务内的特权级 15

4.3 分段机制的地址转换 16

4.3.1 段定义 16

4.3.2 虚拟地址与物理地址的转换 16

4.3.3 数据段描述管理 16

第5章 BananaOS的设计与实现 17

5.1 项目开发环境与开发工具 17

5.2 内核功能的设计与实现 17

5.2.1 内存管理 18

5.2.2 定时器(timer)设计 21

5.2.3 基本输入输出(I/O)管理 26

5.2.4 任务管理 28

5.2.5 图像界面显示 31

5.2.6 接口API的设计 32

5.2.7 文件系统管理 33

5.3 BananaOS运行介绍 35

5.3.1 计时器应用 35

5.3.2 Beautiful ball 图形应用 36

5.3.3 色阶板应用 36

5.3.4 txt文档阅读器 37

第6章 总结 38

参考文献 39

第1章 绪论

1.1项目背景

操作系统作为人类对计算机操作的重要媒介对任何利用计算机工作学习的人来说都是不可缺少的。而且著名的操作系统Windows系列占有操作系统市场的大半江山,但是Windows操作系统作为微软公司的产品并不受我国控制,其核心更是不为我们所知。近来的中兴事件更为我们敲响警钟。如果我们的计算机操作系统被国外垄断的Windows所垄断一旦Windows停止对我们的服务后果不堪设想,这不是仅对个人的影响,而是对国家的毁灭性的打击,金融、网络安全、数据中心等一切依赖Windows操作系统的行业都会瞬间停摆。这对我们来说是不可预估的损失。而今虽然有很多的开源操作系统但是这些开源代码十分庞大,体系十分复杂。如今国内的操作系统虽然也有但是对新手不易上手,应用环境比较狭窄而且普及率几乎为零。

操作系统作为本科阶段较为重要的综合性科目,在计算机素质教育中占有重要作用,但是如今国内的教学也大多停留在“纸上谈兵”的阶段,虽然也有一部分高校开展了操作系统课程的相关实验但是并不全面。总是拿出一部分来讲解和开展实验。操作系统作为一门集合软件硬件与一身、能够使学生充分理解C语言与汇编语言、数据结构与算法、计算机组成原理、计算机网络、图形学、软件工程的综合性课程,对这门课的学习应该贯穿整个本科生涯。这对学生是十分有益的。

1.2项目功能

本项目将用汇编语言与C语言塑造一个拥有内存管理、任务调度、图形界面的一个完整的操作系统,虽然项目本身的代码远远没有Linux、Windows等主流操作系统多,但是却拥有完整的操作系统内核,同时也有供外部应用调用的系统API,用户可以通过键盘鼠标对计算机发出一系列的指令。

  1. 实现一个基于X86平台的能够在裸机上运行的操作系统。
  • 操作系统能够实现实模式向保护模式的转换,同时可以实现多任务应用合适的任务调度算法,当然任务是运行于32位的保护模式下。
  • 操作系统具有磁盘操作功能,能够操作FAT12的文件系统,实现文件系统并管理文件系统。
  • 操作系统能够进行内存管理,实现基本的内存分配,释放等功能。
  • 操作系统通过键盘显示器进行人机交互实现基本的I/O操作。
  • 操作系统具有类windows的图形界面,同时也有类windows的命令格式语法。
  1. 时间宽裕的情况下完善图形界面,实现鼠标对窗口操作。(选做)。
  2. 将操作系统制作为磁盘镜像,可以在qemu中运行。
  3. 可以通过USB启动盘直接通过调整BIOS以USB开启操作系统真机运行(选做)。

1.3 本论文的组织结构

第一章主要记述了论文的选题背景和项目的设计角度,从平台以及技术上对项目的设计方向进行限定。同时大概讲述了项目现实实现的功能和组件。

第二章通过必要的原理分析从理论上大致确定项目所涉及的理论知识和系统架构。结构化知识体系,方便更加深刻的理解操作系统的深层含义。

相关图片展示:

您需要先支付 50元 才能查看全部内容!立即支付

微信号:bysjorg

Copyright © 2010-2022 毕业论文网 站点地图