[笔记] Windows内核课程:保护模式《一》CPU科普以及保护模式简介


前言

基础

CPU起源

在这里插入图片描述

  • 特德 霍夫 1971年11月15日 发明了第一款微处理器。
  • 英特尔奔腾Pentium 最大区别是引入超线程

超线程:英特尔® 超线程技术是一项硬件创新,允许在每个内核上运行多个线程。更多的线程意味着可以并行完成更多的工作。
超线程如何工作?当英特尔® 超线程技术处于激活状态时,CPU 会在每个物理内核上公开两个执行上下文。这意味着,一个物理内核现在就像两个“逻辑内核”一样,可以处理不同的软件线程。较之传统的单线程内核,两个逻辑内核可以更有效地完成任务。英特尔® 超线程 (HT) 技术充分利用了内核以前在等待其他任务完成时的空闲时间,提高了 CPU 吞吐量。

CPU结构

CPU物理结构

在这里插入图片描述
CPU芯片:CPU芯片是计算机的大脑,负责处理和执行各种计算任务,是实现计算能力的核心组件。
CPU引脚:CPU引脚是芯片上的金属接点,用于与其他电子器件进行电连接和数据传输,扮演着信息输入输出和控制信号传递的重要角色。

CPU逻辑结构

控制单元:
CPU控制单元是CPU的关键部件,负责解析和执行指令,协调各个部件的工作,以及控制数据流程和处理器状态的转换。它是CPU的指挥中心,确保计算机按照预定的程序顺序执行操作。

控制指令:
CPU控制指令是一组特定的机器指令,用于控制CPU的操作,例如跳转、支、循环等,以及控制其他外设和存储器的读写操作,从而实现程序的顺序执行和数据处理。

存储单元:
CPU存储单元是用于存储和访问数据的部件,包括寄存器和高速缓存,用于暂时存储指令和数据,以提高CPU的运行效率和数据访问速度。

数据:数据是指在计算机中用来表示和处理信息的数字、字符、图像等各种形式的数据,包括被处理的输入数据、中间计算结果和最终的输出数据等。

运算单元:
CPU运算单元是CPU的核心组成部分,负责执行各种算术、逻辑和控制操作,包括整数运算、浮点运算、位操作等,以实现计算机的运算和处理功能。

4004、8008、8080阶段CPU结构

在这里插入图片描述

在这里插入图片描述

CPU架构

  • RISC架构(Arm)
  • CISC架构(x86)
  1. RISC 更简单
  2. CISC可变长指令,指令集更多。反之RISC只有几百条指令,更少。
  3. RISC功耗低
  4. RISC也有保护模式
  5. CISC段页 4k,RISC段页2k

cisc架构指令的执行过程

几乎所有的冯·诺伊曼型计算机的CPU,其工作都可以分为5个阶段:

  • 取指令、
  • 指令译码
  • 访存取数
  • 执行指令
  • 结果写回

例如:

eip:  mov eax,dword ptr ds:[0x12345678]

转为机器码:

0xb8 0x78,0x56,0x34,0x12

执行该指令会经过几个阶段:

  • 先取0xb8 # 取指令
  • 0xb8解码为mov # 指令译码
  • 读取0x12345678内存数据 # 访存取数
  • 执行mov

指令预取,一般在EIP指向当前代码段时,会存在预取过程(本地缓存)(预取会并行执行以上后4个步骤(指令译码…),预取缓存大概9-32条指令。

JMP EIP 和JCC(JZ,JC EIP)区别:

  1. JMP 会清空本地缓存,JCC不会
  2. JMP比JCC指令长,JCC 2字节,JMP 4字节
  3. JMP指令跳转范围最大2G,JCC范围-127-128字节。这种跳转范围会影响性能。

0x12345678 实际是逻辑地址,逻辑地址=段地址*10+偏移地址,
而保护模式是访问一个表,访问标识为ds的项,并且检查你是否有权限访问ds项,一般是ds段寄存器对应的段描述符,记录该段是否有权限访问某内存。

实模式的结束和保护模式的起源

WinNT之前

例如win95,win98 winxp 都是实模式,内存都是线性内存,如下图。
在这里插入图片描述
逻辑地址的计算:线性地址=段地址*0x10+偏移地址,

缺点:

  • 内存不安全,随意的进程 即可通过偏移内存的方式修改内核

WinNT之后

例如win7之后,主要通过GDT将ring3和ring0内存区分开
在这里插入图片描述
然后出现段页来区分每个进程地址的上下文,来访问进程的内存。
在这里插入图片描述

什么是保护模式?

x86 CPU的三种模式:

  • 实模式
  • 保护模式
  • 虚拟8086模式

保护模式实际是保护寄存器

为什么不直接讲x64的

x86是由Intel推出的一种复杂指令集能够生产支持,这种指令集。

CPU公司主要是Intel和AMD

AMD在1999年的时候,拓展了这套指令集,称为x86-64,后改名为AMD64,Intel也兼容了这个产品,称为Intel64.但AMD64和ntel64几乎是一样的,所以在很多资料中统称为x64.

这套指令集是对x86的拓展,向下兼容的。

保护模式有什么特点?

  • 段的机制
  • 页的机制

参考书

Intel白皮书第三卷
滴水内部教程

实践项目

反调试
PCHuter

总结

需要c语言,汇编基础会更好

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二进制怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值