qemu

How to count the number of guest instructions QEMU executed from the beginning to the end of a run?

落花浮王杯 提交于 2020-08-25 07:04:09
问题 I want to benchmark guest instructions per second of QEMU to compare it with other simulators. How to obtain the guest instruction count? I'm interested both in user and full system mode. The only solutions I have now would be to log all instructions with either simple trace exec_tb or -d in_asm : How to use QEMU's simple trace backend? and then count the instructions from there. But this would likely considerably reduce simulation performance due to the output operations, so I would likely

Centos5.4下安装kvm手册

末鹿安然 提交于 2020-08-19 17:41:02
[前段时间学习了xenserver,感觉不错,就是对他的免费感觉质疑,如果后期他某一天不提供免费了,那我不惨了。所以,我还是将学习方向转到开源的领域了。] (1)Centos5.4 安装,升级 开启SELinux(如果你的SELinux被禁用,virt-install将不会正常工作) system-config-securitylevel-tui (2)kvm 安装 (a) 检查CPU是否支持硬件虚拟化-运行命令 egrep '(vmx|svm)' --color=always /proc/cpuinfo (如果输出的结果包含 vmx,它是 Intel;如果包含 svm,它是 AMD。如果你甚么都得不到,那应你的系统并没有支持虚拟化的处理。 ) (b) 安装KVM和virtinst(一个创建虚拟机的工 具),我们运行 yum install kvm kmod-kvm qemu libvirt python-virtinst 然后重新启动系统: R eboot 使用下列命令检查KVM是否成功安装 virsh -c qemu:///system list 将会显示如下结果: [root@server1 ~]# virsh -c qemu:///system list Id Name State ---------------------------------- [root

[KVM] 网络虚拟化原理

拟墨画扇 提交于 2020-08-18 08:36:47
KVM 网络的配置有一下几种 用户模式,即创建 vm 时默认的网络模式 Bridge 模式 NAT 模式 VT-d 技术 Bridge 模式 bridge 是二层转发设备,主要功能是多个 LAN 间的的数据帧转发,即包括 MAC 学习,生成树协议等。 Qemu vm 启动时的网桥配置,是使用 tap 设备完成的,如下命令: qemu -system -x86_64 \ -netdev tap ,id =host -net0 ,ifname =vm1eth0 ,script = /etc /ifup ,downscript = /etc /ifdown \ -device virtio -net -pci ,netdev =host -net0 ,id =host -net0 ,mac = 0a :e8 : 4f :c5 : 6a : 16 ,bus =pci . 0 ,addr = 0x7 // 解释: // -ifname: Host 上呈现的 tap 虚拟设备的名称 // -script: Host 在启动 GuestOS 时默认执行脚本,一般是将 tap (vm1eth0) 加入到 bridge 中 // -downscript: Host 在关闭 GuestOS 时默认执行脚本,一般是将 tap (vm1eth0) 从 bridge 中移除 tap 原理: tap

Linux编译安装qemu

谁说我不能喝 提交于 2020-08-18 08:13:35
1.wget方式 # wget https://download.qemu.org/qemu-5.1.0.tar.xz # tar xvJf qemu-5.1.0.tar.xz # cd qemu-5.1.0 # ./configure # make # make install 2.git方式 # git clone https://git.qemu.org/git/qemu.git # cd qemu # git submodule init # git submodule update --recursive # ./configure # make # make install 3.测试 # qemu-arm -version qemu-arm version 2.0.0,Copyright (c) 2003-2008 FabriceBellard 注意:本人下的是qemu2.0: qemu-2.0.0.tar.bz2 来源: oschina 链接: https://my.oschina.net/u/4386652/blog/4493625

VMware/KVM/Docker原来是这么回事儿

