国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python基础教程 > qemu是用python写的吗

qemu是用python写的吗

头像

爱喝马黛茶的安东尼

2019-12-03 11:46:063796浏览 · 0收藏 · 0评论

一、QEMU简介

QEMU是法布里斯·贝拉在Linux内核上写的一个CPU模拟器,这套开放源码的模拟器软件与Bochs、PearPC近似,但具有后两者所不具备的高速度及跨平台等特性。QEMU可以在不同的机器上运行独自开发的操作系统与软件,经由KQEMU这个开源的加速器,能模拟至接近真实电脑的速度。QEMU构思巧妙, 效率极高, 在借助核心态的KQEMU加速器之后,模拟代码的执行速度甚至能够接近真实机器。QEMU已成为目前使用最广泛的模拟器,KVM和Google Android的模拟器都是基于QEMU的。

QEMU是一款开源的模拟器及虚拟机监管器(Virtual Machine Monitor, VMM)。QEMU主要提供两种功能给用户使用。一是作为用户态模拟器,利用动态代码翻译机制来执行不同于主机架构的代码。二是作为虚拟机监管器,模拟全系统,利用其他VMM(Xen, KVM, etc)来使用硬件提供的虚拟化支持,创建接近于主机性能的虚拟机。

用户可以通过不同Linux发行版所带有的软件包管理器来安装QEMU。如在Debian系列的发行版上可以使用下面的命令来安装:

sudo apt-get install qemu

或者在红帽系列的发行版上使用如下命令安装:

sudo yum install qemu -y

除此之外,也可以选择从源码安装。

获取QEMU源码

可以从QEMU官网上下载QEMU源码的tar包,以命令行下载2.0版本的QEMU为例:

$wget http://wiki.qemu-project.org/download/qemu-2.0.0.tar.bz2
$tar xjvf qemu-2.0.0.tar.bz2

如果需要参与到QEMU的开发中,最好使用Git获取源码:

$git clone git://git.qemu-project.org/qemu.git

编译及安装

获取源码后,可以根据需求来配置和编译QEMU。

$cd qemu-2.0.0 //如果使用的是git下载的源码,执行cd qemu
$./configure --enable-kvm --enable-debug --enable-vnc --enable-werror  --target-list="x86_64-softmmu"
$make -j8
$sudo make install

configure脚本用于生成Makefile,其选项可以用./configure --help查看。这里使用到的选项含义如下:

--enable-kvm:编译KVM模块,使QEMU可以利用KVM来访问硬件提供的虚拟化服务。
--enable-vnc:启用VNC。
--enalbe-werror:编译时,将所有的警告当作错误处理。
--target-list:选择目标机器的架构。默认是将所有的架构都编译,但为了更快的完成编译,指定需要的架构即可。

二、基本原理

QEMU作为系统模拟器时,会模拟出一台能够独立运行操作系统的虚拟机。如下图所示,每个虚拟机对应主机(Host)中的一个QEMU进程,而虚拟机的vCPU对应QEMU进程的一个线程。

d0f12980a5cc4a42ca4b3ad1039ab4e.png

QEMU结构图

系统虚拟化最主要是虚拟出CPU、内存及I/O设备。虚拟出的CPU称之为vCPU,QEMU为了提升效率,借用KVM、XEN等虚拟化技术,直接利用硬件对虚拟化的支持,在主机上安全地运行虚拟机代码(需要硬件支持)。虚拟机vCPU调用KVM的接口来执行任务的流程如下(代码源自QEMU开发者Stefan的技术博客):

open("/dev/kvm")
ioctl(KVM_CREATE_VM)
ioctl(KVM_CREATE_VCPU)
for (;;) {
     ioctl(KVM_RUN)
     switch (exit_reason) {
     case KVM_EXIT_IO:  /* ... */
     case KVM_EXIT_HLT: /* ... */
     }
}

QEMU发起ioctrl来调用KVM接口,KVM则利用硬件扩展直接将虚拟机代码运行于主机之上,一旦vCPU需要操作设备寄存器,vCPU将会停止并退回到QEMU,QEMU去模拟出操作结果。

虚拟机内存会被映射到QEMU的进程地址空间,在启动时分配。在虚拟机看来,QEMU所分配的主机上的虚拟地址空间为虚拟机的物理地址空间。

QEMU在主机用户态模拟虚拟机的硬件设备,vCPU对硬件的操作结果会在用户态进行模拟,如虚拟机需要将数据写入硬盘,实际结果是将数据写入到了主机中的一个镜像文件中。

python学习网,大量的免费python视频教程,欢迎在线学习!

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

女性LOGO大全图片| 豆传媒剧国产MV有什么特点| 公车上双乳被两男人夹击电影| 爸井空《办公室爱欲》| 苏苏的公交车日记TXT| 日韩AV| 古典小说| 摸的下身已洪水泛滥怎么办| 国产日产亚洲系列最新版本的特点 | 老公水我B里骚水流出来了| 三女片免费观看电视剧杨贵妃传 | 年经继拇3| 成全在线观看免费全集高清| 《与上司做爰HD》| 《我的漂亮朋友》20点首播| 情满四合院剧情| 免费直播入口在线观看| 他扒开我小流添我三男一女视频 | 《完美的妻子5》第一期韩剧| 性感内衣女装| 苏柔陆大生| 菠萝菠萝蜜在线观看免费版电视剧 | 蜜桃成时熟2| 大夜| 亚洲第一大综合区的就业前景| 保姆的特殊待遇5| 胸罩100%透明| 《健身房下的特殊待遇》 | 女性扒开大腿内侧小肚子痒| 公天天吃我奶躁我的在| 少女的夜晚初体验免费观看电视剧| 善良的公与媳HD中字| 强行挺进朋友漂亮人妻身体| 老牛耕田陈雪435章| 新婚夜被强伦无删减版| AAA成人片爽久爽久爽| 51今日大瓜 每日大赛往期内容 | 三男一女吃奶添下面| 日本动浸扑克牌动画片MV| 我的小后妈中字ID| 《初尝禁果》2:做爰HD