羽夏看Win系统内核——保护模式篇
写在前面
此系列是本人一个字一个字码出来的,包括示例和实验截图。由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新。 如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我。
你如果是从中间插过来看的,请仔细阅读 羽夏看Win系统内核——简述 ,方便学习本教程。
看此教程之前,问一个问题,你配置好双机调试学习环境了吗? 没有的话不要继续了。如果不会配置请重新学习 羽夏看Win系统内核——环境搭建 。
华丽的分割线
为啥要写一个保护模式篇呢?因为保护模式是学习系统内核的基础,不会这个东西,后面的基本一点都看不懂。还有一个原因,保护模式还是挺复杂的,为了降低学习的陡峭程度,故分多个小节进行描述。介绍详情将会在本篇子目录有所介绍。
本篇子目录
- 保护模式篇——简述(本篇将会介绍)
- 保护模式篇——段寄存器
- 保护模式篇——段描述符与段选择子
- 保护模式篇——段权限检查与代码跨段跳转
- 保护模式篇——长调用与调用门、中断门、陷阱门
- 保护模式篇——任务段与任务门
- 保护模式篇——段和门小结
- 保护模式篇——分页基础
- 保护模式篇——PAE分页
- 保护模式篇——TLB与CPU缓存
- 保护模式篇——中断与异常和控制寄存器
- 保护模式篇——总结与提升
简述
在实模式下,16位的寄存器用段+偏移的方法计算有效地址,接触过CPU的同志都应该有所了解。然而,在实模式下,这个内存我是可以随意访问,随意修改。如果被修改的地方是操作系统关键部分,会导致意想不到的后果。下面通过几个问题简单了解一下保护模式是什么。
什么是保护模式
x86 CPU的3个模式:实模式、保护模式和虚拟8086模式,它只是CPU的一种模式。
保护模式保护什么
保护内存非法访问和特权指令的使用。
保护模式利用什么保护
段的机制和页的机制。段的机制将会在本篇进行介绍,页在下一篇章节介绍。
本篇说明
什么是特权指令,什么是段,什么是页,它们的机制是什么,后面都将会接触到。
这里还没到操作系统层面,不要把任何操作系统的概念拉到保护模式的学习当中,否则越学越糊涂。
学习本篇之前,请在注意将自己的CPU数目调整至1,如果没有按照该要求,做实验时将会出各种各样的问题,如下图所示。至于为什么之后的教程将会介绍。

下一篇
羽夏看Win系统内核——保护模式篇的更多相关文章
- 羽夏看Win系统内核——进程线程篇
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 羽夏看Win系统内核——句柄表篇
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 羽夏看Win系统内核——消息机制篇
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 羽夏看Win系统内核——环境搭建
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 羽夏看Win系统内核——简述
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 羽夏看Win系统内核——SourceInsight 配置 WRK
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 羽夏看Win系统内核——系统调用篇
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 羽夏看Win系统内核——驱动篇
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 羽夏看Win系统内核—— APC 篇
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
随机推荐
- P1088 [NOIP2004 普及组] 火星人
题目描述 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法.这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学 ...
- es相关监控指标梳理
###################ElasticSearch监控指标梳理########################### #author:lugh1 # #date:2021-09-26 # ...
- git批量处理git author和commit
最近在做自己项目的时候,由于使用了git全局配置的用户名和邮箱,导致自己私人的仓库里面的所有提交记录都是用的公司的邮箱和用户名,于是想批量替换一下. 可以在需要修改的项目的根目录下使用如下命令,进行批 ...
- 重修 Tarjan
Tarjan是谁 Tarjan's SCCs(有向图强连通分量)algorithm 给定⼀个有向图 \(G\),若存在 \(rt\in V\),满⾜从 \(rt\) 出发能到达 \(V\) 中的所有的 ...
- THUSC & 中考 & NOI 拉跨记
THUSC 的拉胯记 时代比较久远了,可能有些事情记不清楚了. Day -\(\infty\) 本来说只有我.llsw.wxk过了审核,后来wy.lyc也搞了个体验营名额,于是和高二的一起集训. Da ...
- qsort()函数的使用
函数声明 void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)) 参数 ...
- 试题 算法训练 区间k大数查询 java题解
资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正 ...
- NX Open 图层说
我也是偶然发现的,在一次调试下,竟然会报警. 所以我写了测试代码,进行测试:结果如下 纳尼???还有271层?还能设置大于256层?NX open可以的.
- 解决el-checkbox-group 的v-model无法绑定对象数组
elementUI官方文档中el-checkbox-group组件绑定的都为一维数组,真实业务中数据绑定往往是多个键值对的对象数组,本文主要解决这个问题. 如下代码: <el-checkbox- ...
- 在python中实现BASE64编码
什么是Base64编码 BASE64是用于传输8Bit字节的编码方式之一,是一种基于64个可打印字符来表示二进制数据的方法. 如下是转换表:The Base64 Alphabet Base64编码可以 ...