CPU保护模式DPL、CPL简易理解】的更多相关文章

现代INTEL CPU都有保护模式,实模式这两种CPU运行模式.当CPU加电,CPU初始化时就运行在是模式下,然后现代操作系统会从实模式跳转到保护模式! 为什么需要保护模式? 在最开始编程的汇编时代,程序员的工作就是读懂处理器指令,然后用这些指令来写程序完成工作!一个程序员要写一个程序,这个程序包括了驱动CPU,驱动内存,驱动磁盘等所有的代码,否则就是一颗裸CPU无法运行!后来每一个程序员都觉得这些驱动过程几乎一样,所以就开始构写操作系统,然操作系统来干这些事情!操作系统(这里指的是最原始的操作…
原文链接为:http://www.chinaunix.net/old_jh/23/483510.html 保护方式的体系结构 主要问题:          保护方式的寄存器模型          保护方式的描述符与页表项          保护方式的存储器管理与地址转换          多任务机制与保护实现          虚拟 8086 模式 一.保护方式的寄存器模型   新增四个寄存器 (指针 -----  指向内存中的特殊的数据表):  全局描述符表寄存器 GDTR  局部描述符表寄存…
Antz系统更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html Linux内核源码分析地址:https://www.cnblogs.com/LexMoon/category/1267413.html 在前几天的任务中,我们已经简单实现了MBR,直接操作显示器和硬盘操作来加载其他扇区的程序,我们这些任务都是为了进入保护模式做准备,虽然我们已经给出了jmp到保护模式的方法,但是我们还是需要理解保护模式下的一些特性,才能更好的实现我们…
整个代码对应内存线性地址分为四段,[gdt] [code32] [video32] [code16] 代码先在实模式[code16]下运行,code16中的cs就是系统分配的该程序物理地址的基址. 编译器会自动把其他段中的标号,编译成相对这个物理地址基址的偏移量. 其他段的物理真实地址就是这个基址+标号所表示的偏移量. label_begin  label_code32这些是标签,会编译成相对该程序物理地址基址的偏移量. 程序在内存中以二进制存在,cs指向程序在内存中开始的地方. Gdtptr…
这个系列文章主要目的是为了记录我个人学习保护模式后的总结与一点点的思考.我也是一个学习者,其中由错误在所难免,若各位朋友指出将不胜感激. 1. Intel CPU的运行模式概述 这里我将粗略介绍Intel IA-32 CPU和其64扩展所提供的运行模式,及各运行模式的特点. Intel IA-32架构一共提供了四种运行模式.分别是保护模式(protected mode).实地址模式(实模式,Real-address mode).系统管理模式(SMM).虚拟8086模式(Virtual-8086…
写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我. 你如果是从中间插过来看的,请仔细阅读 羽夏看Win系统内核--简述 ,方便学习本教程.   看此教程之前,问几个问题,基础知识储备好了吗?上一节教…
★PART1:32位保护模式下任务的隔离和特权级保护  这一章是全书的重点之一,这一张必须要理解特权级(包括CPL,RPL和DPL的含义)是什么,调用门的使用,还有LDT和TSS的工作原理(15章着重讲TSS如何进行任务切换). 1. 任务,任务的LDT和TSS 程序是记录在载体上的指令和数据,其正在执行的一个副本,叫做任务(Task).如果一个程序有多个副本正在内存中运行,那么他对应多个任务,每一个副本都是一个任务.为了有效地在任务之间进行隔离,处理器建议每个任务都应该具有他自己的描述符表,称…
https://github.com/yyu/osfs00 实验目的: 理解x86架构下的段式内存管理 掌握实模式和保护模式下段式寻址的组织方式. 关键数据结构.代码组织方式 掌握实模式与保护模式的切换 掌握特权级的概念,以及不同特权之间的转移 实验内容: 1. 认真阅读章节资料,掌握什么是保护模式,弄清关键数据结构: GDT.descriptor.selector.GDTR, 及其之间关系,阅读 pm.inc文件中数据结构以及含义,写出对宏Descriptor的分析 2. 调试代码,/a/ 掌…
★PART1:中断和异常概述 1. 中断(Interrupt) 中断包括硬件中断和软中断.硬件中断是由外围设备发出的中断信号引发的,以请求处理器提供服务.当I/O接口发出中断请求的时候,会被像8259A和I/O APIC这样的中断寄存器手机,并发送给处理器.硬件中断完全是随机产生的,与处理器的执行并不同步.当中断发生的时候,处理器要先执行完当前的指令(指的是正在执行的指令),然后才能对中断进行处理. 软中断是由int n指令引发的中断处理器,n是中断号(类型码). 2. 异常(Exception…
15章其实应该是和14章相辅相成的(感觉应该是作者觉得14章内容太多了然后切出来了一点).任务切换和14章的某些概念是分不开的. ★PART1:任务门与任务切换的方法 1. 任务管理程序 14章的时候我们说过,一个程序他可以有很多个任务,特权级指的是任务的不同部分的特权级,一个任务可以有两个空间,一个全局空间,一个局部空间.在一个任务内,全局空间和局部空间具有不同的特权级别,使用门,可以在任务内将控制从3特权级的局部空间转移到0特权级的全局空间,以使用内核或者操作系统提供的服务. 任务切换时以任…