首页 > 其他分享 >FEMU模拟器学习笔记

FEMU模拟器学习笔记

时间:2023-08-20 14:11:31浏览次数:46  
标签:femu 笔记 C语言 FEMU device QOM QEMU 模拟器

 

  • QEMU参数解析

    QEMU的main函数进来后,首先要进行参数解析。一个启动模拟器的命令行如下:

x86_64-softmmu/qemu-system-x86_64 -name "FEMU-ZNSSD-VM" -enable-kvm -cpu host -smp 2 -m 4G -device virtio-scsi-pci,id=scsi0 -device scsi-hd,drive=hd0 -drive file=/home/yao/images/u20s.qcow2,if=none,aio=native,cache=none,format=qcow2,id=hd0 -device femu,devsz_mb=4096,femu_mode=3 -net user,hostfwd=tcp::8080-:22 -net nic,model=virtio -nographic

    QEMU将这些参数分为几大类,每一类构成一个QemuOptsList。。。

 

  • FEMU模块

    FEMU是QEMU的一个device,实际代码中以QOM(Qemu Object Model)的方式实现。QOM是QEMU实现的面向对象编程模式。QEMU是用C语言编写的,而C语言是面向过程的编程语言,无法享受面向对象编程模式针对复杂软件系统在设计模式上的优越性。为解决该问题,QEMU社区通过C语言实现了一套面向对象的编程接口,即QOM,并成功将其应用在QEMU设备模型的管理中。

#/hw/femu/femu.c

static const TypeInfo femu_info = {
    .name          = "femu",
    .parent        = TYPE_PCI_DEVICE,
    .instance_size = sizeof(FemuCtrl),
    .class_init    = femu_class_init,
    .interfaces = (InterfaceInfo[]) {
        { INTERFACE_PCIE_DEVICE },
        { }
    },
};

 

 

 

标签:femu,笔记,C语言,FEMU,device,QOM,QEMU,模拟器
From: https://www.cnblogs.com/yaotong0830/p/17643950.html

相关文章

  • 【刷题笔记】26. Remove Duplicates from Sorted Array
    题目Givenasortedarraynums,removetheduplicatesin-placesuchthateachelementappearonlyonceandreturnthenewlength.Donotallocateextraspaceforanotherarray,youmustdothisbymodifyingtheinputarrayin-placewithO(1)extramemory.E......
  • 贪心,构造学习笔记
    贪心构造不会黄题绿题懵逼横批:依托答辩\(\text{CF1764C}\)题目描述有一些点,每一个点有一个点权\(a_i\)。你可以在任意点之间连边,最终的图需要满足不存在\(a,b,c\)满足\(a_a\leqslanta_b\leqslanta_c\)并且\(ab,bc\)之间有连边。思路点拨我们连出来的图一定可以......
  • 基于Springboot学生读书笔记共享
    本文主要论述了如何使用JAVA语言开发一个读书笔记共享平台,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述读书笔记共享平台的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分析设计......
  • openGauss学习笔记-45 openGauss 高级数据管理-物化视图
    openGauss学习笔记-45openGauss高级数据管理-物化视图物化视图是相对普通视图而言的。普通视图是虚拟表,而物化视图实际上就是存储SQL执行语句的结果,可以直接使用数据而不用重复执行查询语句,从而提升性能。按照刷新方式物化视图分为两种:全量物化视图:仅支持对已创建的物化视图......
  • 读发布!设计与部署稳定的分布式系统(第2版)笔记33_混沌工程
    1. 康威定律1.1. 梅尔文·康威1.1.1. MelvinConway1.1.2. 1968年1.1.3. 在设计系统时,组织受制于其自身的沟通结构,这使得它设计的系统结构与沟通结构相一致。1.1.3.1. 社会学现象1.2. 要在系统内部或系统之间构建接口,两个人必须以某种方式沟通有关该接口的规范1.2.......
  • ON JAVA 8读书笔记|前言
    ONJAVA8这本书是基于Java8的特性进行编程教学的,同时也根据Java11、Java17这三大LTS【长期支持版本】版本新特性做了关键更新。 Java8最大的改进是引入了函数式编程【lambda表达式、流(stream),函数式基本类型(functionalprimitive)】,这也是Java8经久不衰的原因,是里程碑......
  • *【学习笔记】(10) 块状链表
    块状链表(尚未完善)对于线性表,可以\(O(1)\)的访问,但是插入和删除操作是\(O(n)\)对于链表,可以\(O(1)\)的进行插入和删除,但是是\(O(n)\)的访问。于是本着分块的思想,有了块状链表。大概长这个样子。每个块的大小数量级在\(O(\sqrt{n})\),块数的量级\(O(\sqrt{n})\)主......
  • *【学习笔记】(23) 常用距离算法详解
    本文主要讲述这三种常见距离算法:欧氏距离,曼哈顿距离,切比雪夫距离。1.欧氏距离欧氏距离是最易于理解的一种距离算法。在数学的平面直角坐标系中,设点\(A,B\)的坐标分别为\(A(x_1,y_1),B(x_2,y_2)\),求点\(A,B\)之间的距离,我们一般会使用如下公式:\[\left|AB\right|=......
  • 「学习笔记」莫比乌斯反演
    「学习笔记」莫比乌斯反演点击查看目录目录「学习笔记」莫比乌斯反演前置知识整除分块积性函数线性筛任意积性函数莫比乌斯反演莫比乌斯函数莫比乌斯反演公式例题[HAOI2011]ProblembYY的GCD[SDOI2014]数表DZYLovesMath[SDOI2015]约数个数和[SDOI2017]数字表格于神之......
  • Spring Boot学习笔记day01
    SpringBoot项目结构说明项目____pom.xml:用于管理项目依赖的|_src|_main|_java:蓝色的,写java源代码的|_resource:存放静态资源文件(static目录下)、项目配置文件application.properties、模板文件(template目录下)|_test|_java......