基于Xen的嵌入式虚拟化技术研究

2017-05-11 14:26胡雯
武昌理工学院学报 2017年1期
关键词:嵌入式虚拟化

胡雯

摘 要:本文首先介绍了嵌入式虚拟化技术的特点及3个不同的技术类型,着重研究了基于Xen管理程序的嵌入式半虚拟化技术,并进行了基于ARM嵌入式平台的虚拟化操作系统的移植和数据传递的测试实验,为进一步的研究和推广嵌入式虚拟化技术提供有价值的参考。

关键词:嵌入式;虚拟化;Xen

中图分类号:TB317 文献标识码:A

1 序言

虚拟化是一种资源管理技术,其目的是整合计算机的所有软硬件资源,在不受原有计算机资源的环境配置等限制,将计算机的所有软硬件资源重新整合划分,为用户提供更优的架构方式及功能实现。可以理解为,这种集成是将单个物理资源表示为多个可用虚拟资源,也可以使多个物理资源表示为单个虚拟资源可用,甚至多个物理资源可以集成和区分出来的可用虚拟资源。

2 嵌入式虚拟化技术分析

Virtualization虚拟化技术在早期主要应用在服务器和大型机上,随着PC的快速增长,虚拟化已经逐渐应用到x86架构,并得到普及。

虚拟化将IT环境变得更强大,更有弹性和更有活力,虚拟化做到了将多个操作系统集成到单个高性能服务器上,利用硬件平台的资源来支持更多应用程序,或简化IT基础架构,降低难度在资源管理上,并避免不必要的IT基础架构扩展。虚拟机的真正硬件独立性还使虚拟机运行时迁移,允许真正的不间断操作,最大化业务连续性,而不必为购买超高可用性平台支付高昂的价格。

虚拟化技术分为3个类型:模拟虚拟化技术、全虚拟化技术、半虚拟化技术。

2.1 模拟虚拟化技术

这种虚拟化技术只用于某些特定的领域,例如,在一个处理器平台上模拟另一个指令集不同的处理器平台,或在这个平台中的其他处理器平台运行软件,比如在X86平台上模拟ARM嵌入式领域平台,可以使嵌入式平台的软件开发变得容易。与嵌入式平台相比,目前X86平台的硬件资源相对丰富,因此即使仿真会使计算机本身性能严重下降,但嵌入式平台的仿真也具有可用性,该技术适合嵌入式环境低成本,方便快捷的嵌入式软件开发。已开发出的相应模拟器软件有Bochs,QEMU等。

2.2 全虚拟化(Full Virtualization)技术

该技术可理解为基于动态指令的全虚拟化,是一种纯软件虚拟化技术。其特点是当虚拟机管理程序正在执行时,虚拟机操作系统的指令扫描到了二进制代码,会挑选敏感指令并将其转换为其它等效指令,运行等效指令而不是敏感指令。这种方法由于使用软件同步检测和运行的方式实现程序的执行,性能不高,但运行速度要优于模拟虚拟化技术。

2.3 半虚拟化(Para Virtualization)技术

半虚拟化技术也叫基于硬件的半虚拟化技术,主要应用在开源操作系统,如Linux操作系统。其技术特征在于,操作系统要执行的调用及其他特定指令的特权操作或指令修改等,交由下层的虚拟机管理器VMM进行管理,并根据VMM返回信息再进行指令修改等后续操作,并通过系统调用机制主动向虚拟机管理器报告,让虚拟机管理器代替执行。半虚拟化技术因为高性能的VMware ESX,Xen虚拟化平台和KVM虚拟化平台,无需修改操作系统等简单性优势,已被许多虚拟化产品采用。基于此,在嵌入式虚拟化系统中也开始支持和使用半虚拟化技术,加快嵌入式虚拟化的普及。

目前主流的嵌入式处理器芯片都存在有敏感非特权指令,而且不支持硬件辅助完全虚拟化,并且若使用基于软件的全虚拟化又对性能影啊很大,不适合用于嵌入式平台。因此,大家转向寻找更好的解决方案,XEN管理程序的出现,为嵌入式虚拟化技术带来了希望。

3 XEN虚拟化技术

3.1 技术简介

XEN 是英国剑桥大学计算机实验室开发的一个虚拟化开源项目,由于其具有占用资源少、和操作系统完全贴合等优点,很快就被技术人员发现,应用于虚拟化领域和嵌入式虚拟化领域。其特点是基于X86体系结构,并且与开源操作系统能完美结合,支持全虚拟化和半虚拟化。以高性能、占用资源少著称,因此被作为嵌入式虚拟化技术的首选应用方案。

3.2 实验方案

