写了自己的arm仿真平台,也用了一段时间bochs,断断续续地接触qemu,似乎一直在虚拟的世界里游走,乐而忘返。
bochs是x86的全仿真平台,用的人不计其数,但好的文档却几乎不存在,毕竟写虚拟机的是少数人。http://wiki.cs.uiuc.edu/cs427/Architecture of Bochs 《Architecture of Bochs》算是比较清楚的文档。
看虚拟机,总得先从cpu入手。bochs的cpu子目录里文档较多,但稍微看看名字,就知道bochs仿处理器时把处理器拆分成很多小模块来实现,这样复杂性就降低了,而且硬件也的确就该这么做的。
bochs里用宏来决定类里的一个函数和变量是静态的还是非静态的,假如一个类只会定义一个对象,那么bochs就把类里的函数和变量定义为静态的,这样编译之后,由于无需传递this指针,从而能够稍微提高一点效率,这么做简直让人觉得不舒服了,仿佛从c++退化到半c半c++的状态,但虚拟机效率是第一位的,不是吗?
bochs里的dynamic tranlation应该在dynamic子目录下,但作者把这个目录下的东西统统删掉了,时间是1999年,bochs的动态翻译功能不知道更有否支持?
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



