QEMU(Quick EMUlator)简单理解是一个虚拟机工具,可以方便的在Linux平台上模拟运行另一个计算机系统,也可以用来运行另一个计算机系统的程序。

它通常被用来在基于x86的Linux计算机上运行Windows和DOS应用程序。也可以在x86 PC平台上运行ARM软件。

在实际的软件开发和测试活动中,经常会发布一个镜像文件,这个镜像文件可以用QEMU打开,里面的环境是已经配置好的。

使用QEMU还有一个好处,就是可以在Ubuntu的虚拟机中,使用QEMU再打开一个虚拟机。

QEMU简介

QEMU: A generic and open source machine emulator and virtualizer.

QEMU是一个通用的开源仿真计算机和虚拟机。

官网路径:

https://www.qemu.org/

QEMU用于创建仿真和虚拟机环境的开源软件,由Fabrice Bellard开发。作为一个仿真器,它被用来运行为另一个硬件平台编写的操作系统和应用程序;例如,在基于x86的PC上运行ARM软件。

QEMU是一个免费和开源的hypervisor(虚拟化平台)。它通过动态二进制转换来模拟机器的处理器,并为机器提供一套不同的硬件和设备模型,使其能够运行各种客户操作系统。

当作为机器模拟器使用时,QEMU可以在不同的机器(例如你自己的PC)上运行为另一台机器(例如ARM板)制作的操作系统和程序。通过使用动态翻译,它可以实现非常好的性能。

当作为一个虚拟化器使用时,QEMU通过直接在主机CPU上执行客户代码,实现了接近本地执行的性能。QEMU的虚拟化包括在Xen hypervisor下执行或在Linux中使用KVM内核模块。当使用KVM时,QEMU可以虚拟化X86、服务器和嵌入式PowerPC、64位POWER、S390、32位和64位ARM以及MIPS客户程序。

hypervisor(虚拟化平台)

- Kernel Virtual Machine (KVM)

KVMhttp://www.linux-kvm.org/page/Main_Page

KVM(基于内核的虚拟机)是一个完整的虚拟化解决方案,适用于含有虚拟化扩展(Intel VT或AMD-V)的x86硬件上的Linux。它由一个可加载的内核模块(kvm.ko)和一个特定的处理器模块(kvm-intel.ko或kvm-amd.ko)组成,前者提供了核心的虚拟化组件,后者提供了处理器相关功能。

使用KVM,人们可以创建多个虚拟机,来运行未经修改的Linux或Windows镜像。每个虚拟机都有私有的虚拟化硬件:网卡、磁盘、图形适配器(显卡)等。

KVM是开放源码软件。从2.6.20的Linux mainline开始包含KVM的内核组件。从1.3版的QEMU mainline开始包含KVM的用户空间组件。

- XEN

Home - Xen Projecthttps://xenproject.org/

同样是一款开源的hypervisor,2003年产生于剑桥大学的研究项目中。

Xen项目是几个虚拟化相关开源项目的源头。该社区专注于在一些不同的商业和开源应用中推进虚拟化,包括服务器虚拟化、基础设施即服务(IaaS)、桌面虚拟化、安全应用、嵌入式和硬件设备,以及汽车/航空。

Xen项目开发的虚拟化技术为世界上最大的云提供动力,也是(Citrix, Huawei, Inspur, and Oracle)思杰、华为、浪潮和甲骨文的许多商业虚拟化产品的基础。Xen项目代码是一些安全解决方案的基础,包括Qubes OS、Bromium vSentry、A1Logic、AIS SecureView、Adventium Labs Magrana Server、Bitdefender HVI、Star Labs Crucible Hypervisor、Zentific Zazen和Dornerwork的Virtuosity Hypervisor。

Xen项目在其15年中创造的成熟性、稳定性和多功能性是首屈一指的。

上面两种是QEMU所使用的虚拟化平台,都是在基于Linux的。

