李庚睿的毕业论文(保护模式) - 图文 下载本文

标题 作者 说明 毕业论文 李超 ?所有版权作者保留 题目 时间 页数 80386保护模式与Linux内核引导分析 2005-4-1 共91页 路漫漫其修远兮,吾将上下而求所。

物理地址 = 段基址 << 4 + 偏移地址

物理地址等于段基址左移4位再加上偏移地址。

·而保护模式下的物理地址要通过段描述符才能计算出来。对于这一点我将在后面做详细介绍。

·在16位地址总线上,段界限最大为64K。也就是说,一个段最大寻址范围只能从段基址到它向后寻址64K的地方,再大点它也够不到了?。而且每一个段的大小是固定的,而32地址总线可以访问的最大地址空间为4G。而且还可以根据需要,设置段界限的大小和设置段界限的单位长度。它提供了两种单位长度,一种是以字节为单位,一种是以4K为单位。根据段描述符的G位来选择。这一点我到后面还会详细论述。现在只要知道在32位地址总线下,段界线可以是1M或4G就可以了。

·在实模式下不进行段保护,而在保护模式下却可以对段进行细致的保护。

如:段是否可用,段的大小是多少,是代码段还是数据段,段的特权级是多少等等。而在实模式下这些是不存在的。

·在实模式下段寄存器是16位的,在计算物理地址时是通过移位然后加偏移地址来实现的。在32位保护模式下,段寄存器同样是16位的,但这些在实模式下存放段基址的寄存器到了保护模式下,却用来存放段选择子了。关于段选择子的概念我将在稍后介绍。

INTEL对几种模式的说明

The processing mode of the 80386 also determines the features that are accessible. The 80386 has three processing modes: 1. Protected Mode. 2. Real-Address Mode. 3. Virtual 8086 Mode. Protected mode is the natural 32-bit environment of the 80386 processor. In this mode all instructions and features are available.Real-address mode (often called just \mode\is the mode of theprocessor immediately after RESET. In real mode the 80386 appears to programmers as a fast 8086 with some new instructions. Most 第9页

标题 作者 说明 毕业论文 李超 ?所有版权作者保留 题目 时间 页数 80386保护模式与Linux内核引导分析 2005-4-1 共91页 路漫漫其修远兮,吾将上下而求所。

applications of the 80386 will use real mode for initialization only. Virtual 8086 mode (also called V86 mode) is a dynamic mode in the sensethat the processor can switch repeatedly and rapidly between V86 mode andprotected mode. The CPU enters V86 mode from protected mode to execute an 8086 program, then leaves V86 mode and enters protected mode to continueexecuting a native 80386 program. 80386处理模式还决定了它可访问的特性(不同的模式决定了不同的访问方式)。80386有三种处理方式: 1. 保护模式 2. 实模式 3. 虚拟86模式 保护模式本身是32位的80386处理器环境。在这种模式下所有的指令和特性是有效的。实地址模式(通常只称为 “实模式” )是处理器复位后就进入的模式。在实模式下,80386给程序员的感觉就像一个快速的8086,只多了一些新的指令。大多数80386应用程序仅使用实模式进行初始化工作。 虚拟8086模式(也称为V86模式),在某种意义上说是一个动态模式。处理器能反复、快速的在V86模式和保护模式之间转换。CPU从保护模式进入V86模式去执行8086程序,然后离开V86模式进入保护模式继续本地的80386程序。 为什么要使用保护模式

对于这个问题有很多解释。每一个学完80386机制的人,都能给你列举出一箩筐关于保护模式的好处。其实我在上面已经说了一些保护模式的优点。这里我又将其单独列举出来,算是对前面的一次总结与补充吧。

第一、它可以轻而易举的访问到1M空间以上的内存,不需要做什么特别的处理。这一点应该很好理解吧。因为80386是32位地址总线,而8088却是16位地址线。其实这一点并不是保护模式的特点,而是80386本身就具有的特点。 第二、保护模式可以在硬件上给系统软件和多任务的执行提供保护。保护机制既可以保护用户级程序不能直接访问系统级的数据段和代码段,也可以保护多个任务之间不能相互访问对方的私有数据。

第三、保护模式不但提供了分段机制而且还提供分页机制。那么分页机制又

第10页

标题 作者 说明 毕业论文 李超 ?所有版权作者保留 题目 时间 页数 80386保护模式与Linux内核引导分析 2005-4-1 共91页 路漫漫其修远兮,吾将上下而求所。

有什么好处呢?可以说是好处多多?。

·分页机制给了我们进一步对进程的保护机制。

·分页机制为我们提供了虚拟内存的实现。所谓虚拟内存是指,用有限的内存通过外存储器的配合来实现无限内存的假象,使得程序员在开发程序时,不用担心内存溢出。

·分页机制可以节省内存空间。每页的大小固定为4K。可以大大减少内存碎片的出现,并提高对内存操作的灵活性。

总结:在这一章中我主要介绍了80386的一些基本机制及为什么要使用80386保护模式原因。80386保护模式实际上起到了两个重要的作用,第一、可以访问更大的内存空间。一是采用了32位地址总线,二是可以使用虚拟内存来模拟更大的内存。第二、在硬件上对程序实现了保护。

第11页

标题 作者 说明 毕业论文 李超 ?所有版权作者保留 题目 时间 页数 80386保护模式与Linux内核引导分析 2005-4-1 共91页 路漫漫其修远兮,吾将上下而求所。

80386体系架构综述

下面这张图引自《IA-32 Intel Architecture Software Developer’s Manual》Volume 3:System Programming Guide,第二章。

这张图清晰的描述了各个寄存器之间的关系,使我们对INTEL80386架构有了一个整体的了解。

第12页