嵌入式领域中的虚拟化技术

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




嵌入式领域中的虚拟化技术

潘禹辰

浙江大学软件学院,浙江 宁波 315103

E-mail :vincent.d.pan@gmail.com

摘 要:介绍了虚拟化技术的现状,从层次结构和技术特点两个角度论述了虚拟化技术的分类,并介绍了几种主流虚拟化技术的实例,之后详细阐述了将虚拟化用于嵌入式领域的原因,并结合VirtualLogix公司的VirtualLogix VLX分析了在嵌入式领域中虚拟化技术的具体实现和应用前景。

关键词:虚拟化;嵌入式;VMM;虚拟机(VM)

1 概论

近年来,虚拟化技术无论是在学术界还是企业界,都刮起了不小的旋风,并且势头不减。Gartner两位分析师Carl Claunch和Dave Cearley在2008年的Symposium ITxpo大会上列出了未来3年最值得关注的十大关键技术,其中虚拟化技术位居榜首。虚拟化是指计算机软件在一个虚拟的平台上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。其中CPU的虚拟化可以单CPU模拟多CPU并行运行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率和安全性,这也是越来越多的人对虚拟化产生兴趣的一个原因。数据表明,虚拟化给企业带来的效果是显著的。戴尔IT战略专家Matt Brooks坦言:“与部署和运行物理服务器相比,在3年的时间里,戴尔部署的每台非生产用虚拟机节省了约6,500美元,每台生产用虚拟机节省了约9,300美元。自实施虚拟化以来,戴尔已经将应用软件的部署时间从平均45天缩短到了仅需4天——缩短了90%……”但是到目前为止,虚拟化技术还大多用于服务器领域,即企业计算。作者试图通过本文在介绍虚拟化技术的基础上,探讨将虚拟化技术用于嵌入式系统领域的效果和前景,并用实例来加以说明。【编辑注:全文下载

(1个打分, 平均:5.00 / 5)

雁过留声

