virtualbox源码分析 1:安装目录解析

一 安装目录文件说明:

本系列文章里的Virtualbox是基于windows的版本,Linux的版本类似,只是对于的文件名是so之类结尾
Virtualbox安装完成之后,会在C:\Program Files\Oracle\VirtualBox目录下释放所有需要的文件:
在这里插入图片描述
文件看起来很多,但有部分是第三方,addon,UI和工具
其中比较重要的文件主要有一下几类:

1.1 exe:

在这里插入图片描述
Virtualbox.exe : 虚拟机管理界面进程
VirtualboxVM.exe : 带UI版本的虚拟机进程,这个进程是我们主要分析的进程
VBoxHeadless.exe: 不带UI版本的虚拟机,这个是很神奇的进程,虚拟机在默默的运行,但是没有任何UI。
VBoxSVC.exe: 这个是个服务进程,提供一些com接口和virtualboxVM.exe交互,管理所有虚拟机和他们的配置。
VBoxManage.exe:提供一些command命令行参数,我们在命令行里运行一下,可以看到这个进程提供了很多的命令:
在这里插入图片描述
可以通过这些command修改虚拟机配置,也可以通过这个command启动一个虚拟机
比如:VBoxManage.exe startvm samplevm --type gui
可以启动一个名字是samplevm的虚拟机。

1.2 Dll:

在这里插入图片描述

其中需要重点关注的dll有:
VBoxDD.dll/VBoxDD2.dll/VBoxDDU.dll: 用于设备模拟的dll,比如audio设备/network设备/graphic/storage设备,对应VBoxDDR0.r0的驱动。
VBoxVMM.dll: 对应于VMMR0.r0的R3实现,CPU虚拟化/内存虚拟化等。
VBoxDragAndDropSvc.dll: 这类 svc结尾的dll是addon插件的实现,文件拖拽/共享目录/剪切板等功能。
VirtualBoxVM.dll: 这类有同名exe的dll是同名exe对应加载的dll。

1.3 Driver:

VBox驱动有两种:
一种是安装的时候安装到客户端上:
在这里插入图片描述
一种是虚拟机启动的时候才会动态加载的驱动
在这里插入图片描述
VMMR0.r0 是基于VT的虚拟化软件,提供硬件级别的虚拟化支持
VBoxDDR0.r0 是设备模拟的内核部分

1.4 Addon:

VBoxGuestAdditions.iso
这个文件是需要在虚拟安装完成之后单独安装的,提供虚拟机内外的交换功能,比如共享内存/剪贴板/3D加速/虚拟显卡等

发布了26 篇原创文章 · 获赞 10 · 访问量 1269

猜你喜欢

转载自blog.csdn.net/qq_29684547/article/details/103903709
今日推荐