VirtualBox的源码学习

VMM重要的组件

  • TRPM (Trap Manager)
  • PGM (Page Manager)
  • REM (Recompiled Execution Manager)
  • EM (Execution Manager)
  • HWACCM (Hardware Acceleration Manager)
  • SSM (Saved State Manager)

接口

Main是VMM对外的接口,所以Client进程都通过调用Main提供的API来请求VMM内部各个组件的服务,而不是直接调用各个组件。

 

软件虚拟化

VirtualBox让Guest中的Ring 3的应用程序像普通应用程序一样运行在Ring 3层,而让Guest OS运行在Ring 1层,Ring 1层不能执行特权指令,因此遇到特权指令会trap到Ring 0层的VMM里。

 

但是这种工作模式有很多限制,为了解决这些限制,VirtualBox通过CSAM(Code Scanning and Analyzing Manager)反汇编Guest的代码,并且通过PATM(Patch Manager)把问题指令通过in-situ(原地替换)的方式进行替换,以便进行有效的处理。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。Innotek 以 GNU General Public License (GPL) 释出 VirtualBox,并提供二进制版本及 OSE 版本的代码。使用者可以在VirtualBox上安装并且执行Solaris、Windows、DOS、Linux、OS/2 Warp、BSD等系统作为客户Duan操作系统。现在则由甲骨文公司进行开发,是甲骨文公司xVM虚拟化平台技术的一部份。 VirtualBox号称是最强的免费虚拟机软件,它不仅具有丰富的特色,而且性能也很优异!它简单易用,可虚拟的系统包括Windows(从Windows 3.1到Windows10、Windows Server 2012,所有的Windows系统都支持)、Mac OS X、Linux、OpenBSD、Solaris、IBM OS2甚至Android等操作系统!使用者可以在VirtualBox上安装并且运行上述的这些操作系统! 与同性质的VMware及Virtual PC比较下,VirtualBox独到之处包括远端桌面协定(RDP)、iSCSI及USB的支持,VirtualBox在客户Duan操作系统上已可以支持USB 2.0的硬件装置,不过要安装 VirtualBox Extension Pack。 本模块可后台对VBox进行开机关机等操作,中文命名,实现原理很简单,网络上也有很多文章来介绍,因为VBox为我们提供了一系列的命令行,但目前为止还没有人制作出程序来控制,论坛早期有一个模块,但是那位朋友没有开源. 模块使用了匿名管道技术,其余的部分则是在调用VBox提供的命令.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值