2

我正在寻找涵盖 IA32 架构的技术规范、幻数等的文档或教科书。

英特尔手册都很好,但我正在寻找更简洁的东西。

我正在从事的特定项目(一种新型操作系统)需要对硬件地址和基本系统架构有深入的了解。

我不需要使用英特尔手册中涵盖的许多细节——只是实现任务切换和虚拟内存所需的技术细节——从头开始!

谁能指出我一些好的资源的方向?

谢谢。

4

1 回答 1

2

Intel 和 AMD 手册可能是这方面的最佳资源。您显然不需要阅读所有内容,但需要阅读相关部分 - 例如 AMD 的“ AMD64 架构程序员手册,第 2 卷”,其中第 5 章涵盖了“页面翻译”,这是虚拟内存的基础。

编辑:声明偏见:我曾为 AMD 工作过,我仍然更喜欢 AMD 而不是英特尔——无论是在文献还是实际产品方面。

任务切换通常通过简单地保存一个进程的上下文并主要使用常规指令恢复新进程的上下文来完成,并移动到 CR3 和 CR4 以设置新进程的页表(通常不要'不必保存 CR3/CR4 值,因为它们在每个进程中是“固定的”,因此您只需从它们存储在该进程数据中的任何位置加载新值)。

在 32 位模式下,x86 架构确实具有“内置”任务切换功能,但它并未被任何现代操作系统使用,并且由于其“保存一切,恢复一切”方法而速度相当慢。手动编写任务保存/恢复代码一般没有那么难,可以明显避免保存和恢复大量数据。您仍然需要使用“任务状态段”(AMD 文献中的第 12 章)来允许在内核和用户模式之间进行堆栈切换。

当然,你还需要看一些中断和异常处理,如何处理用于 PCI 访问的硬件寄存器等等。恐怕这是我在没有链接的书中查找的内容。自从最近搬家以来,这些目前都堆放在一个盒子里,所以不能给你确切的标题。

于 2013-06-18T11:16:45.643 回答