谁说我不能喝 提交于 2020-08-18 03:30:23
云计算时代,计算资源如同小马哥当年所言,已经成为了互联网上的水和电。 虚拟主机、web服务器、数据库、对象存储等等各种服务我们都可以通过各种各样的云平台来完成。 而在云计算欣欣向荣的背后,有一个重要的功臣,那就是虚拟化技术。可以毫不客气的说,没有了虚拟化技术,云计算无从谈起。 说起虚拟化你会想到什么?从我们常用的虚拟机三件套VMware、VirtualPC、VirutalBox到如今大火的KVM和容器技术Docker? 这些技术是什么关系,背后的技术原理是怎样的,又有什么样的区别,各自应用的场景又是什么样的? 看完这篇文章,相信大家都能回答上面问题。 历史背景 什么是虚拟化技术? 维基百科中的解释是这样的: 虚拟化(技术)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。 对于一台计算机,我们可以简单的划分为三层:从下到上依次是物理硬件层,操作系统层、应用程序层 1974年,两位计算机科学家Gerald Popek 和 Robert Goldberg发表了一篇重要的论文《虚拟化第三代体系结构的正式要求》,在这篇论文中提出了虚拟化的三个基本条件: 等价性:程序在本地计算机执行和在虚拟机中执行应该表现出一样的结果(不包括执行时间的差异) 安全性:虚拟机彼此隔离,与宿主计算机隔离 性能

懂了!VMware/KVM/Docker原来是这么回事儿

你。 提交于 2020-08-16 01:29:35
云计算时代,计算资源如同小马哥当年所言,已经成为了互联网上的水和电。 虚拟主机、web服务器、数据库、对象存储等等各种服务我们都可以通过各种各样的云平台来完成。 而在云计算欣欣向荣的背后,有一个重要的功臣,那就是 虚拟化技术 。可以毫不客气的说,没有了虚拟化技术,云计算无从谈起。 说起虚拟化你会想到什么?从我们常用的虚拟机三件套VMware、VirtualPC、VirutalBox到如今大火的KVM和容器技术Docker? 这些技术是什么关系,背后的技术原理是怎样的,又有什么样的区别,各自应用的场景又是什么样的? 看完这篇文章,相信大家都能回答上面问题。 历史背景 什么是虚拟化技术? 维基百科中的解释是这样的: 虚拟化(技术)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。 对于一台计算机,我们可以简单的划分为三层:从下到上依次是物理硬件层,操作系统层、应用程序层 1974年,两位计算机科学家Gerald Popek 和 Robert Goldberg发表了一篇重要的论文 《虚拟化第三代体系结构的正式要求》 ,在这篇论文中提出了虚拟化的三个基本条件: 等价性 :程序在本地计算机执行和在虚拟机中执行应该表现出一样的结果(不包括执行时间的差异) 安全性 :虚拟机彼此隔离

kvm 优化特性:ksm技术,大页内存等

烈酒焚心 提交于 2020-08-15 17:53:12
参考: http://tech.it168.com/a2016/1101/3005/000003005933.shtml(ksm) http://www.cnblogs.com/dongzhiquan/p/5043912.html(大页内存优点) <kvm虚拟化技术 实战与原理解析> 简介: cow:copy on write,也就是写时复制。这是一种内存共享技术,在linux中当使用fork 函数创建一个进程时,子进程和父进程共享全部的内存,当这片共享的内存区域被进程试图修改的时候,内核会分配一块新的内存区域,并将被试图修改的共享内存区域复制到新的内存区域上,然后再让进程去修改内存区域。 ksm:kernel SamePage Merging。 ksm让内核扫描正在运行中的所有程序,并比较它们的内存,如果发现它们的内存页有相同的,那么就把它们相同的内存页合并为一个内存页,并将其标识为“写时复制”,当标识为“写时复制”的内存页需要被修改时,内核就为其分配新的内存空间,并复制内存页到新的空间,在新的内存空间上进行修改。 ksm设计初衷就是为了给虚拟化节约内存的,因为如果客户机都使用相同的系统和运行类似的程序,那么每个客户机进程就会有很大一部分的内存页是相同的,这时候使用ksm技术就能大大降低内存的使用率。也方便kvm内存的过载使用,传说有人在16G内存的机器上

