CPU指令集的虚拟化(x86)

IA-32 (x86)[edit]

Main article: X86 virtualization

The IA-32 instruction set of the Pentium processor contains 17 sensitive, unprivileged instructions.[11] They can be categorized in two groups:

  • Sensitive register instructions: read or change sensitive registers and/or memory locations such as a clock register or interrupt registers:
    • SGDT, SIDT, SLDT
    • SMSW
    • PUSHF, POPF
  • Protection system instructions: reference the storage protection system, memory or address relocation system:
    • LAR, LSL, VERR, VERW
    • POP
    • PUSH
    • CALL, JMP, INT n, RET
    • STR
    • MOV

The introduction of the AMD-V and Intel VT-x instruction sets in 2005 allows x86 processors to meet the Popek and Goldberg virtualization requirements.

关键指令(Critical Instruction)

指敏感但非特权指令,需要在Guest OS中人为地在CI指令处做trap处理,以便由VMM进行处理。

CI指令的扫描与修补(Scanning and Patching)

以代码块为单位,对Guest OS以及其中运行的程序代码进行扫描,遇到分支指令时,深入到每个分支进行扫描和修补。

修补方法,就是将CI指令替换成相应的trap指令,确保VMM有机会处理到所有敏感指令。

转载于:https://www.cnblogs.com/long123king/p/3478851.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值