专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

QEMU是什么

来源:小易整编  作者:小易  发布时间:2023-08-19 04:51
摘要:QEMU(quickemulator)是一款由免费的可执行硬件虚拟化的开源托管虚拟机(VMM)。其与Bochs,PearPC类似,但拥有高速(配合KVM),跨平台的特性。QEMU是一套由法布里斯·贝拉(FabriceBellard)...

QEMU(quick emulator)是一款由免费的可执行硬件虚拟化的开源托管虚拟机(VMM)。其与Bochs,PearPC类似,但拥有高速(配合KVM),跨平台的特性。

QEMU是什么

QEMU 是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以 GPL 许可证分发源码的模拟处理器,在 GNU/Linux 平台上使用广泛。Bochs,PearPC 等与其类似,但不具备其许多特性,比如高速度及跨平台的特性,通过 KQEMU 这个闭源的加速器,QEMU 能模拟至接近真实电脑的速度。

QEMU 是一个托管的虚拟机镜像,它通过动态的二进制转换,模拟 CPU,并且提供一组设备模型,使它能够运行多种未修改的客户机 OS,可以通过与 KVM(kernel-based virtual machine 开源加速器)一起使用进而接近本地速度运行虚拟机(接近真实电脑的速度)。

QEMU 还可以为 user-level 的进程执行 CPU 仿真,进而允许了为一种架构编译的程序在另外一种架构上面运行(借由 VMM 的形式)。

目前,0.9.1 及之前版本的 qemu 可以使用 kqemu 加速器。在 qemu1.0 之后的版本,都无法使用 kqemu,主要利用 qemu-kvm 加速模块,并且加速效果以及稳定性明显好于 kqemu。

运作模式

QEMU 有两种主要运作模式:

* User mode 模拟模式,亦即是用户模式。QEMU 能启动那些为不

同中央处理器编译的 Linux 程序。而 Wine 及 Dosemu 是其主要目标。

* System mode 模拟模式,亦即是系统模式。QEMU 能模拟整个电脑系统,包括中央处理器及其他周边设备。它使得为跨平台编写的程序进行测试及除错工作变得容易。其亦能用来在一部主机上虚拟数部不同虚拟电脑。

QEMU的主体部份是在 LGPL 下发布的,而其系统模式模拟则是在 GPL 下发布;而 kqemu 这个加速器则是在免费但闭源的条件下发布的。使用 kqemu 可使 QEMU 能模拟至接近实机速度,但其在虚拟的操作系统是 Microsoft Windows 98 或以下的情况下是无用的。

软件优点

默认支持多种架构。可以模拟 IA-32 (x86)个人电脑,AMD 64 个人电脑,MIPS R4000, 升阳的 SPARCsun3 与 PowerPC(PReP 及 Power Macintosh)架构

可扩展,可自定义新的指令集

开源,可移植,仿真速度快

在支持硬件虚拟化的 x86 构架上可以使用 KVM 加速配合内核 ksm 大页面备份内存,速度稳定远超过 VMware ESX

增加了模拟速度,某些程序甚至可以实时运行

可以在其他平台上运行 Linux 的程序

可以储存及还原运行状态(如运行中的程序)

可以虚拟网络卡

软件缺点

对微软视窗及某些主机操作系统的不完善支持(某些模拟的系统仅能运行)

对不常用的架构的支持并不完善

除非使用 kqemu 或 KVM 加速器,否则其模拟速度仍不及其他虚拟软件,如 VMware

比其他模拟软件难安装及使用

使用实例

以下的指令可以建立一个 500MB 大小的”qcow”格式的硬盘映像。

qemu-img create -f qcow c.img 500M

而以下的指令会使虚拟机器在 128MB 内存,使用 c.img 这个用以上介绍的指令所建立的硬盘映像及以 linux.iso 为光盘映像的情况下运行。注意,如果使用物理光驱,请将-cdrom linux.iso 这个参数变为 -cdrom /dev/cdrom 或您所用的光驱。

qemu -clock dynticks -rtc-td-hack -localtime -hda c.img -cdrom linux.iso -boot d -m 128 -enable-audio -localtime

如果想缺省使用全萤幕启动子操作系统,可作以上指令后再加上”-full-screen”这个参数,如想在运行时离开全萤幕,请使用组合键 Ctrl-Alt-F 便可。

参数简介

-L dir 指向 BIOS 和 VGA BIOS 所在目录

