基于Intel-VT技术的Smart-VM 第4章 建立开发环境

本文介绍了一种智能虚拟机(Smart-VM)的开发与测试环境搭建过程。开发环境使用nasm、gcc及定制版bochs,支持Intel-VT技术。测试环境则选择UCOS-2.52操作系统,并详细说明了其配置步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1 开发环境的建立

开发的环境的搭建,主要从几个方面来考虑:

a)        自己熟悉的开发工具;

b)        便于调试;

c)        能够准确的虚拟开发平台;

d)       开发环境容易搭建;

基于以上几方面的考虑,选用的开发工具包括:

a)        C语言编译器:gcc 4.3.2

b)        汇编编译器:nasm 0.99.06

c)        调试器:bochs 2.4.1

d)       运行平台:bochs 2.4.1

1.1.1 编译bochs 2.4.1

Bochs从2.4.1开始模拟Intel-VT技术。但是,默认编译成的二进制代码并不包含支持Intel-VT的代码,因此,我们需要获取bochs源码,重新配置生成我们需要的Bochs虚拟机。Bochs是一个开源的虚拟机,它的安装程序和源码都可以从官方网站下载:http://sourceforge.net/projects/bochs/files/bochs/2.4.1/

下面是修改windows版本的bochs源码的步骤:

1.      获取bochs源码,将config.h中的

#define BX_SUPPORT_VMX 0

#define BX_GDBSTUB 0

#define BX_DEBUGGER 0

#define BX_DEBUGGER_GUI 0

#define BX_SUPPORT_X86_64 1

改成:

#define BX_SUPPORT_VMX 1

#define BX_GDBSTUB 1

#define BX_DEBUGGER 1

#define BX_DEBUGGER_GUI 1

#define BX_SUPPORT_X86_64 0

2.      往cpu子工程中添加vmexit.cc和gdbstub.cc两个文件。在gdbstub.cc中定义添加:

#define __MINGW32__ 1

3.      用VS2008编译生成。

这样,就生成了bochs2.4.1的调试器版本。

1.1.2 建立开发环境

在Windows Xp 5.1.2600操作系统上安装VMware Workstation 6.5.1 build- 126130。然后再VMware 上安装Ubuntu 8.04操作系统。这样,就可以在Windows上使用linux的开发工具了。

为了方便,可以使用VMware的共享文件夹的功能,实现宿主机和客户机的交流。

1.2 测试环境的建立

测试环境的建立,主要是测试操作系统的选型。

测试操作系统的选取标准主要有:

a)        开源操作系统;

b)        代码量不能太大;

c)        有一定的知名度;

d)       最好是我们比较熟悉的操作系统;

综合以上标准,我选择了UCOS v2.52。

1.2.1 测试操作系统-UCOSII FOR SMART-VM(UFSVM)

由于UCOS v2.52操作系统只提供能基本的内核代码,因此需要我们将UCOS移植到所需要的平台上。

1.2.1.1 UCOS运行环境

处理器:实模式和保护模式

内存大小:1M

外围设备:硬盘

1.2.1.2 功能特点

引导程序:在实模式下启动,然后进入保护模式,之后跳转到内核;

内核:在内核创建一个进程,该进程用于打印信息;

关于UCOS 2.52[14]的资料可以在网上找到,这里就不介绍了。

1.2.2 建立测试环境

1.2.2.1 虚拟硬盘的创建

利用Bochs自带的bximage.exe环境,建立一个虚拟硬盘:

图  4.1 创建虚拟硬盘的类型

双击bximage.exe,会出现图4.1的界面,直接按回车键。

图  4.2 镜像的类型

接下来会出现图4.2的界面,再按回车键。

 

图  4.3 创建5M的虚拟硬盘

创建一个5M的虚拟硬盘,如图4.3。

 

图  4.4 创建smart_vm.img虚拟硬盘

创建smart_vm.img虚拟硬盘,如图4.4。再按下回车键,创建成功。

1.2.2.2 向硬盘写入数据

往硬盘写入数据,我们是使用Linux下的dd工具。命令如下:

dd if=boot/boot.bin of=smart_vm.img conv=notrunc

dd if=boot/loader.bin of=smart_vm.img bs=1 seek=512 conv=notrunc

dd if=root.bin of=smart_vm.img bs=512 seek=5 conv=notrunc

 

dd if=uboot.bin of=smart_vm.img bs=512 seek=63 conv=notrunc

dd if=ucos.bin of=smart_vm.img bs=512 seek=64 conv=notrunc

其中:

a)        boot.bin:Smart-VM监控器的引导程序;

b)        loader.bin:Smart-VM监控器的加载程序;

c)        root.bin:Smart-VM的内核程序;

d)       uboot.bin:Ucos-ii for Smart-VM的引导程序;

e)        ucos.bin:Ucos-ii for Smart-VM的内核程序

1.3 本章小结

本章详细介绍了开发环境和测试环境。

开发环境的建立:利用nasm、gcc和bochs作为Smart-VM的编译和开发工具。其中,需要对Bochs进行重新的配置和开发,使得Bochs支持Intel-VT技术。

测试环境,主要是测试操作系统的选择。我们选择了UCOS-2.52作为我们的测试操作系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值