虚拟化进入手机领域-Motorola Evoke QA4采用基于微内核OKL4的解决方案

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




Gernot 在他的 blog 中提到, Motorola Evoke 采用了 基于OKL4的虚拟化解决方案。Evoke 用了一个 ARM9 CPU。 OKL4运行在内核态,Linux 和 AMSS/BREW baseband 作为两个虚拟机运行在用户态。 这个方案能够得到比较不错性能的关键在于 OKL4 的 “Single Address Space” 特性。由于ARM9 的 cache 是 virtual address index & tag, Linux 上每一次 context switch 的时候都需要 flush TLB 和 cache。 在OKL4上,可以将一个single address space 划分为不同的部分分配给运行在用户态的 Linux 进程和 AMSS/BREW,这样他们有了不重叠的虚拟地址空间。在context switch的时候,不需要flush TLB 和 cache。

(2个打分, 平均:3.50 / 5)

雁过留声

“虚拟化进入手机领域-Motorola Evoke QA4采用基于微内核OKL4的解决方案”有23个回复

  1. 陈怀临 于 2009-07-24 4:34 下午

    虚拟化技术在手机上的应用其实早已经展开,并且有许多案例了。这篇文章写的略微单薄,应该展开写成一篇文章才好。我有时间的时候补充一些内容。。。

  2. sixshot 于 2009-07-25 7:05 上午

    我记得弯曲上曾经发了一篇paper有讨论过
    那文章好像叫《嵌入式领域中的虚拟化技术》

  3. 陈怀临 于 2009-07-25 9:52 上午

    是的。许多厂商都在开展和已经demo其虚拟化解决方案。兵锋直指Smart Phone高端市场。为了解决之前Feature Phone Baseband的平台过渡并与Window Mobile或者Linux(Android)有机结合,虚拟技术被无缝的应用在这方面。

  4. nobond 于 2009-07-25 10:14 上午

    这个变化是slowly but surly的。 我们的方案里叶在慢慢加,不过非常慢。。

  5. 陈怀临 于 2009-07-25 4:24 下午

    同意这个“slowly yet surely”. 我曾经与MTK的一个副总聊起这个话题。他说:目前单芯片解决方案是必然的。单芯片里,两个ARM核。一个run full OS(Android,WM or…),一个run Baseband。

  6. yajin 于 2009-07-26 5:19 下午

    曾经接触过一位系统厂商的人士,在评估虚拟化在router上面的应用。比如多业务板直接的功能融合。

  7. 陈怀临 于 2009-07-26 5:31 下午

    ASR1000上的Linux的KVM的使用,其实就是虚拟化技术在通信领域的一个漂亮应用,从而多个IOS同时运行,实现HA。

  8. kkk 于 2009-08-01 11:39 下午

    手机不以os论英雄!!

  9. moto.lj 于 2009-08-02 3:53 上午

    同意8楼!手机拼的还是有没有杀手级的应用,能不能快速进入市场,吸引到大量消费者,终端消费者不是engineer,根本不care windows mobile还是linux based。在这个行业来钱快,你就弄好app就行了,os那是chip厂商的事(apple例外)。qualcomm的新方案l4是跑基带那边的协议栈的,不用来运行虚拟化,l4针对arm9的快速上下文切换确实不错,v6,v7改进了tlb和cache,已经是phy tagged了,没必要像arm9那样使用了。

  10. coder 于 2009-08-02 5:20 上午

    》》qualcomm的新方案l4是跑基带那边的协议栈的
    Evoke 上边的Linux 没有跑在 L4 上边? Gernot在白皮书里边说跑了两个VM。 http://www.ok-labs.com/blog/entry/white-paper-the-motorola-evoke-qa4-a-case-study-in-moble-virtualization/

  11. moto.lj 于 2009-08-02 4:02 下午

    evoke是l4linux,笔误,是新的chip。

  12. coder 于 2009-08-02 4:08 下午

    》》evoke是l4linux,笔误,是新的chip。
    恩, 去年有一批HTC的机子用了L4跑baseband。

  13. kkk 于 2009-08-04 3:33 上午

    多个系统怎么通信的?
    okl下载不了

  14. coder 于 2009-08-04 4:35 上午

    IPC 或者 共享内存

  15. moto.lj 于 2009-08-04 4:12 下午

    okl4在ok-labs可以下载,除了l4,ok-labs还有一个更精简的’l4′,或者google一下iguana,下载那个开发包,几十个M,有点老但还是有研究价值的。

  16. moto.lj 于 2009-08-04 4:13 下午

    开源的ok-labs可以下载

  17. 陈怀临 于 2009-08-04 4:34 下午

    有意思。HURD/L4感觉是起不来。Linux/L4要起来了。L4跑基带。有点意思。。。。。。

  18. veryzhang 于 2009-11-25 4:16 上午

    陈首席对llvm怎么看?

  19. james 于 2010-01-12 7:54 下午

    >有意思。HURD/L4感觉是起不来。Linux/L4要起来了。L4跑基带。有点意思。。。。。。

    仔细看了这个白皮书. 实际上 QA4的BB 还是单独的OS. 这里的 OKL4主要解决了 BREW和LINUX 之间的融合问题.

    issue: UI是linux的,但是有一些application 是BREW的. 如果要是采用单独的 linux 解决方案需要把 BREW的应用都移植到 linux上面来. 当然,这个是可以完成的.但是 需要时间/人力等等.

    方案: 在AP上跑两个VM.一个是linux,一个是 BREW. 然后 BREW的应用在linux UI中. 当用户在linux UI中点击BREW应用的图标的时候, VM通过IPC告诉BREW VM去 start 这个应用.

    联想: 既然linux和BREW可以融合, why linux和android不可以融合呢? 现在对于android有一个问题,application必须要用JAVA来开发,这对于一些已经有的linux下的c应用需要重新port. 当然你可以通过包装成JNI的方式,但是这仍然需要时间成本. 如果通过OKL4来融合这两者的应用, 是一个方案.

    PS: 现在甚至于 native 的OKL4的android. 也就是说 将ANDROID那一套framework直接port到OKL4,跳过ANDROID下面的linux. 当然目前还是在原型阶段.是 UNSW的一个本科毕业论文.名字叫 native ANDROID OKL4 stack

  20. 陈怀临 于 2010-01-12 8:13 下午

    李先静,我对着单芯片和单核上的虚拟化技术很感兴趣。你是手机的精英,你谈谈看法。谢谢了。

  21. 庹元元 于 2011-03-25 8:30 下午

    据OKL4的宣传,对开源license的限制特别严格,要求基于该软件的所有应用都要开源。感觉一般以技术作为核心竞争力的企业无法接受。不知道moto是怎么解决这个问题的。

  22. coder 于 2011-03-26 12:05 上午

    21楼需要仔细阅读license

  23. Terry 于 2011-04-02 12:10 上午

    从license说明看,只要是修改了代码,就必须开源。不知道是否还有另外一套license?
    ——license说明如下————–
    1. Redistribution and use of OKL4 (Software) in source and binary
    * forms, with or without modification, are permitted provided that the
    * following conditions are met:
    *
    * (a) Redistributions of source code must retain this clause 1
    * (including paragraphs (a), (b) and (c)), clause 2 and clause 3
    * (Licence Terms) and the above copyright notice.
    *
    * (b) Redistributions in binary form must reproduce the above
    * copyright notice and the Licence Terms in the documentation and/or
    * other materials provided with the distribution.
    *
    * (c) Redistributions in any form must be accompanied by information on
    * how to obtain complete source code for:
    * (i) the Software; and
    * (ii) all accompanying software that uses (or is intended to
    * use) the Software whether directly or indirectly. Such source
    * code must:
    * (iii) either be included in the distribution or be available
    * for no more than the cost of distribution plus a nominal fee;
    * and
    * (iv) be licensed by each relevant holder of copyright under
    * either the Licence Terms (with an appropriate copyright notice)
    * or the terms of a licence which is approved by the Open Source
    * Initative. For an executable file, “complete source code”
    * means the source code for all modules it contains and includes
    * associated build and other files reasonably required to produce
    * the executable.
    *
    * 2. THIS SOFTWARE IS PROVIDED “AS IS” AND, TO THE EXTENT PERMITTED BY
    * LAW, ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    * THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
    * PURPOSE, OR NON-INFRINGEMENT, ARE DISCLAIMED. WHERE ANY WARRANTY IS
    * IMPLIED AND IS PREVENTED BY LAW FROM BEING DISCLAIMED THEN TO THE
    * EXTENT PERMISSIBLE BY LAW: (A) THE WARRANTY IS READ DOWN IN FAVOUR OF
    * THE COPYRIGHT HOLDER (AND, IN THE CASE OF A PARTICIPANT, THAT
    * PARTICIPANT) AND (B) ANY LIMITATIONS PERMITTED BY LAW (INCLUDING AS TO
    * THE EXTENT OF THE WARRANTY AND THE REMEDIES AVAILABLE IN THE EVENT OF
    * BREACH) ARE DEEMED PART OF THIS LICENCE IN A FORM MOST FAVOURABLE TO
    * THE COPYRIGHT HOLDER (AND, IN THE CASE OF A PARTICIPANT, THAT
    * PARTICIPANT). IN THE LICENCE TERMS, “PARTICIPANT” INCLUDES EVERY
    * PERSON WHO HAS CONTRIBUTED TO THE SOFTWARE OR WHO HAS BEEN INVOLVED IN
    * THE DISTRIBUTION OR DISSEMINATION OF THE SOFTWARE.
    *
    * 3. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ANY OTHER PARTICIPANT BE
    * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
    * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
    * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
    * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.