Bochs代码导读及探究.docVIP

  • 7
  • 0
  • 约1.31万字
  • 约 9页
  • 2017-08-20 发布于湖北
  • 举报
Bochs代码导读 摘要 Bochs是一个基于LGPL的开源x86虚拟机软件,它是用C++编写的。Bochs的工作方式与VMWare等软件有所不同,VMWare是直接在实体机器的CPU上执行虚拟机的CPU指令,而Bochs则是用一个个函数来模拟一条条指令。于是,VMWare的性能比较好,但它只能在x86机器上模拟x86;而Bochs则可以在各种架构的CPU上模拟x86,当然,它的性能比较低。 本文站在一个开发人员的角度,深入浅出地介绍Bochs 2.2.6的一些重要的类,函数以及大致的工作流程,以分析CPU的模拟代码为主,不涉及BIOS、磁盘、显卡等的模拟。 1 主要的类 1.1 BX_CPU_C 在bochs.h里面有一个宏: #define BX_CPU_C bx_cpu_c 因此BX_CPU_C类实际上表示的是bx_cpu_c类,这个类用于模拟一个CPU,它可以模拟16位(实模式)、32位(保护模式)和64位(长模式)三种模式,这三种模式的区别主要是寄存器的字长不同。下面简单介绍这个类的主要成员。 char name[64]; name变量是一个字符串,代表CPU的名字。 unsigned bx_cpuid; CPU的ID号,Bochs可以模拟SMP(对称多处理)的机器,在SMP机器中,每个CPU都有一个ID号来

文档评论(0)

1亿VIP精品文档

相关文档