
虚拟机
费尔南德
这个作者很懒,什么都没留下…
展开
-
BIOS启动原理BIOS启动原理
Intel的IBM PC上i386芯片是遵循Intel与IBM共同制定的Boot协议的1. PC机的复位线和系统中的所有部件相连,包括CPU的RESET引脚//2.系统上电开机时,主板电源系统发送低电平的"PowerGood"信号,该信号送到复位接口电路的#RES端,产生时钟同步的复位正脉冲信号RESET,该脉冲发送到上面提及的复位线上,经由CPU的RESET引脚被CPU采集到,当正脉转载 2008-10-08 13:52:00 · 1248 阅读 · 0 评论 -
x86虚拟机设计之CISC指令解析
一、指令分类CISC指令集的长度不是固定的,可以按照指令的复杂度对代码进行分类。 针对x86指令集,有些短指令的翻译十分简单(比如不需要解析Ev等字段),可以在解析之后迅速翻译,可以按照以下规则进行分类:1、有没有前缀字节。2、单字节指令。3、简单的操作码,比如仅仅是寄存器操作。4、复杂的指令,多操作码可以对相似的操作进行归类。 我觉得switch case是比原创 2012-10-15 15:11:57 · 1050 阅读 · 0 评论 -
x86虚拟机设计之自引用和自修改代码
一、关于自修改代码基本思路:1、将源代码区域加上写保护,当出现自修改代码时,就会触发一个异常。软件截获此异常,并清空全部cache或清空出现异常位置的cache。 2、截获所有的写内存的地方,查看是否写了保存了的tb,如果写了,就释放掉这个tb。问题:1、如何在源代码区域加上写保护? 我们面对的是物理地址,而平时虚拟机操作的却是虚拟地址。2、如何在引起原创 2012-10-19 13:49:20 · 757 阅读 · 0 评论 -
x86虚拟机设计之动态翻译块
翻译块的结束条件:1、跳转指令2、软件中断指令3、实模式和保护模式切换的指令4、保护模式下段selector改变的时候 优化:1、消除条件3 如果指令在保护模式和实模式下有不同的操作,这些不同的区分需要放到tb内处理,而不是tb外。2、消除条件4 需要将cs32、ss32的处理放到tb内,而不是tb外。原创 2012-11-02 14:54:18 · 542 阅读 · 0 评论 -
x86虚拟机设计之条件码生成
x86的指令集中有很多指令是自动生成条件码的,它们保存在EFLAGS寄存器中。完全的模拟这些条件码是十分费时的,还好我们并不常用到它们,所以可以采用惰性计算。 一、惰性计算 惰性计算就是在遇到产生条件码的指令时并不计算生成这些条件码,只保存生成条件码所必需的条件,在遇到需要使用条件码的指令时才会生成条件码。 1、需要保存的记录 o原创 2012-10-30 11:39:35 · 773 阅读 · 0 评论 -
x86硬件编程资料
1.vga http://www.osdever.net./FreeVGA/vga/vga.htm http://www.mcamafia.de/pdf/ibm_vgaxga_trm2.pdf 2.ide http://en.wikipedia.org/wiki/Parallel_ATA http://eecs.wsu.edu/~cs46原创 2011-03-13 14:37:00 · 1090 阅读 · 0 评论 -
x86实模式Memory Map和Port Address Assignments
<br />转自:http://hi.baidu.com/xshaonan/blog/item/443c8b091ff8bbc53bc763b7.html<br /> <br />General x86 Real Mode Memory Map: 0x00000000 - 0x000003FF - Real Mode Interrupt Vector Table 0x00000400 - 0x000004FF - BIOS Data Area 0x00000500 - 0x00007BFF -转载 2011-04-18 09:17:00 · 1335 阅读 · 0 评论 -
利用qemu模拟arm系统(root采用NFS方式挂载)
目的:调试arm应用程序。方案:由于没有实际开发板,所以采用qemu模拟arm系统。NFS方式便于调试。参考文章:How To: Running Fedora-ARM under QEMU 步骤:1、准备一个内核镜像,http://ftp.linux.org.uk/pub/linux/arm/fedora/qemu/zImage-versatile-2.6.24-rc7.arm原创 2010-01-26 15:53:00 · 7341 阅读 · 0 评论