2011-09的存档

保护模式12:将一个线性地址映射到不同的物理地址上

2011-09-30 09:27:14

这篇还是上一篇的加强版. 上一篇我们漏说了很多东西, 包括我们在内存中使用了4M+4K的内存来存放页目录和页表. 这肯定是有问题的. 不行的. 那么我们应该动态的获取系统内存分配页表大小. 另外上一篇虽然对0b8000h做了下映射, 估计还是不过瘾.因为数据映射了下, 而且是没有开启分页之前的, 我们应该再接再厉. 将代码也可以随便映射..

阅读全文…

保护模式11:初探分页机制

2011-09-29 10:02:34

在没有学保护模式之前, 我一直觉得两个应用程序的虚拟地址都是一样的感觉非常神奇, 那时候一直认为系统有什么比较暴力的东西在里面,等过了一阵看了保护模式方面的书籍, 感觉就没有那么神奇了, 但是有过了一段时间发现. 分页机制理解起来是比较简单的, 但是想写一个程序能够顺利的将物理地址随便往线性地址上面映射还是有些难度的, 我感觉主要是这个东西比较抽象, 有点转不过来, 不过等多写了几个转换程序试验试验发现就能够比较形象的理解了!

阅读全文…

保护模式10:输入输出保护敏感指令

2011-09-28 07:11:14

为了支持多任务, X86体系不但需要实现任务的隔离与共享, 前面几篇我们已经有了一些体验, 但是仅仅任务隔离与保护还是不够的, 还需要对输入/输出进行保护, 这样一个没有权限的程序就不能随便的去访问一些端口,也不能够随便的执行一些指令. 本篇我们就来具体看看实现细节!

阅读全文…

保护模式9:特权指令的演示

2011-09-25 06:22:22

在Intel的386CPU中, 增加了一系列的指令用于支持保护模式的操作, 前面的代码其实我们已经使用了不少, 另外还有些针对段描述符的指令也是非常有用的..

阅读全文…

保护模式8:各种中断的演示

2011-09-24 09:29:52

呵呵前一篇我们已经明白了保护模式下如何进行中断处理,但是并没有比较理性的了解, 那么这篇我们还应该再演示演示
中断处理的实际情况..
阅读全文…

保护模式7:中断处理

2011-09-21 05:45:48

在实模式下写一个中断程序是比较简单的, DOS也直接由中断给调用, 要替换一个中断也是比较简单的. 但是一到保护模式的话, 中断就比较复杂了. 要处理的事情比较多…

阅读全文…

保护模式6:特权级转换的任务切换

2011-09-20 05:52:30

上一篇我们已经演示了特权级变换, 这一篇我们讲讲任务切换, 任务切换的话, 主要是特权级要注意, 如果特权级设置有错的话, 会崩溃.

阅读全文…

保护模式5:特权级

2011-09-18 04:15:39

对于Intel的CPU, 关于这个特权级转换, 套用小胡的话说, 有点罗嗦..
阅读全文…

保护模式4:任务内特权级变换转移

2011-09-16 10:33:08

在上一篇我们说到利用call和jmp实现转移, 但是一直都是在0环下面.. 很显然一个现代的CPU是有多个特权级别的. 所以我们应该实验下在特权级之间的转换.
阅读全文…

保护模式3:任务内无特权级转移

2011-09-14 09:54:28

在前面那篇文章中已经有从16位代码到32位代码的转换, 其实那就是任务内无特权级转换, 那么对于控制转移还没有特别提到. 这篇和下一篇就专门讲控制转移的…

阅读全文…