一文告诉你Linux如何配置KVM虚拟化--安装篇

好久不见. 提交于 2020-08-15 01:29:10
KVM全称"Kernel-based Virtual Machine",即基于内核的虚拟机,在linux内启用kvm需要硬件,内核和软件(qemu)支持,这篇文章教你如何配置并安装KVM虚拟机. 检查硬件和系统的兼容性 检查硬件虚拟化: LC_ALL=C lscpu | grep Virtualization 这行代码其中 LC_ALL=C为设置输出语言用,lscpu输出CPU信息,在输出的CPU信息里面查找“Virtualization”(虚拟化),输出结果如果有"AMD-V"(AMD CPU) 或者"VT-X"(Intel CPU),则说明你的电脑硬件支持并且已开启虚拟化,可以下一步 那如果没有显示以上两种呢,就进入BIOS(或者UEFI)找到虚拟化/virtualization/VT-X/AMD-V一般来说是这四个名字里面任意一个,当然,如果你的班子BIOS里面是virtualization里面有vt-x和vt-d两个的话,就两个都开。然后,理论上你就能继续了,除非,你的硬件 根本不支持虚拟化(除非厂家手动阉割,现在一般不会有这问题,博主的本本一开始买来BIOS里面就是没有AMD-V的,后来就是靠BIOS更新加上的)。 举个例子:博主linux上的显示是: Virtualization: AMD-V 则证明该电脑支持AMD 的虚拟化技术 检查系统是否支持 lsmod |

Xen虚拟化详解(一)

≯℡__Kan透↙ 提交于 2020-08-14 14:04:46
一、虚拟化分类 二、Xen虚拟化模型 三、Xen的体系架构和运行机制 四、Xen的网络架构 一、虚拟化分类 虚拟化技术分类: 1.模拟:emulation //底层架构和虚拟架构可以不一样 Qemu,PearPC,Bochs 2.完全虚拟化:full virtulation,native virtulation //虚拟架构要和host架构一致,或者兼容。 多数指令可以直接运行在CPU上,特权指令需要VMM进行翻译或者调用hyper call实现 HVM:借助于硬件辅助 之前:VMM捕获所有指令,本地转换,返回给guest。后来二进制翻译加速了该过程 之后:CPU增加了一个环,VMM直接运行在ring -1,guest.kernel运行在ring 0上,guest.kernel发起特权指令,会直接发送给host.kernel,不需要VMM捕获 VMware workstation,VirtualBox,VMware Server,Paralels kvm,xen 3.半虚拟化,准虚拟化:paraVirtulization guest.kernel需要修改,知道自己运行在虚拟化环境中 Hypercall:发起,从而操作硬件。 Xen,UML 4.OS级别的虚拟化 //系统辅助虚拟化 用户空间的虚拟化 容器级别虚拟化:Docker //将用户空间切割为多份,每一份各自独立 OpenVZ

Ubuntu 安装 QEMU

谁都会走 提交于 2020-08-13 15:36:34
通过官方仓库安装 官方文档:https://www.qemu.org/download/#linux Ubuntu 容易安装,但是版本有可能更新不及时: sudo apt-get install qemu 通过源码编译安装 官方文档:https://www.qemu.org/download/#source 安装步骤 首选下载源码 官方地址太慢了,这里去清华镜像源 https://mirror.tuna.tsinghua.edu.cn/help/qemu.git/ 下载源码 git clone https://mirrors.tuna.tsinghua.edu.cn/git/qemu.git 然后编译安装 $ cd qemu/ $ ./configure $ make RISC-V 相关 官方文档:https://wiki.qemu.org/Documentation/Platforms/RISCV 这里如果想用 QEMU 模拟其他平台,可以在配置时指定,例如对于 RV64: ./configure --target-list=riscv64-softmmu && make 对于 RV32: ./configure --target-list=riscv32-softmmu && make 常见报错及处理 缺少 glib2 报错 ERROR: glib-2.48 gthread-2