“嵌入式领域中的虚拟化技术”有25个回复

  1. newbie 于 2008-12-25 10:15 下午

    不错,弯曲评论开始涉及虚拟化了!

  2. 潘禹辰 于 2008-12-25 10:20 下午

    我在弯曲评论上的第一篇文章,没涉及太多的技术细节,望各位高手多多指教!

  3. 1help1 于 2008-12-26 12:23 上午

    哈哈。不错不错。

    来点detail 细节的。

  4. 1help1 于 2008-12-26 1:06 上午

    对了,我记得VLX 不是opensouce的。
    OKL4是 BSD license的。值得关注。

  5. 潘禹辰 于 2008-12-26 1:07 上午

    牛人驾到,暂时还没水平深入细节啊,你的博客是个学习虚拟化好地方!

  6. 潘禹辰 于 2008-12-26 1:11 上午

    VLX的确不是opensouce,但觉得在商业推广上VLX比OKL4做得成功,就介绍了VLX。谢谢提醒!

  7. coder 于 2008-12-26 1:53 上午

    我觉得 okl4(L4) kernel和 其他的 VMM 的区别在于, l4 kernel 本身是一个 micro kernel operating system,同时这个 micro kernel可以拿来当 VMM. 而 xen 或者其他是一个 virtual machine monitor. 关于这个问题,有一个debate between NICTA and Xen.

    Nicta 的:
    Are virtual-machine monitors microkernels done right?
    http://ertos.nicta.com.au/publications/papers/Heiser_UL_06.pdf

    Xen 的
    Are Virtual Machine Monitors Microkernels Done Right?
    http://www.cl.cam.ac.uk/research/srg/netos/papers/2005-hotos-vmm.pdf
    有兴趣的可以看看.

    OKL4 有一个好处就是 把跑在L4 kernel上边的Linux 作为一个通用平台来处理一般的用户的事务。而重要的和real-time要求高的部分直接运行在l4 kernel的上边. 同时在各部分间实现安全通信机制.
    安全,灵活,虚拟化开销小, 我觉得这三是l4在潜入式虚拟化上的优点. 虽然OKL4瞄准了消费类电子市场(手机),但是目前(7月前) okl4只是跑在 芯片里边作为firmware. l4 kernel 有两个比较突出的优点 1)IPC 优化的非常好, fast path ipc
    2)kernel 的 memory footprint 非常小 (single kernel stack) but… 牺牲掉一些real-time,在kernel里边有一个比较长的 critical path.
    另外要新release的 Cap的机制也不错. 不知道他们现在的POSIX 层优化好没有. 不过我不知道市场到底care不care 这些 features. 不过目前来看 okl4的生意还不错 :)

  8. yjfpb04 于 2008-12-26 7:10 上午

    我总感觉短期内okl4没什么前途。很难做大。
    而且l4的实现太多了,没有统一的标准。而且没有个实力型的大公司来推。离市场还有很长的路吧。
    还是linux一统天下吧。

  9. coder 于 2008-12-26 10:02 下午

    做大…, 如果只是操作系统的话, 太难了.

  10. 陈怀临 于 2008-12-26 10:20 下午

    我对L4不看好。太晦涩。对系统软件而已,是工业界推动研究,而非相反。所以,除非Hurd/L4 previal, L4没有出头之日。当然,给教授们整点文章发表是一个不错的研究平台。Linux/L4基本上不存在商业动机。没有这个incentive和need。工业界的东西要previal,你要回答一个简单yet又深刻的问题:解决什么问题?用洋文说就是:fix which kind problem? Otherwise, who cares.

    我看不出来谁需要Linux/L4。

  11. coder 于 2008-12-27 12:18 上午

    Bcore 觉得 virtualization in embedded system, 工业界有没有需求?

  12. 陈怀临 于 2008-12-27 8:08 上午

    虚拟化技术在嵌入式系统,特别是通信系统有巨大的应用,而且很久了。要对虚拟化技术的理解扩展,而非简单的XEN,VMWARE对CPU和host os的模拟。例如,pseudo-interface. virtual switch, virtual router, virtual system…..,to name a few.

  13. faif 于 2008-12-27 6:31 下午

    Bcore,能不能简单说两句,启发一下,例如virtual switch(switch还能virtual,mac层?), virtual router的应用配置和好处?

  14. 陈怀临 于 2008-12-27 6:56 下午

    问题是简单讲不清楚,只能浅谈:-)。

    VLAN Tag这个东西是个比较重要的东西。建议您看一下VLAN 的资料。这样就比较好理解Virtual Router, Virtual System等东西。对安全系统也会理解的比较具体了

  15. 1help1 于 2008-12-28 12:50 上午

    VLAN Tag 就是系统上打的狗皮膏药,一层不够,还要再打一层。

    虚拟化名词的含义太广了,这里仅仅就 OKL4 来回应一下BCORE。

    >你要回答一个简单yet又深刻的问题:解决什么问题?用洋文说就是:fix which kind problem? Otherwise, who cares.

    打个比方,对于智能的phone,出于安全性的考虑,你会让 通信协议栈跑在 linux上面吗?通常是跑在 rt的单纯用途的OS上。 而linux 又是一个 feature rich的系统,资源很丰富。用其做和用户交互的OS很合适。于是 RT OS/ LINUX 同跑在 虚拟层上。并且虚拟层实现安全策略……

  16. sse2 于 2008-12-28 5:29 上午

    个人感觉virtual router 和虚拟化没什么关系,软件上要做许多个路由表,每个vr有自己的路由表,和mpls vpn 中的vrf有点象.

  17. coder 于 2008-12-28 5:50 上午

    >打个比方,对于智能的phone,出于安全性的考虑,你>会让 通信协议栈跑在 linux上面吗?
    关键是这个“安全性“, 怎么定义.
    一个层面是”隔离“. 比如 linux死了, kernel和其他跑在 kernel层面上sub-system不受影响. 可以从新start linux. But, 在phone的环境下, 作为一个用户, 我觉得这个 not a problem. 本身就很少死机, 死机以后从启动就 ok了.

    我觉得最为用户,更关心的应该是不被“恶意软件侵扰”. 谁也不想让别人知道自己手机上存储的“隐私”. 可似乎这个层面的安全和虚拟话没有什么关系吧. 更多的是权限控制, 安装第三方信赖软件

    所以我觉得安全其实是一个看上去很美丽的谎言. 我觉得也许有用处的地方就是:我的一个很需要 real-time 的子系统跑在 micro-kernel上。然后micro-kernel首先满足real-time这个子系统的需求,然后再去满足其他的部分的需求 :)

  18. faif 于 2008-12-28 5:55 上午

    啊,vlan也能算是virtulisation呀?在我看来这种第二层加tag和IPsec,mpls等都差不多,我理解,用PC跑几个dynamips虚拟cisco的路由器网络在普通服务器上还算虚拟路由,但是没看到应用的好处,除了让考证一族能做ccxx的实验。

  19. KISS 于 2009-01-07 6:24 上午

    IMHO: 虚拟化包括的范围非常广泛[Wikipedia],而现在一般谈论的虚拟化技术主要是两个部分:一部分是支持Same-ISA Cross-OS binary执行的Virtual Machine,另一部分则是Resource Virtualization。技术上前者较为成熟(尤其是x86在ISA级更新之后),而后者则是现在热点。

    关于虚拟化的分类,Hardware/OS/HLL的层次分类可能不太适合,一是Hardware的界限比较模糊,比如micro-code的归属等;二是OS和虚拟化(VMM)之间的关系复杂,会如何演进有待观察[Mendel Rosenblum,“The Impact of Virtualization on Computing Systems”, Keynote at USENIX Annual Tech 2007],而且同样的系统虚拟化既可以实现在OS之下(VMM),也可以位于OS之上(Host-OS)。
    JE.Smith和Ravi Nair在“Vritual Machines: Versatile Platform for Systems and Processes”(这本书应该算是这一领域的bible)一书中提到的一种分类可能更为科学:根据ISA/ABI/API层次来将VM分为Process VM,System VM,HLL VM等。

    在嵌入式(Consumer)领域,我认为短期内虚拟化技术不会有很大的生存空间。因为:
    1) 嵌入式系统缺乏虚拟化的killer application(如通用领域中legacy binary兼容, Data center的资源管理和优化);
    2) 嵌入式系统是高度定制化的系统,没有legacy binary的兼容需求,而且二次编译是目前的系统/应用发布方式;
    3) 嵌入式系统的硬件高度分散化(diversity),增加了开发难度;
    4) 嵌入式系统对成本高度敏感,增加一层VMM以支持多个System虚拟机会降低性能,提高成本;
    5) 嵌入式系统可以通过OS/Middleware的升级满足应用的要求,而且web-based service/cloud computing更是未来应用发布方式。

    虚拟化更多的看点在通用计算(Server/Desktop)领域,尤其是数据中心,随着Computing, networking和storage的融合,以及对data center-level virtualization的需求(这一部分或许称作Data Center-level OS更为合适),不断有初创公司涌现,而且2008年几乎每个大厂商都有收购初创公司或推出新产品。

  20. KISS 于 2009-01-07 6:25 上午

    Huawei was hiring virtulization expert for a long time. Maybe they are hacking Xen or KVM(the opening requires x86 and linux kernel knowledge)

  21. 铁木 于 2009-01-07 9:07 上午

    说道手机领域的虚拟化,我想还有一个需要考虑的就是手机外观(大小, 颜色, 样式等),这些是虚拟化无法解决的。
    比如文章里面说了在一台手机上集合了黑莓,摩托,苹果的功能。
    就拿苹果来说吧,喜欢用它上网主要是因为它屏幕大, 用起来爽,这个你如果手机屏幕不大的话, 在牛X的虚拟化技术也白搭。
    你要是在黑莓上集成了“上网功能”, 人家还是不会用的。
    技术一回事,工程又是一回事。

  22. yajin 于 2009-05-12 11:44 下午

    >Huawei was hiring virtulization expert for a long time.

    确实。

  23. KISS.曹操 于 2009-06-05 11:09 上午

    现在看来我之前关于嵌入式虚拟化的观点错了,虽然还没有到说已经取得市场成功的时候。 :)

    http://www.linuxdevices.com/news/NS7323406111.html
    http://www.theregister.co.uk/2009/06/01/virtualization_mobile_phones/print.html

  24. 陈怀临 于 2010-02-11 4:29 下午

    顶一下这篇文章。希望大家多注意。

  25. 胡瑞桓 于 2010-10-13 5:00 上午

    事实上OKL4在2年前已经被高通应用在6085平台以及后续的6系列平台,7系列平台使用OKL4跑在MODEM上