Linux - 轻量级虚拟机工具QEMU
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相关推荐
- linux下VMware_Tools虚拟机工具的安装
1 到菜单栏"虚拟机"里选择"安装VMware Tools(I)"虚拟机工具<?xml:namespace prefix = o ns = "u ...
- linux下三台虚拟机互联,Linux下虚拟机qemu的使用
Linux下虚拟机qemu的使用,设置qemu, 安装WinXP从桌面菜单启动qemu-launcher后, 1. 取消Snapshot Mode, 因为这个选项表示只有你按 虚拟机qemu的使用 R ...
- 嵌入式linux轻量级sshd服务工具Dropbear移植
嵌入式linux轻量级sshd服务工具Dropbear移植 介绍 编译流程 1. 编译zlib 2. 编译dropbear 3. 移植 4. 运行 5. 移植sftp-server 介绍 往往考虑 ...
- CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放
CCKiller:Linux轻量级CC攻击防御工具,秒级检查.自动拉黑和释放 一.功能申明 二.功能介绍 三.工具安装 四.攻防测试 五.更多说明 文章目录 很久以前分享过一个CC攻击的防御脚本,写得 ...
- linux cc攻击脚本,GitHub - yuanguoping/CCKiller: Linux轻量级CC攻击防御工具脚本
CCkiller Linux attack defense scripts tool --- Linux CC攻击防御工具脚本 请执行如下命令在线安装: curl -ko install.sh htt ...
- Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放
一.功能申明 分享之前我必须先申明一下,众所周知,DDoS攻击指的是分布式拒绝服务.而CC攻击只是DDoS攻击的一种,本文所阐述的CC攻击,指的是单个IP达到我们设定好的阈值并发请求,而非海量IP的低 ...
- 换掉VMware?轻量级虚拟机,横空出世!
说起虚拟机工具大家最熟悉的自然是 VMware,功能很多很强大,最让我认可的地方就是可以非常方便的修改虚拟机的配置,让虚拟机达到自己想要的性能-- 可是 VMware 好用是真的好用,但就是要付费呀! ...
- linux动态二进制翻译,QEMU动态翻译器
原标题:QEMU动态翻译器 摘要: 分析下Qemu的内部结构,qemu大概是一个使用原始便携动态翻译器的快速机器仿真工具,.它能在很多机器上(x86, ARM PowerPC, Sparc-.) 仿真 ...
- Linux中虚拟机的安装详细教程
Linux中虚拟机的安装详细教程 1 linux中虚拟机的安装 1.1 kvm安装条件 1.2 KVM虚拟化安装 1.3 KVM虚拟化相关信息 1.4 手动安装虚拟机步骤 1.5 脚本安装虚拟机 2 ...
最新文章
- php100例代码教程,php实例代码_php用户登录实例教程代码
- 20以内混合加减法100题_一年级数学20以内加减法混合运算练习题,寒假练习巩固!...
- 事件相关去同步 (ERD) 和事件相关同步化 (ERS)在脑电信号研究中的应用
- Raspberry Pi 2 Model B Pi4J 示例
- php异常处理的好处,php异常处理方法是什么
- 入侵检测技术-矛与盾
- RK3288_Android7.1调试RTC总结(二)
- 使用sobel、prewitt、拉普拉斯算子、差分法提取图像的边缘
- Atitit 表达式概论 艾提拉著 目录 1. 表达式分类	2 1.1. 条件表达式 ?:三元符号	2 1.2. 中缀表达式 前缀 后缀表达式	2 1.3. S表达式	2 1.4. 《精通lamb
- 解决mac pro中三指轻按翻译的功能不起作用
- 微信小程序input详解
- qpython3l下载_QPython3下载
- 图文教你选择和区别A卡和N卡
- android技术篇(三)解密data区
- ARM版本ubuntu安装PL2303驱动
- Mockplus默认图标导出的方法
- MATLAB 声音文件处理
- PHP实现生成推广海报
- 应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案
- System.Security.SecurityException Failed to negotiate HTTPS connection with server.fiddler.network
热门文章
- win7 x64环境python2.7下装配sulley的注意点-对于Windows Installation原文的几点补充说明
- Unity3D for VR 学习(7): 360°全景照片
- 微信APP支付之IJpay的使用
- pca图解读_PCA 图像识别 详解(一)
- 关于NBMA网络基于RIP、HDLC、PPP,MGRE环境下实现所有PC互通
- 结构类型的定义,应用
- AutoCAD .Net 创建直线Line
- 羡慕华为人年薪110万?先看看华为员工的16项标准!
- [2011JMAA]Remarks on the regularity criteria for generalized MHD equations
- Python之字符串源码解析