美食的网站建设个人总结如何借用别人网站做模板
一.虚拟化背景
virtio由Rusty Russell 开发,原是为支持lguest虚拟化解决方案,目前已成为linux标准的I/O虚拟化框架.本文重点分享virtio框架及学习心得,错漏之处望大家指正.先简单介绍下有关虚拟化的背景及基本术语.
虚拟化是云计算的基础架构,通过软件接口化及标准化设计,在计算机硬件上创建一个抽象层,支持将单物理机的硬件元素(处理器、内存、存储等)分成多个虚拟计算机,每个虚拟机都会运行自己的操作系统,其行为就像一台独立的计算机.虚拟化技术在提高资源利用率,软件规模化部署,可移植性,灵活性,安全性等方面具有显著优势.当前虚拟化已成为企业IT架构的标准实践.它也是推动云计算经济发展的核心技术.
在智能终端领域,Google推出cuttlefish虚拟化方案,提供操作系统级虚拟化能力,支持将安卓设备部署在云端.除此之外,在工程效能领域也有重要价值,包括以下方面.
1.使平台和应用开发者不再依赖于物理硬件来开发和验证代码更改.
2.通过与核心框架保持高度一致,以高保真度为重点来复制真实设备的基于框架的行为.
3.在各个 API 级别达到一致的功能水平,与物理硬件上的行为保持一致.
4.实现规模化,能够并行运行多台设备,能够并发执行测试,实现高保真度且入门成本较低.
5.提供可配置的设备,能够调整外形规格、RAM、CPU 、I/O设备,方便自动化测试及参数调优.
二.虚拟机管理器类型
从软件技术层面看,常见的有操作系统级虚拟化,应用级虚拟化(如arm64上运行arm32应用转义),语言级虚拟化(如java虚拟机,python虚拟机).
虚拟机管理器 (简称vmm,也称hypervisor),为guest os(指vmm运行的os)分配资源,提供运行所需的环境及必要的硬件模拟,也可以看作是虚拟环境中的元操作系统,主要有两种类型.
类型 1 虚拟机管理器直接在物理硬件(通常是服务器)上运行,作用是支持运行多个OS.通常情况下,在虚拟机管理器上创建和运行虚拟机。有些管理器如VMware vSphere支持用户选择要在虚拟机中安装guest操作系统.
类型 2 虚拟机管理器作为应用在主机操作系统中运行,使用类型2虚拟机管理器,一般需要创建虚拟机, 然后在其中安装guest os.以android系统为例,cuttlefish虚拟机管理程序crosvm就是属于类型2的虚拟机管理器.
三.全虚拟化与半虚拟化
不管哪一种vmm,除了提供CPU,内存虚拟化之外,还需要提供I/O虚拟化能力.从技术实现来看,虚拟化实现分为全虚拟化和半虚拟化两种方式.在全虚拟化中,guest os在位于裸机上的虚拟机管理程序之上运行. guest os不知道它正在被虚拟化,并且无需更改即可在此配置中工作.而在半虚拟化中, guest os不仅知道自己正在vmm上运行,而且还包含使guest os到vmm的转换更加高效的代码.
在完全虚拟化方案中,管理程序必须模拟设备硬件,该设备硬件在会话的最低级别进行模拟.尽管这种抽象模拟很干净,但它也是效率最低且高度复杂的.在半虚拟化方案中,客户和vmm可以协同工作以使模拟高效,半虚拟化方法的缺点是操作系统知道它正在被虚拟化并且需要修改才能工作.硬件随着虚拟化不断变化,新处理器结合了高级指令,使guest os和vmm转换更加高效,I/O虚拟化的硬件也在不断变化,但在传统的全虚拟化环境中,vmm必须捕获这些请求,然后模拟真实硬件的行为,尽管这样做提供了最大的灵活性,但它导致效率低下.对于半虚拟化,gues