基于Xen的嵌入式半虚拟化实现方案如图1所示,首先在ARM Cortex-A8处理器平台上移植Xen-ARM虚拟化平台,然后将虚拟化后的嵌入式操作系统Linux(编号Domain O)与另一个嵌入式操作系统(编号Domain1)分別作为客户操作系统运行在VMM上,客户机OS或应用程序与VMM直接通过Hypercall(系统调用)实现信息通信,DomainO与Domainl直接通过共享内存来实现数据传递。

3.3 实验过程

(1) 嵌入式系统移植,实验操作如下:

[root@localhost ~]# yum-config-manager --add-repo=http://mirrors.aliyun.com/centos/6.7/xen4/x86_64/

[root@localhost ~]# yum install xen –y

[root@localhost ~]# vim /etc/grub.conf

titleCentOS (3.18.12-11.el6.x86_64)

root (hd0,0)

kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin

module /vmlinuz-3.18.12-11.el6.x86_64 ro root=/dev/mapper/vg0-root

……

module /initramfs-3.18.12-11.el6.x86_64.img [root@localhost ~]# mkdir -pv /data/xen -pv

[root@localhost ~]# cd /data/xen/

[root@localhostxen]# qemu-img create -f raw -o size=2G busybox.img

[root@localhostxen]# mkfs.ext4 busybox.img

[root@localhost ~]# yumgroupinstall "Development Tools" "Server Platform Development"

[root@localhost ~]# yum install glibc-static

[root@localhost ~]# tar xf busybox-1.22.1.tar.bz2

[root@localhost busybox-1.22.1]# make&& make install

[root@localhost busybox-1.22.1]# mount -o loop /data/xen/busybox.img /mnt/

[root@localhostmnt]# mkdirdevproc sys home

[root@localhostxen]# xl create busybox

Parsing config from busybox

DEBUG libxl__blktap_devpath 76 aio:/data/xen/busybox.img

DEBUG libxl__blktap_devpath 81 /dev/xen/blktap-2/tapdev0

[root@localhostxen]# xl list

Name ID MemVCPUs State Time(s)

Domain-0 0 1024 2 r----- 29.0

busybox-01 4 256 1 -b---- 0.6

(2)数据通信测试

由Domain0负责发送数据,Domain1通过共享内存获取数据,并设计一个测试程序在Domain1端运行,观察运行时的数据和运行速度,测试获取数据的正确性,以及程序引擎的代码运行速率,以此来检验该虚拟化环境的运行性能。并将该测试搬到PC机上搭建的一个类似的虚拟化环境中进行。测试结果如表1所示,传递数据的数据正确率为100%,读取数据的代码运行速度基本接近于PC机虚拟化环境。由此证明,该嵌入式虚拟化环境的可用性及运行性能都较高,可以作为研究嵌入式虚拟化技术的有价值的参考数据。

4 小结

由于虚拟化技术还在继续发展中,本文选择Xen虚拟化管理工具,完成了嵌入式虚拟化平台的移植,及数据传递等程序测试,并与同等虚拟化环境的PC机程序,做了对比试验,实验结果表明该虚拟化技术在保证数据正确的基础上,基本能够实现OS对硬件的访问及管理。由于硬件环境的限制,本文只选择了2个虚拟化系统实例,并且选用了ARM微处理器平台进行实验。今后将在多虚拟化系统的环境下,对不同嵌入式平台做进一步的研究和测试。

参考文献:

[1] 张易知,徐国治.基于微内核架构的嵌入式系统虚拟化技术[J].电子产品世界,2009(4).

[2] 郑国晖,肖霏,于弼君.云计算技术发展与应用研究[J].硅谷,2011(10).

[3] 石磊.xen虚拟化技术[M].武汉:华中科技大学,2009.

[4] 伍箴水.嵌入式系统中设备虚拟化的关键技术研究[D].华中科技大学硕士论文,2012.

[5] Kernel Based Virtual Machine. [DB/OL]. http://www.linux- kvm.org/page/Main_Page, 2010.

[6] VirtualLogixCorp. Meeting the Challenges of Connected De-vice Design Through Real-Time Virtualization [DB/OL]. http://www.vmware.com/cn/technology/mobile/,2009.

[7] 葉常春.嵌入式虚拟化技术[J].计算机工程与科学, 2012(3).

(本文审稿 李正发)

猜你喜欢
嵌入式虚拟化
嵌入式LINUX操作系统的研究
浅谈虚拟化工作原理
用户怎样选择虚拟化解决方案
别再误会客户端虚拟化了
虚拟化整合之势凸显
虚拟化技术:绿色IT的希望
嵌入式的特点及发展机遇
经济危机使虚拟化受青睐
嵌入式组件技术的研究及应用
基于嵌入式系统的游戏程序设计