问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

QEMU虚拟机管理器:一种高效硬件模拟器

发布网友 发布时间:2024-08-19 20:15

我来回答

1个回答

热心网友 时间:2024-08-26 19:51

QEMU(Quick EMUlator)是一种开源的虚拟机监视器和模拟器,支持多种硬件平台模拟,如x86、ARM、PowerPC等,被广泛应用于虚拟化、嵌入式系统开发和仿真等领域。

作为虚拟机监视器,QEMU能在物理主机上同时运行多个虚拟机,并提供管理控制能力。它支持多种操作系统,包括Linux、Windows等。作为模拟器,QEMU可以在一个主机上执行不同架构的二进制代码,实现跨平台软件开发与测试,便于开发人员在不同体系结构下调试程序。

QEMU具备丰富的功能和扩展性,如硬件加速、网络配置、磁盘镜像和快照等,被广泛应用于云计算、容器技术、嵌入式系统仿真和移动设备开发等领域。

QEMU是一款开源的模拟器及虚拟机监管器(VMM)。它主要提供两种功能:一是作为用户态模拟器,执行不同于主机架构的代码;二是作为虚拟机监管器,模拟全系统,利用其他VMM(如Xen、KVM等)实现硬件虚拟化支持,创建接近主机性能的虚拟机。

用户可通过Linux发行版的软件包管理器安装QEMU,例如在Debian系列发行版上,可使用以下命令安装:

除此之外,用户也可以选择从源码安装。

获取QEMU源码,可以从QEMU下载官网上下载QEMU源码的tar包。以命令行下载2.0版本的QEMU为例:

获取源码后,可根据需求配置和编译QEMU。configure脚本用于生成Makefile,其选项可用./configure --help查看。

安装完成后,会生成以下应用程序:

QEMU作为系统模拟器时,会模拟出一台能够独立运行操作系统的虚拟机。每个虚拟机对应主机中的一个QEMU进程,虚拟机的vCPU对应QEMU进程的一个线程。

系统虚拟化主要虚拟出CPU、内存及I/O设备。虚拟出的CPU称为vCPU,QEMU为了提高效率,借用KVM、XEN等虚拟化技术,直接利用硬件对虚拟化的支持,在主机上安全地运行虚拟机代码(需要硬件支持)。

虚拟机内存会被映射到QEMU的进程地址空间,在启动时分配。在虚拟机看来,QEMU所分配的主机上的虚拟地址空间为虚拟机的物理地址空间。

QEMU在主机用户态模拟虚拟机的硬件设备,vCPU对硬件的操作结果会在用户态进行模拟,如虚拟机需要将数据写入硬盘,实际结果是将数据写入主机中的一个镜像文件中。

使用qemu-img创建虚拟机镜像,虚拟机镜像用于模拟虚拟机的硬盘,在启动虚拟机之前需要创建镜像文件。

使用qemu-system-x86启动x86架构的虚拟机。由于test-vm-1.qcow2中并未给虚拟机安装操作系统,所以会提示“无可启动设备”。

启动VM安装操作系统镜像。指定虚拟机内存大小、使用KVM加速、添加fedora的安装镜像。安装完成后,重启虚拟机即可从硬盘启动。之后再次启动虚拟机,只需执行以下命令:

qemu-img支持多种文件格式,可通过qemu-img -h查看。其中raw和qcow2是比较常用的两种格式,raw是qemu-img命令默认的格式,qcow2是qemu目前推荐的格式,功能最多。

Qemu软件虚拟化实现的思路是采用二进制指令翻译技术,提取guest代码,然后将其翻译成TCG中间代码,最后再将中间代码翻译成host指定架构的代码。

从宏观上看,源码结构主要包含以下几个部分:

(1)开始执行:/vl.c中的main函数定义,它也是执行的起点,主要建立一个虚拟的硬件环境,通过参数解析初始化内存、设备、CPU参数等。

(2)硬件模拟:所有硬件设备都在/hw/目录下面,每个设备都有独自的文件,包括总线、串口、网卡、鼠标等。它们通过设备模块串在一起,在vl.c中的machine_init中初始化。

(3)目标机器:QEMU模拟的CPU架构有Alpha、ARM、Cris、i386、M68K、PPC、Sparc、Mips、MicroBlaze、S390X和SH4。在QEMU中使用./configure可以配置运行的架构。

(4)主机:使用TCG代码生成主机的代码,这部分代码在/tcg/目录中,对应不同的架构,分别在不同的子目录中。

(5)文件总结:TCG动态翻译、TB链、TCG代码分析、IOCTL使用流程、内存管理等相关内容。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
青椒炒肉丝家常做法 QQ空间背景覆盖了自定义栏,那又要怎么取消 QQ空间自定义时不小心把模块隐藏了,要怎么找回来? 海底的火山存在吗? vue中路由跳转的三种方式 简洁易懂 vue路由调转的四种方式 ...状态详解介绍_拳击俱乐部Punch Club属性状态详解是什么 夜经济新业态是什么 南昌为什么要搞夜经济 夏天天热,不用冰箱的话,肉怎么保鲜?有没有比较专业的方法呢? 飞腾平台安装windows arm 11系统 KVM虚拟机——QEMU代码结构分析 重庆限号时间是几点到几点 正科与主任科员 一级主任科员是什么级 梦见猪肉 梦见猪肉什么意思 樱花热水器e1是什么故障 樱花恒温燃气热水器显示e1怎么回事 樱花热水器e1故障原因及解决方案 樱花热水器e1是什么故障? 宝可梦剑盾单人怎么交换进化-交换进化操作方法 口袋妖怪怎么通信交换 宝可梦朱紫怎么本地交换-本地交换精灵方法 2012款吉利全球鹰GX7原装导航是什么牌子的 ...怎么显示我的微信版本低没法发言,但是我微信版本是? 好分数等级是怎么回事? 小孩的优秀率是多少? 360借条什么申请不通过 菜鸟驿站快递较多可以放几天 秋瓷炫和于小光分手没 于晓光爱妻人品崩塌,秋瓷炫为何不分手?原来两 ... 食品机械食品机械的发展 MSN怎么知道对方已同意添加自己为好友?很急很急,感谢~ 亲爱的回家演员表电视剧亲爱的回家演员表 小股东是否有查账的权利 小股东有权查公司的账吗 卡西欧运动手表,这款手表怎么设置闹钟啊??请告诉我好吗? 学位论文的装订规范是否需要包含1500字的外文文献译文? 2022轨道交通专业怎么样 就业前景好吗 《心灵奇旅》有哪些彩蛋 心灵奇旅彩蛋细节 2019乒乓球亚锦赛日本队名单公布,为什么伊藤美诚不在名单之中?_百度知 ... 企业总产值怎么算(企业总产值的计算公式) 成人驼背已久怎样矫正 青少年驼背怎么进行矫正 迪迦第一集是本尊代打吗 老年人适合做什么小生意 电脑睡眠后唤醒鼠标键盘失灵怎么办? 为什么电脑进入睡眠状态以后电源键就熄灭了,然后键盘就开始一直背光_百 ... 腾讯618事件是什么 珊瑚版qq为什么消失了 男生害羞是怎么回事? 腾讯手机管家取得成就