毕业论文 计算机保护模式设计.doc
《毕业论文 计算机保护模式设计.doc》由会员分享,可在线阅读,更多相关《毕业论文 计算机保护模式设计.doc(89页珍藏版)》请在三一办公上搜索。
1、开题报告计算机技术高速发展的今天,对于计算机系统底层技术的掌握,已经到了至关重要的时候,尤其是操作系统、编译原理等核心技术的研究。这些核心技术,直接关系到一个公司、一个国家是否有自己真正知识产权的问题。操作系统和编译原理是计算机领域的两个重大课题。之所以说它们重大,是因为这两个方向既重要(计算机的核心技术)又庞杂。随着硬件的不断升级和各种相关技术的发展,(由于INTEL与AMD公司竞争的越来越激烈,CPU的更新速度会越来越快J,而其结构也会相应发生更大的改变。)操作系统也会随之不断更新和发展。如现在基于网络的分布式操作系统、基于多个CPU的多处理机操作系统等等。现在CPU最新的研究方向是“乱序
2、发射”,当它有了更新的发展之后,相信操作系统还会随之做相应的改变。对于编译器的研发也是极具挑战的。由于编译原理本身涉及很多的算法,加之又与CPU有着紧密的联系,所以能够对其进行深入研究的人为之甚少。不用说对代码优化,就是使用yacc工具产生一个语法分析器的人,在中国的本科生中也不是很多。那么,研究它们有何意义呢?很多软件开发人员觉得没有必要过深的去研究这些核心技术。“我们大多是搞应用的,更应关注的是如何把应用做好,如何给企业带来更大的利润,而不应该去把时间浪费在研究底层上面,而且又那么难懂、麻烦”。通过分析这句话,可以得出这样一个结论:应用简单,我们就做。而麻烦、难懂的东西,我们不做。然而我却
3、不这样认为。作为应用软件的开发人员,我们当然应该更多的关注如何把应用做好,如何使用户操作起来更加简便。但是,如果不了解系统的底层,不了解系统的运行原理,我们在以后就会遇到很多麻烦,也很难做出好的应用程序。可以举个现实的例子,我们花了很长时间学习了一种新的技术。如VC(MFC的结构很难懂呦L)。但计算机行业里新技术很快就会过时,又会出现更新的技术。由于项目要求必须采用新的技术和语言,所以我们只能再去学习。于是我们就在一个又另一个新技术之间疲于奔命,当我们再也没有精力去学习的时候,我们也就随着新技术的出现而被淘汰了L。可悲!可叹!而中国的软件程序员的命运大多如此。正所谓 “无源之水、无本之木”。为
4、什么会这样呢?这当然有程序员本身的原因,但我觉得更多的还是社会导向的原因。如果我们不是这样急功近利,多花一些时间去研读一下系统的底层,那我们的情况就会大不一样。我们会发现,其实这些所谓的新技术,大多不过是商家为了商业的目的而做的一些“装簧”罢了。举个例子,如“回调函数”其实就是一个指针函数,钩子函数就是一种特殊的回调函数,其实还是一个指针函数。它们来做什么用的呢,找段代码分析一下我们就会发现,原来是为了实现软件框架而使用的一种技术。还有指针,其实就是地址的意思。还搞的特别神秘似的L。磨刀不误砍柴功!所以我们做事情搞学问就要踏踏实实。尤其是在中国,这一点就显得更为重要了。下面我就要一步一步进入我
5、的正题了,关于学习保护模式的意义。首先引入www.oldLinux.org论坛上的一个帖子。它是关于学习Linux内核意义的讨论,这又与保护模式有什么关系呢?当然有关系了,而且还有很强的联系(否则我这段企不是没有任何意义了J)。应该说80386不仅与Linux有紧密的联系,而且它还和其它在INTEL CPU上开发的很多操作系统有着紧密的联系。先让我们来看一下他们的讨论吧。我想无论做什么事,考虑什么问题,首先一点应该知道这件事的到底有何意义。即所谓的出师有名,所以我提出这个问题,大家来讨论一下学习Linux的重大意义在那里。我曾和我身边的人说我正在学习Linux内核,一些人觉得这个很深奥,一些人
6、很不屑。他们说学习它有什么意义吗?Linux red hat 才50元一套,难道你想自己开发一个操作系统?即使你开发出来了,别人会用吗?而且学习底层的东西要学的东西太多,花的精力也太多。这有必要吗。现在只要学好java就能赚钱,还不如把这些时间放到学习j2ee的好。多看看数据结构和算法。以后挣钱是肯定的。你开发出一套自己的操作系统又能挣多少钱?况且 Linux 很多公司做的已经相当成熟,你做出来的东东会有人用吗?所以这个只能玩玩,没有多大意义。 面对上述的说法你们的想法是什么?难道学习Linux内核只能是玩玩而以吗? by lgr 学习Linux内核是为了更好地了解一个操作系统的运行原理,从而
7、能够轻松地理解几乎所有运行在其上的所有软件的工作原理,并能为应用软件的开发打下扎实的基础。一个真正的编程高手是肯定对操作系统的工作原理有一定的了解的,而且了解越深就能编制出越好的软件来。也许我说的有些绝对,但几乎没有人会完全反对我的这种论调。当然,学习内核还有很多其他原因。作为理解嵌入式系统工作原理、更好地熟练地掌握C语言、了解硬件与软件的交互关系等等。如果学习的直接目的只是为了挣钱,那么我认为这个目的或目的太短浅。钱是为了生活、生存,当然也是富有的表现。但它并不能代表你的精神生活有多么得充实。以我之见,人活着的最根本目的是为了追求快乐、幸福。但有了很多钱并不就很快乐。君不见富翁跳楼自杀者现象
8、吗?照理他们这种做法是荒唐的,因为已有大把大把的钱。很可惜,人不是一般动物。人还需要精神享受。因此,如果在学习中不仅能掌握基础知识(我把内核当作基础知识),还能从学习基础知识中获得乐趣,这也不免是一件一举两得的事。若自己想编制自己的操作系统,这也可以,只要乐在其中:)说白一点,学习操作系统的工作原理,主要目的是促进应用程序的编程。理解内核你就能用更好的思路编制应用程序,从而。因此娱乐与生活最终还是可以统一的:) by 赵烔 Linux内核完全注释的作者c语言高手通常会或多或少的了解汇编语言c语言专家,或多或少需要浏览c标准库源代码甚至编译器源代码优化c或汇编语言的性能,或多或少需要了解cpu的
9、运算机制编写操作系统,或多或少需要了解cpu的运作机制 by engumen Linux高手看一下梁肇新的编程高手缄言,就知道一个程序员如果不知道操作系统是干什么,不知道数据结构,不知道计算机体系结构,不了解编译器对于一个程序员来说是干什么的,而只是一味地追求java,.net这个编程工具,那么这个程序员肯定会陷入java,.net挖的看起来像金子般的坑,而无法自拔! by love-centry 论坛版主从上面几位高手的讨论中我们可以看出,在他们眼里学习Linux内核有多么的重要了。既然这些大“牛”们都认为学习Linux很重要,对于我们这些“菜鸟”,当然应该顺着光辉方向勇往直前了J。Linu
10、x的开源给了我们机会,一窥一个真正的,强大的操作系统到底是如何工作的。在真实的操作系统里,处理机是如何分配的,进程是如何体现的,文件管理又在系统中占有怎样的位置呢,这些疑问终于可以通过对Linux源代码的分析而得到。使我们不光只是在操作系统的原理课上知道一些它的原理,而且还真的感受到操作系统确实是在真正运行着的,那种只见树木不见森林的状况有了很大的改观。然而要想看懂Linux这么庞大的东西,不知道“保护模式”是不成的。操作系统是直接在硬件上运行的。它在软件与硬件之间搭起了一座桥。软件必须通过操作系统才能与硬件沟通。而硬件同样也需要操作系统将它完成的结果告诉给软件,所以操作系统的地位就显得格外重
11、要了。它是不允许其它软件对其进行破坏的,否则企不是整个世界就要崩溃了L,所以就要对其进行保护。用软件的方法行吗?当然是不行了。软件来保护软件,那谁又来保护它呢。(都快把我绕晕了L)。看来还是硬件进行保护来的直接。那么它应该如何进行保护呢?(终于切入正题了J)当然是保护模式了。所以在我进行Linux内核源代码的研读之前,来仔细研究一下保护模式的工作原理是很有必要的。那么关于保护模式我们都要了解那些东西呢?我觉得至少要知道下面几个方面的知识:什么是实模式,什么是保护模式、为什么要使用保护模式,如何从实模式转到保护模式、在保护模式下硬件上是怎样实现分段、分页的,从而保护操作系统的等等。上面我已经对我
12、要写的论文的目的和意义做了一个说明,就算是我这篇论文的开题报告了。以后的时间里我就要逐步、细致的讨论保护模式的方方面面。在这里,先预祝我们:一路成功J。前言从Linux1.0的正式发布,Linux就给软件行业带来了一个惊喜。它结构的完整性、功能的强大性、源代码的开放性、发展的快速性,每一项都使得人们不得不将它另眼相看。Linux用短短的十几年的时间走完了Unix几十年才走完的路程。由于Linux的开源使得全世界的hacker们都能够阅读它的源代码,提出自己的想法,并将他们优秀、经典的想法放到Linux中来实现。正是这种集体的力量才使Linux发展的如此迅速。而这种开源的方式也使得Linux的源
13、代码得到了全世界hacker们的严格检查,使得它的代码更加精简、功能更加强大。Windows的图形界面带领普通用户进入了计算机的世界,这当然是好的一面,微软也因此得到了巨大的回报。然而由于商业的关系,使得我们(特别是从事计算机专业的人们)无法看到它的内部核心代码,这在我们开发自己应用程序的时候,受到了很大的约束。虽然开发简单了,操作也方便了(这里是指Windows给我们提供了大量的API,使我们在开发上方便了),但它同样给我们带来了巨大的损失,这一点相信学过MFC的人都深有感处。说明程序员只能在MFC框架内进行程序开发,而不能超出其框架,否则,付出的代价是巨大的。而由于项目的需要,MFC的框架
14、可能不能满足项目的需要,这时矛盾就产生了。所以它是一把双刃剑。如果我们一味的依赖微软这种不开源的产品,不能了解它的核心,其结果就是,使我们这样一个世界大国,却在软件业无法形成自己真正的产品。也就是说,如果微软不给我们提供操作接口,我们上层的产品很多就无法进行开发。WPS与Word在字处理软件的竞争就很好的证明了这一点。(说句实说,WPS在功能上和操作的方便性上根本无法与Word比较,如果是我的话,我是绝对不会在有Word的情况下去使用WPS的,除非。)导致这种结果的是什么原因呢?无非是我们对Windows里面的机制不了解,不知道它内部是如何实现的。当然还有硬件上的原因(比如CPU等,不过,中国
15、龙芯CPU系列的生产给我们带来了希望J)。如何去改变这一现象,是摆在我们每一个人(这里指软件开发人员)面前的一道难题。恰恰是Linux的出现,将我们面前的这道不可逾越的鸿沟轻而易举的填平了。所以全世界的软件开发人员投入了Linux的大军中,学习它,使用它,品味它,修善它。它给我们带来了无限的商机,无限的利益。我们终于可以有我们自己的产品了,不再受制于Windows。因为我们可以看到Linux的所有源代码,并可以将我们的思想加入到其中,使它为我们所用。我们看到了Linux的好处,但如何才能真正的掌握Linux,将它用好,并发挥的淋漓尽致呢?当然是阅读它的源代码了,难道还有比这个更直接更好的方法吗
16、L。不过Linux的源代码是如此庞大,岂能是谁说阅读就能读得了的。现在遇到问题了,我们下一步就是如何解决问题J。解决的方法很简单,就是在阅读它之前先对一些基础知识进行一下饿补。Unix操作系统设计、80386保护模式、接口原理等等。L这么多东西要补呀!那自是当然,Linux操作系统可不是玩具J。不过我们(软件开发人员)不可能是一点基础没有的人。(否则我真不知道你大学这四年里到底学了些什么L)我想,这里一个很重要的,也是对于阅读代码很有帮助的就是80386保护模式的知识了。(啊!终于写到正题了。J)。为什么要学习80386保护模式呢?有以下几点原因:第一、 Linux最开始就是在一台INTEL
17、80386上开发的。第二、 INTEL直到80386才真正的实现了32位的保护模式(80286是16位的保护模式),以后的机型基本上都采用这种模式,框架变化不大。而软件当然要跟着硬件“跑”了,否则“皮之不存毛之焉附”。第三、 操作系统要和硬件和软件两方面打交道。而80386保护模式为操作系统的实现和保护提供了硬件保证和支持。在前言的最后,我还要介绍一下我的章节安排。这篇论文共分为九部分。80386保护模式概述,介绍了80386的一些基本概念。80386体系架构综述,主要描述80386中对操作系统进行保护的机制的总体结构。描述符介绍了它的在保护模式中的基本特征及其作用。内存管理介绍了80386对
18、内存进行管理的一系列保护机制。门描述符是描述符的一种特殊形式,之所以在这里单独列出一个章节是因为它在保护模式中的内容很多,单独拿出一章来可以更好的将其描述清楚。任务管理说明了在保护模式下,多个任务之间是如何进行任务切换的从而实现多任务处理功能的。中断与异常处理不再使用实模式下的中断向量表,80386对其进行了另行处理,使得中断与异常处理也纳入到了保护的机制下。输入输出保护实现了对I/O操作的保护,只有操作系统允许的情况下,用户程序才可以对I/O进行操作。操作系统引导这一章主要是说明Linux是如何引导启动的,从而将一个真正的、强大的操作系统运行起来的。好了,说了这么多没有一点实质的东西,这可不
19、是我的本色。下面的章节我们就开始我们的80386保护模式的学习之旅吧J!80386保护模式概述INTEL对80386处理器的描述The 80386 is an advanced 32-bit microprocessor optimized for multitasking operating systems and designed for applications needing very high performance. The 32-bit registers and data paths support 32-bit addresses and data types. The pr
20、ocessor can address up to four gigabytes of physical memory and 64 terabytes (246 bytes) of virtual memory. The on-chip memory-management facilities include address translation registers, advanced multitasking hardware, a protection mechanism, and paged virtual memory. Special debugging registers pr
21、ovide data and code breakpoints even in ROM-based software.80386是一种高级32位多任务微处理器,这种处理器是为高要求的应用而设计的。32位的寄存器与数据路径支持32位的地址和数据类型。处理器能寻址到4G的物理内存和64T的虚拟内存。内存管理设备包括地址转换寄存器、高级多任务硬件、保护机制和分页虚拟内存。专门的调试寄存器,即使在只读寄存器软件中也提供代码和数据的断点调试功能。什么是保护模式我们只要到中输入“protected mode”这个关键字,我们就可以找到很多链接,在What is protected mode?The 808
22、8 CPU used in the original IBM PC was not very scalable. In particular, there was no easy way to access more than 1 megabyte of physical memory. To get around this while allowing backward compatability, Intel designed the 80286 CPU with two modes of operation: real mode, in which the 286 acts like a
23、 fast 8088, and protected mode (now called 16-bit protected mode). Protected mode allows programs to access more than 1 megabyte of physical memory, and protects against misuse of memory (i.e. programs cant execute a data segment, or write into a code segment). An improved version, 32-bit protected
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文 计算机保护模式设计 计算机 保护 模式 设计

链接地址:https://www.31ppt.com/p-3972314.html