除了这两种,主流的虚拟化平台还有:VMware公司的hypervisor,和微软的Hyper-V平台。

QEMU是type 2 hypervisor ,在用户空间内运行,进行虚拟硬件仿真,而KVM是type 1 hypervisor,在内核空间内运行,它允许用户空间程序访问各种处理器的硬件虚拟化功能。

如何安装

Debian/Ubuntu下可以直接安装:

$ sudo apt-get install qemu

版本编号规则

从3.0.0版本开始,QEMU使用了一个基于时间的版本编号方案。

主要版本号

第一次发布时为1,之后每年加1.

次要版本号

每次主要版本号更新时重置为0,之后从git master上release的版本逐次加1.

修正版本号

从git master上release的版本,修正版本号为0。从稳定分支上发布的版本逐次加1。

这意味着主要版本号的变化对版本中包含的变化范围没有任何影响。非向后兼容的修改可以在任何主分支版本中进行,只要它们遵循了废止政策,要求在修改前至少有两个版本发出警告。

管理规则

QEMU是软件自由保护协会(Software Freedom Conservancy)的成员,这是一个为开源项目提供法律和管理援助的非营利组织。

软件自由保护协会代表项目持有资产,包括域名和项目基金/捐款。

简单尝试

官网提供了一些测试image以供使用。

Testing/System Images - QEMUhttps://wiki.qemu.org/Testing/System_Images

也可以去网上下载,比如:

Index of /downloads/qemuhttps://busybox.net/downloads/qemu/

这里下载文件:rh-9-shrike.img.bz2,然后解压缩。

也可以在Windows中下载,然后copy到Ubuntu虚拟机中。

使用命令qemu-system-i386和qemu-system-x86_64都可以,取决于你相应用哪个平台来运行这个镜像系统。

$ wget http://busybox.net/downloads/qemu/rh-9-shrike.img.bz2

$ bunzip2 rh-9-shrike.img.bz2

$ ls

rh-9-shrike.img

$ qemu-system-x86_64 rh-9-shrike.img

然后就会弹出一个新的窗口,里面运行着RedHat 9。

以用户 "busybox "或root身份登录,密码都是 "busybox"。

如果你喜欢gui而不是文本模式,可以运行 "startx",但可能不成功。

仿真的系统应该有一个仿真的(伪装的)网络连接,所以你可以用scp方式输入和输出文件。

参考:

https://en.wikibooks.org/wiki/QEMU/https://en.wikibooks.org/wiki/QEMU/Images

Old kernels and new compilers [LWN.net]https://lwn.net/Articles/196929/

How to install Qemu/KVM and Virt-Manager GUI on Ubuntu 20.04 LTShttps://www.how2shout.com/linux/how-to-install-qemu-kvm-and-virt-manager-gui-on-ubuntu-20-04-lts/

Definition of QEMU | PCMaghttps://www.pcmag.com/encyclopedia/term/qemu

What Is the Difference between QEMU and KVM?https://www.packetcoders.io/what-is-the-difference-between-qemu-and-kvm/

