• Qemu系统模拟:1 简介


    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
  • 相关阅读:
    Docker下安装redis
    基于Java实现的词法分析器
    设置渐变边框色
    linux 归档和压缩文件和目录
    “智能与未来”2024世亚国际智能机器人展会(简称:世亚智博会)
    37. 解数独
    有哪些pdf转word的免费软件?这个办法值得一试
    【Android】App开发-控件篇
    aiops时代, 10分钟学会用AIAnsbile去调试ansible任务
    算法基础1.1 快速排序
  • 原文地址:https://blog.csdn.net/weixin_43860783/article/details/133719859