Chinaunix首页 | 论坛 | 博客
  • 博客访问: 236516
  • 博文数量: 21
  • 博客积分: 796
  • 博客等级: 军士长
  • 技术积分: 305
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-16 01:03
文章分类
文章存档

2020年(1)

2017年(1)

2016年(1)

2015年(2)

2012年(9)

2011年(7)

我的朋友

分类: LINUX

2011-10-28 08:24:46

qemu是一种虚拟机软件,用于在一个操作系统(宿主操作系统)中模拟运行另一个操作系统(目标操作系统)。qemu运行在X86体系结构中模拟另一个体系结构(当然也包括X86),前者称为宿主体系结构,后者称为目标体系结构。与同类虚拟机软件(VmWare,Boch等)相比,qemu的一个突出的特点是,它可以模拟众多的体系结构,这为跨平台开发提供的很大的便利。qemu具有两种工作模式:
  1. 系统模式:模拟一个完整的硬件系统,包括CPU和各种外部设备。用户在这种模式下可以安装和运行一个操作系统,还可以在宿主操作系统中对目标操作系统做调试。
  2. 用户模式:在宿主体系结构中运行目标体系结构的进程。用户在这种模式下可以方便地做交叉编译和交叉调试。

本文主要介绍一个在LFS中安装并配置qemu的实例。

 

一、安装qemu软件包

首先下载qemu及其相关的支撑软件包。

  1. : gzip压缩算法函数库。源代码: zlib-1.2.3.rar,官网一直连不上,但在LFS的LiveCD中可以找到。
  2. (Simple DirectMedia Layer):用于对音频、键盘、鼠标、游戏杆、3D硬件、2D帧缓冲进行底层控制的函数库。qemu使用libsdl产生虚拟机窗口。源代码:
  3. :qemu虚拟机软件包。源代码:

首先编译并安装zlib和libsdl,然后再编译安装qemu。编译和安装方法是众所周知的“./configure;make;make install”三步曲。

 

二、安装kvm软件包

纯粹用qemu来运行虚拟机,其模拟速度比其它虚拟机软件(例如VmWare)较慢。早期的qemu采用kqemu软件包加速模拟。后来,随着KVM合并进入Linux内核源码树,qemu开始转向直接使用内核提供的KVM来提升其模拟速度。从2009年发布的0.12.0版本开始,qemu停止了对kqemu的兼容。KVM(Kernel-based Virtual Machine)是Linux支持虚拟机技术的内核模块,KVM可以充分利用CPU提供的虚拟化扩展(virtualization extensions )特性,以提高虚拟机软件的模拟速度。例如,KVM可以利用Intel CPU提供的Intel VT的特性或AMD CPU提供的AMD-V特性。当然,对于不支持虚拟化扩展特性的CPU,KVM就没有任何实际效果,例如Intel的ATOM CPU。

kvm-kmod是KVM内核模块软件包。如果当前运行的内核已经打开KVM相关的配置选项(执行grep KVM /boot/config-...予以验证),就不需要安装kvm-kmod软件包,因为相关的内核模块已经集成到内核中。否则,需要安装kvm-kmod包,具体会安装三个内核模块:kvm.ko,kvm-intel.ko(用于支持Intel VT特性)和kvm-amd.ko(用于支持AMD-V特性)。源代码:。

三、运行虚拟机

考虑到主要使用LFS命令行界面,所以需要在没有图形界面的条件下启动qemu,这要求在qemu命令行上加上-vnc选项。此外,为了测试运行qemu,还要让虚拟机有一个虚拟硬盘,从qemu的官网上下载一个并解开即可(虚拟硬盘镜像文件:)。执行下面命令行启动虚拟机:

    qemu linux-0.2.img -vnc :1

其中,linux-0.2.img是一个硬盘镜像文件。qemu也提供相关的工具用来制作硬盘镜像文件,然后启动虚拟机后再挂上光盘,就可以在该硬盘镜像文件中安装操作系统了。-vnc选项用于启动一个VNC服务程序(用于远程桌面控制),如果有VNC客户端通过网络连接,该服务程序会将qemu的虚拟机窗口界面的VGA输出重定向到客户端。例如,用Windows中的RealVNC客户端连接,然后就可以看到虚拟机中运行的Linux了。-vnc选项的参数格式是“主机:显示编号d”,表示允许指定主机(主机名或IP)通过TCP端口5900+d连接VNC服务程序。如果主机部分省略则表示允许任何主机连接。所以:-vnc :1表示允许任何主机通过端口5901端口连接VNC服务程序。


参考文献:

1. QEMU Emulator User Documentation

2.

阅读(8573) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~