Linux - 轻量级虚拟机工具QEMU相关推荐

  1. linux下VMware_Tools虚拟机工具的安装

    1 到菜单栏"虚拟机"里选择"安装VMware Tools(I)"虚拟机工具<?xml:namespace prefix = o ns = "u ...

  2. linux下三台虚拟机互联,Linux下虚拟机qemu的使用

    Linux下虚拟机qemu的使用,设置qemu, 安装WinXP从桌面菜单启动qemu-launcher后, 1. 取消Snapshot Mode, 因为这个选项表示只有你按 虚拟机qemu的使用 R ...

  3. 嵌入式linux轻量级sshd服务工具Dropbear移植

    嵌入式linux轻量级sshd服务工具Dropbear移植 介绍 编译流程 1. 编译zlib 2. 编译dropbear 3. 移植 4. 运行 5. 移植sftp-server 介绍   往往考虑 ...

  4. CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放

    CCKiller:Linux轻量级CC攻击防御工具,秒级检查.自动拉黑和释放 一.功能申明 二.功能介绍 三.工具安装 四.攻防测试 五.更多说明 文章目录 很久以前分享过一个CC攻击的防御脚本,写得 ...

  5. linux cc攻击脚本,GitHub - yuanguoping/CCKiller: Linux轻量级CC攻击防御工具脚本

    CCkiller Linux attack defense scripts tool --- Linux CC攻击防御工具脚本 请执行如下命令在线安装: curl -ko install.sh htt ...

  6. Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放

    一.功能申明 分享之前我必须先申明一下,众所周知,DDoS攻击指的是分布式拒绝服务.而CC攻击只是DDoS攻击的一种,本文所阐述的CC攻击,指的是单个IP达到我们设定好的阈值并发请求,而非海量IP的低 ...

  7. 换掉VMware?轻量级虚拟机,横空出世!

    说起虚拟机工具大家最熟悉的自然是 VMware,功能很多很强大,最让我认可的地方就是可以非常方便的修改虚拟机的配置,让虚拟机达到自己想要的性能-- 可是 VMware 好用是真的好用,但就是要付费呀! ...

  8. linux动态二进制翻译,QEMU动态翻译器

    原标题:QEMU动态翻译器 摘要: 分析下Qemu的内部结构,qemu大概是一个使用原始便携动态翻译器的快速机器仿真工具,.它能在很多机器上(x86, ARM PowerPC, Sparc-.) 仿真 ...

  9. Linux中虚拟机的安装详细教程

    Linux中虚拟机的安装详细教程 1 linux中虚拟机的安装 1.1 kvm安装条件 1.2 KVM虚拟化安装 1.3 KVM虚拟化相关信息 1.4 手动安装虚拟机步骤 1.5 脚本安装虚拟机 2 ...

最新文章

  1. php100例代码教程,php实例代码_php用户登录实例教程代码
  2. 20以内混合加减法100题_一年级数学20以内加减法混合运算练习题,寒假练习巩固!...
  3. 事件相关去同步 (ERD) 和事件相关同步化 (ERS)在脑电信号研究中的应用
  4. Raspberry Pi 2 Model B Pi4J 示例
  5. php异常处理的好处,php异常处理方法是什么
  6. 入侵检测技术-矛与盾
  7. RK3288_Android7.1调试RTC总结(二)
  8. 使用sobel、prewitt、拉普拉斯算子、差分法提取图像的边缘
  9. Atitit 表达式概论 艾提拉著 目录 1. 表达式分类 2 1.1. 条件表达式 ?:三元符号 2 1.2. 中缀表达式 前缀 后缀表达式 2 1.3. S表达式 2 1.4. 《精通lamb
  10. 解决mac pro中三指轻按翻译的功能不起作用
  11. 微信小程序input详解
  12. qpython3l下载_QPython3下载
  13. 图文教你选择和区别A卡和N卡
  14. android技术篇(三)解密data区
  15. ARM版本ubuntu安装PL2303驱动
  16. Mockplus默认图标导出的方法
  17. MATLAB 声音文件处理
  18. PHP实现生成推广海报
  19. 应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案
  20. System.Security.SecurityException Failed to negotiate HTTPS connection with server.fiddler.network

热门文章

  1. win7 x64环境python2.7下装配sulley的注意点-对于Windows Installation原文的几点补充说明
  2. Unity3D for VR 学习(7): 360°全景照片
  3. 微信APP支付之IJpay的使用
  4. pca图解读_PCA 图像识别 详解(一)
  5. 关于NBMA网络基于RIP、HDLC、PPP,MGRE环境下实现所有PC互通
  6. 结构类型的定义,应用
  7. AutoCAD .Net 创建直线Line
  8. 羡慕华为人年薪110万?先看看华为员工的16项标准!
  9. [2011JMAA]Remarks on the regularity criteria for generalized MHD equations
  10. Python之字符串源码解析