2.1 Qemu系统模拟:简介

目录

    • 1 后端/加速器
    • 2 特性简介
    • 3 运行

1 后端/加速器

  • 系统模拟主要用于在host设备上运行guest OS
  • QEMU支持多种hypervisors,同时也支持JIT模拟方案(TCG)
    • 加速器
    • 例如从上表我们可以看出,运行在x86硬件上的Linux系统支持KVM,Xen,TCG

2 特性简介

  • 提供了多种设备模型device model用于模拟你想要加入到模拟及其上的各类设备
    • 多种设备模拟方案:直接模拟(即由qemu主程序进行设备管理),独立模拟(基于VirtIO或Multi-process QEMU),设备直传(即将真实设备“穿透”到VM中,需要硬件支持
  • feature block layer:用于支持复杂存储拓扑的构建
  • chardev:一种灵活的字符设备模拟方案,可以基于stdio、file、Sockets等实现对字符设备的模拟
  • 多种管理接口Management Interface
    • Human Monitor Protocal(HMP)
    • QEME Monitor Protocal(QMP)

3 运行

  • Qemu提供了非常丰富且复杂的接口
    • 部分体系结构下支持基于disk image的“一键启动”,但这种方式隐藏了很多可控的细节
  • 除了通过命令行的方式进行虚拟机管理外,基于QMP构建的libvirt框架现在也有非常的,可用的,更友好的虚拟机管理工具
  • 系统模拟的command line一般形式
    • command line
      • Qemu并没有提供一个统一的命令行工具,而是依据模拟方案以及模拟目标进行划分,例如途中的qemu-system-x86_64表示针对x86的系统模拟(system)命令行工具
    • 选项概览
        1. Machine选项定义了模拟及其的类型,各种不同的设备可能包含默认device
        1. Device选项用于定义Machine选项中没有默认值的设备
        1. Backends选项定义了模拟机器的“工作模式”
  • 案例:
$ qemu-system-aarch64 \
# machine相关选项
-machine type=virt,virtualization=on,pflash0=rom,pflash1=efivars \
-m 4096 \# CPU相关选项
-cpu max,pauth-impdef=on \
-smp 4 \
-accel tcg \# device相关选项
-device virtio-net-pci,netdev=unet \
-device virtio-scsi-pci \
-device scsi-hd,drive=hd \# 对特定device进行配置
-netdev user,id=unet,hostfwd=tcp::2222-:22 \
-blockdev driver=raw,node-name=hd,file.driver=host_device,file.filename=/dev/lvm-disk/debian-bullseye-arm64 \# 管理与输出配置
-serial mon:stdio \  # 令Qemu monitor复用(stdio)
-display none \  # 无显示配置# 启动配置
-blockdev node-name=rom,driver=file,filename=(pwd)/pc-bios/edk2-aarch64-code.fd,read-only=true \
-blockdev node-name=efivars,driver=file,filename=$HOME/images/qemu-arm64-efivars

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

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

相关文章

智能AI创作系统ChatGPT详细搭建教程/AI绘画系统/支持GPT联网提问/支持Prompt应用/支持国内AI模型

一、智能AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统,支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作…

TestNG学会了,Java单元测试你就掌握了一半!

01、TestNG 01、简介 在日常测试工作中,经常需要用写代码和脚本来完成一些测试任务,比如自动化测试,接口测试,单元测试等。当写完若干脚本后,需要对这些脚本进行组织、管理和结果统计,这个时候就需要有一…

Arm64体系架构-MPIDR_EL1寄存器

背景 在Arm64多核处理器中, 各核间的关系可能不同. 比如1个16 core的cpu, 每4个core划分为1个cluster,共享L2 cache. 当我们需要从core 0将任务调度出来时,如果优先选择core 1~3, 那么性能明显时优于其他core的. 那么操作系统怎么知道core之间这样的拓扑信息呢? Arm提供了MPID…

「专题速递」AR协作、智能NPC、数字人的应用与未来

元宇宙是一个融合了虚拟现实、增强现实、人工智能和云计算等技术的综合概念。它旨在创造一个高度沉浸式的虚拟环境,允许用户在其中交互、创造和共享内容。在元宇宙中,人们可以建立虚拟身份、参与虚拟社交,并享受无限的虚拟体验。 作为互联网大…

【Es基础入门必看】

Es基础入门 1. ElasticSearch的认知1.1 搜索1.2 倒排索引1.3 Lucene1.4 ES基本概念 1. ElasticSearch的认知 ElasticSearch(以下简称ES)是什么?按照官网的定义,ElasticSearch是一个分布式的、RESTFUL风格的搜索引擎。 1.1 搜索…

Netron【.pt转.onnx模型展示】

接着上一篇写哈,如何转.onnx的。 因为是转.onnx类型的,需要先安装onnx的包。 这是直接pip install onnx后转onnx报的错: 很显然是版本问题导致的,so: 将export.py的脚本拉到最下面的parse_opt函数,把“17”改为“12”…

超越React,JS代码体积减少90%!它为何是2023年最好的Web框架?

说到Web框架,大家最先想到的可能是 Vue、React,或者是Next.js。但不得不提,有个后起之秀“来势汹汹”,1.0版本发布至今仅一年,就出尽风头。它就是Astro。 Astro 是什么?一个现代化的静态站点生成器和前端框…

Notepad++提取含有特定字符串的行

ctrl M快捷键,进入"标记" 页面 标记所在行–循环查找-- 正则表达式 – 输入关键字 – 全部标记 – Copy Marked Text 关键字格式如下: .*关键字.*ctrl v,粘贴即可。

深入理解PKI

安全始终是网络通信的核心议题,PKI提供了一组标准的网络安全组件,可以为通信双方提供加密、完整性保护、认证等安全基础设施。原文: Public Key Infrastructure (PKI) Jacek DylagUnsplash 由于用户名和密码不足以验证用户的身份,因此PKI(公钥…

Deep learning of free boundary and Stefan problems论文阅读复现

Deep learning of free boundary and Stefan problems论文阅读复现 摘要1. 一维一相Stefan问题1.1 Direct Stefan problem1.2 Inverse Type I1.3 Inverse Type II 2. 一维二相Stefan问题2.1 Direct Stefan problem2.2 Inverse Type I2.3 Inverse Type II 3. 二维一相Stefan问题…

使用chat-GPT接口提取合同中关键信息

1 业务需求 目前公司有几千份合同,而且还会不断的增长;现在需要将合同中的关键信息提取出来给业务使用,业务现在需要将这些关键字段信息录入存档到档案系统;人工去阅读整个合同去提取这些信息,是很浪费人力的&#xff…

Netty深入浅出(无处不在的IO)

为什么要有Netty Netty是为了解决网络编程的复杂性和提供易于使用、高性能和可扩展的框架而开发的。它通过提供一组可重用的组件来处理网络通信的低级细节,例如套接字管理、线程和缓冲,简化了开发网络应用程序的过程。这使开发人员可以专注于应用程序逻…