本文用于记录对QEMU对ELF文件加载函数进行分析。根据“函数使用->函数定义->函数实现->函数实现的分析”的顺序进行分析,最终提取出ELF文件加载的代码。 1. load_elfmips malta中,对load_elf的使用如下: if (load_elf(loaderparams.kernel_filename, cpu_mips_kseg0_to_phys,
1 Qemu内存分布2 内存初始化Qemu中的内存模型,简单来说就是Qemu申请用户态内存并进行管理,并将该部分申请的内存注册到对应的加速器(如KVM)中。这样的模型有如下好处:策略与机制分离。加速的机制由KVM负责,而如何调用加速的机制由Qemu负责可以由Qemu设置多种内存模型,如UMA、NUMA等等方便Qemu对特殊内存的管理(如MMIO)内存的分配、回收、换出等都可以采用Linux原有的机
转载
2024-04-02 17:52:05
62阅读
环境:archlinux背景:在虚拟机里玩dpdk,把挂载HugePage(hugetlbfs)的命令写入fstab的时候,写错了,无法启动,需要把qcow2挂起来改一下。方法:使用qemu-nbd来源与参考与鸣谢:http://smilejay.com/2012/11/how-to-mount-a-qcow2-image/ &n
转载
2024-10-09 11:43:50
68阅读
无意间搜到了韦东山老师的6ul网站,上面有一个6ul的qemu仿真器,下载下来用了用,非常好用,有UI,比原装的qemu-system-arm提供的6ul开发板多了很多功能。 下面贴出的就是韦东山老师的qemu网站: 但是默认的跑了linux,没有裸机的例程。所以本文写了几个裸机的程序以供参考学习6ul soc上一些外设IP。目的是以最简单的代码来帮助对6ul感兴趣的朋友属性IP的使用。 目标实现
转载
2024-07-31 13:39:48
805阅读
背景 在产品研发过程中,有时候会遇到linux内核崩溃,在内核崩溃的时候一般会打印出奔崩位置的上下文、调用栈等。一般简单的问题通过查看内核崩溃时打印出来的日志就能大概判断出是哪里出了问题,但是如果遇到复杂的问题,单纯通过崩溃的日志是难以定位到问题根因的,这时候我们可以把内存ddr里的数据dump出来,然后
11月4日在北京举行的 VMware虚拟化用户大会上,来自Springboard Research的研究报告显示:随着CIO对虚拟化技术的兴趣稳步提升,到2010年,亚太区虚拟化软件和服务的市场规模将达到13.5亿美元,年均复合增长率达到42%。研究报告指出,50%的CIO计划在未来18~24个月内部署虚拟化解决方案,以解决系统容量利用率低、性能差,以及与管理日益扩大的IT基础架构相关
转载
2024-09-29 21:56:29
44阅读
KVM 虚拟化学习之虚拟磁盘管理 qemu-img 一、虚拟磁盘简述1.1 虚拟存储性能的解决方案1.2 虚拟磁盘存储方案二、qemu-img 命令 -- 虚拟磁盘管理2.1 qemu-img 概述2.2 qemu-img 功能示例:2.2.1 创建一个镜像 create2.2.2 查看虚拟磁盘信息 - info2.2.3 检查磁盘镜像完整性(一致性) -- check2.2.4 调整磁盘镜像容
转载
2024-01-11 13:37:05
102阅读
什么是 virtio#
virtio 是一种 I/O 半虚拟化解决方案,是一套通用 I/O 设备虚拟化的程序,是对半虚拟化 Hypervisor 中的一组通用 I/O 设备的抽象。提供了一套上层应用与各 Hypervisor 虚拟化设备(KVM,Xen,VMware等)之间的通信框架和编程接口,减少跨平台所带来的兼容性问题,大大提高驱动程序开发效率。为什么是 virtio#
在完全虚拟化的解决方案
转载
2023-11-30 13:47:01
103阅读
内存虚拟化内存初始化qemu的虚拟地址作为guest的物理地地址,guest运行在虚拟的地址空间,但终究是存在物理内存上的,所以要建立虚拟地址空间与物理地址之间的映射。另外,必须要为虚拟机运行程序提供安全的、隔离的运行环境,避免虚拟机之间、虚拟机与宿主机之间的相互干扰。qemu会提前为guest申请好虚拟地址,只有真正需要的时候,通过产生页中断申请物理地址,并且建立页表产生对应关系。guest对内
转载
2024-07-04 19:54:40
163阅读
文章目录VirtIO设备模拟及初始化流程Virtio设备的创建参数解析virtio 设备初始化流程pci_bus_matchpci_match_devicepci_device_probevirtio_pci_proberegister_virtio_devicevirtio_dev_matchvirtio_dev_probe参考 VirtIO设备模拟及初始化流程qemu设备虚拟机化的路线可以概
转载
2024-03-11 13:40:23
190阅读
qemu负责模拟虚机的外设,因此虚机的线性地址空间主要由qemu进行管理,也就是确定线性地址空间中哪段地址属于哪个设备或者DRAM或者其他的什么。1、数据结构1、RAMBLOCK(最直接接触host内存,有hva)RAMBLOCK才是真正分配了host内存的地方,如果把它直接理解成一个内存条也是非常合适的,但实际上不仅仅如此,还有设备自有内存,显存。ram_list则是RAMBlock的链表。每个
转载
2024-01-11 15:50:08
218阅读
1 内存虚拟化简介QEMU-KVM 提供内存的虚拟化,从虚拟机角度看其自身拥有的内存就是真实的物理内存。实际上,虚拟机是 host 上的一个 qemu 进程,在为虚拟机指定内存时,host 上并没有分配该内存给虚拟机(qemu 进程),而是需要使用内存时,由 qemu-kvm 分配内存给它。 看这里了解 QEMU-KVM 内存虚拟化机制。2 内存虚拟化配置传统的内存虚拟化通过影子页表实现
转载
2023-08-30 23:10:11
311阅读
一.虚拟化介绍在X86平台的虚拟化技术中,新引入的虚拟化层通常称为虚拟化监控器(Virtual Machine Monitor,VMM),也叫Hypervisor。在虚拟化中,VMM必须能截获计算元件到物理资源的直接访问,并将其重定向到虚拟资源池中。根据VMM是用纯软件的方法还是利用物理资源提供的机制来“截获重定向”,可分为软件虚拟化和硬件虚拟化。 &
转载
2024-03-14 17:01:17
106阅读
背景Read the fucking source code! --By 鲁迅A picture is worth a thousand words. --By 高尔基说明:KVM版本:5.9.1QEMU版本:5.0.0工具:Source Insight 3.5, Visio1. 概述从这篇文章开始,将开始虚拟化的系列研究了,大概会涉及到ARM64虚拟化支持、KVM、QEMU等分析;虚拟化相关的实
转载
2024-08-07 09:16:32
89阅读
花点时间来总结一下前阵子的工作。 qemu的底层块设备无疑是我所见过的最复杂的模块了,说得好像我很精通很多模块一样(大雾)。 它的raw镜像格式文件的驱动的核心代码主要都是在raw-posix.c文件下面了看看那里的各种API吧哈哈哈。名字也起的特别的显眼,很容易就让人清楚那个API究竟是干啥用的。 目前阅读代码所能认知到那群维护者所用到的技术有 异步IO(AIO),多线程,协程(cou
转载
2024-08-13 14:38:08
54阅读
一、qemu中物理内存的注册
cpu_register_physical_memory调用cpu_notify_set_memory
cpu_notify_set_memory调用kvm_client_set_memory
kvm_client_set_memory调用kvm_set_phys_mem
kvm_set_phys_mem调用kvm_set_user_me
转载
2023-10-16 21:50:30
545阅读
内存虚拟化是一个很大的话题,最近安全部门发现了一个qemu内存虚拟化的安全漏洞,反馈给云平台让解决,感觉很棘手,引起了我对内存虚拟化的思考,想到什么问题就把思考记录下来。x86虚拟内存问题是由学习qemu MemoryRegion想到的,文档memory.rst中有一句话“memory banks used when the guest address space is smaller than
转载
2024-08-06 14:45:40
68阅读
QEMU-KVM作为一个VMM提供了全虚拟化环境,guest不经过任何修改就能运行在KVM环境中。不过KVM在IO虚拟化方面,使用QEMU纯软件的方式来模拟IO设备,效率并不高。在KVM中,要想提高IO虚拟化的效率,就要使用半虚拟化的方式:virtio。简单介绍全虚拟化和半虚拟化 在全虚拟化 中,guest操作系统运行在VMM之上,并不知道它已被虚拟化,不需要任何更改就可
转载
2023-10-08 21:50:17
281阅读
一、什么是Qemu?Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬件打交道,Qemu 将这些指令转译给真正的硬件。正因为 Qemu 是纯软件实现的,所有的指令都要经 Qemu 过一手,性能非常低,所以,在生产环境中,大多数的做法都是配合 KVM 来完成虚拟化工作
转载
2023-11-26 09:21:36
387阅读