博客专栏  >  编程语言   >  OS学习笔记之保护模式

OS学习笔记之保护模式

一套完整的保护模式学习笔记,包括段页、中断、异常等知识,理论与实践并行。需要有一定的汇编语言基础才能看懂。

关注
7 已关注
33篇博文
  • OS 学习笔记导航

    环境搭建000 实验环境搭建保护模式001 保护模式 002 段寄存器 003 段选择子与段描述符结构 004 段描述符属性分析 005 特权级 006 数据段权限检查 ...

    2016-09-14 15:45
    1883
  • 9-调用门(无参)

    编写 r0 函数 getData 查看函数 getData 地址 构造调用门描述符 运行结果 编写 r0 函数 getData 该函数将运行在ring 0下,因为其中读取了高2G内存数据。 在 mai...

    2016-09-14 14:34
    772
  • 2-段寄存器

    从 ds 说起 段寄存器 段寄存器有96位 段寄存器数据来源从 ds 说起如果你稍稍懂一点汇编,当你执行下面这行代码的时候,它会把 32 位整数 5 写入到地址 0x0012f000 这个位置处。dw...

    2016-09-14 14:50
    1136
  • 3-段选择子与段描述符结构

    段描述符与段选择子的结构段选择子结构段选择子一共有16位,结构如下:| 1 | 0 | 字节 |7654321076543 2 10| 比特 |-------------|-...

    2016-09-14 15:02
    2835
  • 4-段描述符属性分析

    段描述符结构| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 字节 |7654321...

    2016-09-14 15:28
    765
  • 6-数据段权限检查

    不妨先来做个实验。打开 OD,双击第一行,把代码改成 mov ax, 0x20; mov ds, ax,然后按两下 F8 键(单步),发现很正常。如果你把代码改成 mov ax, 0x10; mov ...

    2016-09-14 15:33
    518
  • 7- 代码段权限检查与 jmp

    实现跨段:一致代码段(比当前权限高的)要求:CPL >= DPL 步骤:1. 在8003f048 处添加描述符 00cf9f00`0000ffff,该描述符描述的段为一致代码段,DPL = 0 ...

    2016-09-14 15:39
    688
  • 10-调用门(有参)实验

    编写R0函数int g_a, g_b, g_c; __declspec(naked) void getParam(int a, int b, int c) { __asm { ...

    2016-09-14 23:10
    448
  • 11-中断门

    除了使用调用门进行提权,本篇的中断门显的更加重要。因为在 Windows 中,大量使用了中断门。中断门的结构| 7 | 6 | 5 | 4 | 3 ...

    2016-09-24 11:55
    656
  • 12-陷阱门

    陷阱门的结构| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 字节 |76543210|765...

    2016-09-24 13:08
    491
  • 13-任务状态段(TSS)

    任务状态段不要被名字所吓倒,它不过是一块位于内存中的结构体而已。有一点需要注意的是,不要把它和任务切换关联起来(切记),否则你会被搞晕,它只是位于内存中的一段数据。Intel 白皮书给出TSS在内存中...

    2016-09-24 15:22
    1319
  • 14-TSS切换实验

    概述前面讲述了TSS有两个功能,提权的时候切换栈,需要用到TSS,另外执行 call/jmp 访问TSS段的时候,可以切换一堆寄存器。本节主要进行一个实验,来模拟第二个功能。实验思路 编写测试入口函数...

    2016-09-24 16:40
    533
  • 15-任务门

    任务门上一节已经基本掌握了使用 call/jmp 去访问一个任务段,来达到切换一堆寄存器的目的。但是,CPU同时又提供了另一种方法让我们访问任务段——任务门。而任务门是安装在 IDT 表中的。之前学中...

    2016-09-24 22:44
    733
  • 16-任务门实验

    在第11篇《TSS切换实验》中,我们已经完成了使用 call 模拟了 TSS 的第二个功能——替换一堆寄存器。上一篇中,提到了任务门同样可以完成这个功能。本节主要通过设计任务门描述符以及INT指令来完...

    2016-09-25 14:31
    492
  • 17-分页

    概述苦苦挣扎几近半月,保护模式中的段的篇章基本结束。迈过这个坑,踏过这个坎,前方还有千千万万个坑。只要坚持,一定可以走完。本篇开始进入新的篇章——页。不得不说,页在现代操作系统中起着无法动遥的地位,是...

    2016-09-27 12:20
    567
  • 18-线性地址转换实验

    概述上一篇介绍了有关页的概念,以及线性地址转换物理地址过程。受于篇幅限制,抱歉我把实验部分放在了这里。如果你觉得上一篇看完还是晕晕的,那这里的实验希望你能好好做一下。实验内容很简单,用 malloc ...

    2016-09-27 23:02
    382
  • 0-实验环境搭建

    工具下载 安装 WinDbg 安装VM 在VM里安装XP XP 上的配置 VM 上的配置 WinDbg 配置 测试 工欲善其事,必先利其器。开篇要做的,当然是实验环境的搭建。工具下载https://y...

    2016-09-30 11:45
    554
  • 19-PDE-PTE

    不知在第14篇《分页》文章里,你有没有搞懂什么是页,同时还延伸出了页表的概念。另外,还解释了逻辑地址、线性地址和物理地址之间的关系。我知道你脑子可能是一团浆糊,这只能怪我的语言表达能力还不够强。大段大...

    2016-10-02 13:56
    637
  • 1-保护模式

    保护模式操作系统这门课在本科是一块高地,很少有人能学懂,主要原因是本科的操作系统重在理论而无实践。然而,在国外的教学中,操作系统恰恰是一门工程性最强的学科。如果没有很强的实践,这门课也学不好。保护模式...

    2016-10-03 10:07
    576
  • 5-特权级

    CPU分级处于保护模式下的 CPU,有4种运行级别。 图1 CPU不同运行级别 围绕在最中心的那个圆心,叫 Ring 0,中文叫 0 环,这里运行特权级最高的代码。我在这里避免说这个级别运行操...

    2016-10-03 11:07
    411
img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部