关于QEMU模拟器本身以及和CXL功能模拟相关内容的学习

前言:在写Paper的时候,发现直接引用QEMU官网关于QEMU的介绍实在是一个图省事儿的方法,但是并不可取。即使是一小段,也要去真正了解QEMU的基本原理,如何实现功能模拟,以及目前实现的与CXL相关的内容。
注:本文主要是一些概念性的内容,关于具体如何通过QEMU模拟CXL type 3 设备,已经有其他文章阐述,在此不赘述。

需要关注以下几个问题:

  1. QEMU是什么?QEMU有哪些工作模式?
  2. QEMU是如何都支持哪些CXL相关的功能?是如何支持这些功能的?
  3. 另外,很多文章在谈到QEMU的时候都会提到KVM,什么是KVM?KVM又是如何与QEMU交互协作的?

问题一

QEMU全称Quick EMUlator,是一种开源的虚拟机监视器和仿真器,主要是为了实现功能上的模拟,并不关注系统内部的实现和真实世界是否一致。(很多文章将其译为模拟器,实际上是不准确的)

QEMU主要有2种用法,一种是作为emulator使用,另外一种是作为virtualizer使用。当作为emulator使用时,有2种具体的操作模式分别是full-system和user-mode。full-system会模拟系统的全部组件,包括处理器和外围设备,可以直接在其上运行操作系统;user-mode只是在当前宿主机的环境下,运行与当前CPU不同指令集的进程,即在CPUA上的可执行程序同样可以在CPUB上执行,但是二者的OS需要相同,因为用户层可执行程序仅仅是对OS的调用,所以通过qemu可以将arm指令描述的对OS 的调用翻译为对x86 指令描述的对OS的调用调用即可。当作为virtualizer使用时,通过底层的硬件支持(Intel-VT,AMD-V等虚拟化技术)和Xen或者KVM等系统级虚拟化技术相结合,高效运行虚拟化系统。一个arch (x86)的cpu + 外设,虚拟为多台相同arch + 不同外设的虚拟机器(不同层级虚拟化技术的结合+QEMU)。

那么emulator和virtualizer的区别是什么呢?
emulator通常是为了模拟不同指令集、不同体系架构的 CPU,所以多数情况要对微指令进行解释执行,效率相对与虚拟化慢很多;virtualizer基本都是去虚拟出来另外一套相同指令集相同架构的硬件平台,因此在做好保护的前提下,很多时候可以直接利用 CPU 去执行目标指令。虽然还是模拟物理 CPU 而不借助于 Host OS 的功能,少了一层指令集转换,运行速度会提高不少。

问题二

QEMU主要支持CXL2.0及更高版本。并实现了许多CXL系统标准组件,CXL系统的控制和功能通过系统软件使用CXL2.0 spec中描述的方法发现。
QEMU实现的CXL系统标准组件主要包括:CXL主机桥(Host Bridge),CXL根端口(CXL RP),CXL交换机以及CXL type 3设备等。

问题三

QEMU本身可以模拟底层的全部硬件,包括CPU,内存和硬件设备等,Guest OS将QEMU模拟出的硬件当成真实硬件进行交互,实际上QEMU会将操作系统的指令转译给真正的硬件。所有的指令都要通过QEMU进行转译,因此性能较差。
QEMU模拟架构
上图来自:https://blog.csdn.net/whatday/article/details/78445932

KVM本身是Linux内核的模块,它能够让Linux主机成为一个Hypervisor,KVM的主要功能是打开并初始化Virtual Machine Extension(VMX)功能,提供相应的接口以支持虚拟机运行。KVM只模拟CPU和内存,Guest OS的CPU指令不需要经过QEMU转译,直接运行,大大提高速度。

QEMU-KVM的出现主要是为了同时满足虚拟化性能和与底层模拟硬件的交互。此方式将QEMU模拟CPU、内存的代码换成KVM,而网卡,显示器等IO设备仍由QEMU负责,从而实现真正意义上的服务器虚拟化。

virtio_blk, virtio_net,由于QEMU模拟其他的硬件同样会影响设备的性能,于是又产生了pass through半虚拟化设备,以提高性能。

参考文献

[1]QEMU入门指南
[2]QEMU的编译与使用
[3]Qemu: User mode emulation and Full system emulation
[4]QEMU支持3种运行模式的理解
[5]CXL-QEMU
[6]KVM-Qemu-Libvirt三者之间的关系
[7]QEMU和KVM的关系

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/306274.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache中间件漏洞

目录 什么是Apache Apache文件上传(CVE-2017-15715) Apache后缀解析 什么是Apache Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最…

景芯2.5GHz A72训练营dummy添加(一)

景芯A72做完布局布线之后导出GDS,然后进行GDS merge,然后用Calibre对Layout添加Dummy。在28nm以及之前的工艺中,Dummy metal对Timing的影响不是很大,当然Star RC也提供了相应的解决方案,可以考虑Dummy metal来抽取RC。…

03-JAVA设计模式-享元模式

享元模式 什么是享元模式 享元模式(Flyweight Pattern)是一种对象结构型设计模式,用于减少创建对象的数量,以减少内存占用和提高系统性能。它通过共享已经存在的对象来避免创建大量相似的对象,从而降低内存消耗。 在…

韦东山freeRTOS第一天课程笔记

文章目录 一、课程目标二、堆和栈三、创建freertos任务 一、课程目标 双架构 ARM: 目前主流的架构,用得最广,芯片公司需要付费购买,再搭配各种模块才能设计出芯片。 RISC-V: 后起之秀,开源、免费。 双系统…

