gpt4 book ai didi

c++ - 英特尔 IA32 备忘单

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:50:11 25 4
gpt4 key购买 nike

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

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

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

我不需要使用 Intel 手册中涵盖的大部分细节 - 只需从头开始实现任务切换和虚拟内存所需的技术细节!

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

谢谢。

最佳答案

Intel 和 AMD 手册可能是这方面的最佳资源。您显然不需要阅读所有内容,但需要阅读相关部分——例如 AMD 的“AMD64 Architecture Programmers Manual, Volume 2”,其中第 5 章介绍了“页面翻译”,这是虚拟内存的基础。

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

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

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

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

关于c++ - 英特尔 IA32 备忘单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17167121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com