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 作为我们的测试操作系统。