【考研数学】《660》+《880》高分搭配方法

📝《660题》和《880题》高效刷题方法 1️⃣做题要有针对性,不要为了做题而做题 💪660和880题虽然多,但是你不用全都做完,你可以把它当成是题源,里面的每一道题都很经典,如果搞懂一道&#xff…

练习6 beach beauty

文章目录 图片展示 图片展示

第十三章 OpenGL ES-RGB、HSV、HSL模型介绍

第十三章 OpenGL ES-RGB、HSV、HSL模型详细介绍 第一章 OpenGL ES 基础-屏幕、纹理、顶点坐标 第二章 OpenGL ES 基础-GLSL语法简单总结 第三章 OpenGL ES 基础-GLSL渲染纹理 第四章 OpenGL ES 基础-位移、缩放、旋转原理 第五章 OpenGL ES 基础-透视投影矩阵与正交投影矩阵…

Java基础第十课——类与对象(1)

前面二白的九讲属于Java基础方面的内容,总体来说偏基础和简单,能完成的操作也有限,有兴趣的同学可以写一写相关的管理系统,后面二白也会上传一些自己敲的小系统,下面就要开始Java面对对象的知识内容了,从这…

特别详细的Spring Cloud 系列教程2:微服务网关gateway的启动

继上一篇:特别详细的Spring Cloud 系列教程1:服务注册中心Eureka的启动 在比较多的教程和书籍里,spring cloud的微服务网关用的Zuul。然而,zuul已经不被官方提倡,现在提倡用的是spring cloud gateway。因为gateway的整…

MySQL相关问题快问快答

我写这篇文章的目的只有一个:通过这些问题来帮助我去将我脑子里的MySQL脑图给巩固熟悉,通过回答这些问题,让我对脑子里的MySQL知识有更深的印象,当什么时候我的MySQL脑图不熟的时候,我就可以拿这篇文章来去巩固一下&am…

数字化智慧养老:引领老年人融入科技时代新生活

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 人类社会已经步入了一个全新的数字时代。在这个时代,互联网、大数据、人工智…

【Linux进阶之路】地址篇

文章目录 一、ipv4地址1. 基本概念2. 分类3.CIDR4.特殊的ip地址 二、IP协议1. 协议字段2.分片与重组3.路由 三、NAT技术1.公有和私有2.NAT3.NAPT 四、ARP协议1.MAC地址2.ARP 五、DHCP协议六、DNS协议尾序 一、ipv4地址 1. 基本概念 概念:IP地址,英文全…

FHE全同态加密简介

1. 何为FHE? FHE (Fully homomorphic encryption): 是一种隐私技术,支持直接对密文进行计算,而无需对密文先解密再计算。即,任何第三方或云厂商,都可对敏感信息的密文进行处理,而无需访问密文内…

爬虫现在还有那么吃香嘛?

Python 作为一种广泛应用的编程语言,在 Web 开发、大数据开发、人工智能开发和嵌入式开发等领域都有着重要的应用。 Python 的易学性、清晰性和可移植性等特点使它得到很多技术人士的喜爱。对于数据科学和机器学习领域的程序员来说,Python 提供了强大的…

华为ensp中PPPOE (点对点协议)原理和配置命令

作者主页:点击! ENSP专栏:点击! 创作时间:2024年4月12日6点30分 PPPoE(PPP over Ethernet)是一种将PPP协议封装到以太网帧中的链路层协议。它可以使以太网网络中的多台主机连接到远端的宽带接…

打破传统,蔚莱普康定义国货美妆新未来

在全球美妆市场经济改革的今天,中国新兴品牌蔚莱普康,正在以前所未有的速度和规模,冲破瓶颈,赢得市场的广泛认可。这一切,得益于国家政策的扶持和国货品牌自身的不懈努力与创新。 各类国潮产品不断‘出圈’的背后&…

c语言:操作符

操作符 一.算术操作符: + - * % / 1.除了%操作符之外,其他的几个操作符可以作用与整数和浮点数,如:5%2.0//error. 2.对于操作符,如果两个操作数都为整数,执行整数除法而只要有浮点数执行的就是浮点数除法。 3.%操作符的两个操作数必须为整数。 二.移位操作符:<&…

数据结构复习指导之顺序表上基本操作的实现(插入、删除、查找)

文章目录 顺序表基本操作实现 知识总览 1.顺序表的初始化 1.1静态分配顺序表的初始化 1.2动态分配顺序表的初始化 2.插入操作 2.1插入操作流程 2.2插入操作时间复杂度 3.删除操作 3.1删除操作流程 3.2删除操作时间复杂度 4.查找操作 4.1按位查找 4.2按位查找时间…

【学习】Spring IoCDI

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f4d5;格言&#xff1a;吾愚多不敏&#xff0c;而愿加学欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 Spring 是什么&#xff1f; 什么是 IoC容器&#xff1f; 传统开发模式 loC开发模式 IoC的优势 IoC 的使用 Bean的…

飞书在成都举办先进生产力峰会,新希望、万华投资等企业参加

4月12日&#xff0c;飞书在成都举办“共谋新质、与先进齐飞”先进生产力峰会&#xff0c;该会由川商总会支持举办。峰会上&#xff0c;飞书邀请多名川渝明星企业一号位、管理者探讨“如何让区域经济走向全国经济”&#xff0c;探索千行百业的高质量发展道路。 会上&#xff0c…