-hda/-hdb/-hdd/-hdc “文件名” 使用“文件名”作为硬盘 0/1/2/3 镜像。

-cdrom “文件名” 使用“文件名”作为光盘镜像(文件应该是 ISO 类型)。

Windows 下的使用者,可以透过下列指令使用实体光盘:

-cdrom //./x: -> x 代表光盘名称/位置

例如:-cdrom //./e: -> 使用 E:\ 为光盘

-fda/-fdb “文件名” 使用“文件名”作为磁盘 0/1 镜像。

-boot [a|d|c] 使用磁盘,光盘,或者硬盘启动。

-m 容量指定内存的大小,单位是 MB。

-soundhw c1,… 使用声卡设备。

-soundhw ? 列出所有可使用的声卡

-soundhw all 使用全部声卡

-usb 允许使用 usb 设备。

-usbdevice 名字 添加一个 usb 设备“名字”。

-net nic 创建一块新的网卡。

加速模块

The QEMU 加速模组 (kqemu)

kqemu 这个加速模组是 Fabrice Bellard 专为 Linux 核心而设计的闭源附加程序,目的是为了加速 QEMU 的子系统运行速度。在 x86 硬件上模拟 x86 的操作系统可达到主机速度。

QEMU 加速模组 – 使用者限制条件

QEMU 加速模组,kqemu,是一套闭源商业产品。可作个人使用而不受限制。但如果想使用光碟, ISO 映像或附加套件等方法分发 QEMU 加速模组,则必须联络作者并取得其同意后方可进行。

QVM86

现时除了以上的 kqemu 这个闭源的 QEMU 加速模组外,亦有一个在 GPL 下发布的 QEMU 加速模组。


本文地址:IT问答频道 https://www.hkm168.com/itwenda/1031187.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


IT问答
小编:小易整编

上一篇:QNAP NAS是什么

下一篇:base64是什么

相关文章相关阅读
  • 某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是cpu的字长,即cpu每次能处理64位二进制数据。字长是cpu的主要技术指标之一,指的是cpu一次能并行处理的二进制位数,字长总是8的整数倍,通常pc机的字长为32位,64位。本教程操作环境:w...

  • c语言是什么意思

    c语言是什么意思

    一:c语言是什么意思C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言,以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低...

  • skype是什么软件

    skype是什么软件

    skype是一种简单的免费软件,使您能够在数分钟之内在世界上的任何角落拨打免费电话,它使用全新的p2p【对等】技术将您与其他skype用户相连接。Skype是一种简单的免费软件,使您能够在数分钟之内在世界上的任何角落拨打免费电话。Sky...

  • 计算机的三类总线分别是什么?

    计算机的三类总线分别是什么?

    计算机的三类总线分别是:控制总线、地址总线和数据总线。控制总线用于将微处理器控制单元的信号,传送到周边设备;地址总线用来指定在ram之中储存的数据的地址;数据总线用于在cpu与ram之间来回传送需要处理或是需要储存的数据。总线(Bus)是计...

  • 2k屏幕是什么意思

    2k屏幕是什么意思

    2k屏幕是指分辨率能够达到2560*1440的屏幕。2k是一个通用术语,指屏幕或者内容的水平分辨率达约2000像素的分辨率等级;又因“16:9”的比例是高清晰度视频规格的国际标准,所以2k分辨率在视频制作、显示屏等领域常见格式为2560*1...

  • mysql中的不等于符号是什么

    mysql中的不等于符号是什么

    mysql中的不等于符号有两种:“!=”和“”;它们都可用于判断数字、字符串、表达式是否不相等。对于“!=”和“”,如果两侧操作数不相等,返回值为1,否则返回值为0;如果两侧操作数有一个是null,那么返回值也是null。本教程操作环境:w...

  • ipad a1822是什么型号

    ipad a1822是什么型号

    ipada1822是苹果ipad第5代的型号;ipad第5代是苹果公司于2017年03月21日在美国加利福尼亚州发布的平板电脑;该机型采用铝镁合金材质一体成型结构;前端外框为白色或黑色;有银色、金色和深空灰色3种外观颜色。本教程操作环境:...

  • html中浮动是什么

    html中浮动是什么

    在html中,浮动就是让元素可以向左或向右移动,直到它的外边距碰到其父级的内边距或者是上一个元素的外边距,只需要给元素设置“float:left|right|none|inherit”样式即可。本教程操作环境:windows7系统、CSS3...

  • 周排行
  • 月排行
  • 年排行

精彩推荐