ffxz 发表于 2013-11-13 22:22:05

RT-Thread 2.0.0系列引入的新模块:VMM

单独发个帖说说这个事情。

VMM名称是Virtual Machine Module,即虚拟机模块。虚拟的意思在于RT-Thread/VMM会以半虚拟化的方式虚拟运行另外一个操作系统,例如Linux。半虚拟化的意思是,让另外的操作系统以本地运行方式运行,而不是解释执行机器指令的方式进行,目标操作系统的指令是什么就由真实物理机器执行什么指令。当然RT-Thread/VMM会虚拟化部分东西,会是:中断控制器、页表、OS定时器等等。

这种模式可以在单核或者多核上运行,单核上:RT-Thread与Linux共享一个核心,“并行”执行;多核上:RT-Thread与Linux分别运行在不同的核心上,并行执行。多核上,虚拟化相对来说没这么明显,更多的是两个系统间的同步、通信,这部分也是一个新的组件(或者说是RT-Thread/VMM的一部分内容,称为VBUS,虚拟软件总线)

RT-Thread/VMM初期只支持ARM Cortex-A系列处理器。它仅仅是一个组件,不是一套独立的系统,RT-Thread本身依然是原来的核心,能够在ARM Cortex-A/R/M上单独执行。RT-Thread/VMM作为RT-Thread Platform的一部分而存在,起到补充的作用:复杂的功能,通过虚拟化的Linux来实现。而实时部分,则依赖RT-Thread本身的实时性。通过这样的方式也形成了一种操作系统级别的big.LITTLE结构,不同的部分具备不同的作用。

11.14日下午,国际半导体博览会暨高峰论坛,我们会有一场关于这个 操作系统的big.LITTLE 主题演讲,有兴趣的可以关注,现场也有这份RT-Thread 2.0.0 Alpha版本的demo(RT-Thread和Linux“并行”的运行在BeagleBone Black板子上)。也可以在网上关注我们的@RT-Thread官方微博
(前几天的RT-Thread开发者会议也提到这个事情,PPT链接)



2013.11.13
ffxz

eduhf_123 发表于 2013-11-13 22:25:00

坐个沙发

愿RT-Thread发展得越来越好。

ffxz 发表于 2013-11-13 22:25:49

目前RT-Thread、Linux在BeagleBone Black (TI AM3359,ARM Cortex-A8,1GHz)上同时运行的几个指标:
1. 实时性 <10us
2. Linux性能损失 < 5% (此时RT-Thread没有复杂的计算任务)

mcusun2000 发表于 2013-11-13 22:37:07

感觉好复杂,不是一般的菜鸟能懂,

虚拟的意思在于RT-Thread/VMM会以半虚拟化的方式虚拟运行另外一个操作系统

这个意思是不是LINUX不是真正运行,真正运行的是RT-Thread

好想学习RT-Thread,但是底子太差,学了一段时间没学了

ffxz 发表于 2013-11-13 22:43:14

mcusun2000 发表于 2013-11-13 22:37 static/image/common/back.gif
感觉好复杂,不是一般的菜鸟能懂,

虚拟的意思在于RT-Thread/VMM会以半虚拟化的方式虚拟运行另外一个操作 ...

如果你不太了解Linux,建议先不要接触RT-Thread/VMM。

lghtjpu 发表于 2013-11-13 23:41:02

文档啊文档,这个一定要跟上啊{:dizzy:}

苦行僧 发表于 2013-11-13 23:57:00

唉....RTT还没整明白,现在有扯上Linux了,唉....文档啊文档

gzhuli 发表于 2013-11-14 00:01:05

苦行僧 发表于 2013-11-13 23:57 static/image/common/back.gif
唉....RTT还没整明白,现在有扯上Linux了,唉....文档啊文档

对于RT-Thread目前这种规模的开源项目,直接看代码比看文档实在。

苦行僧 发表于 2013-11-14 07:30:24

gzhuli 发表于 2013-11-14 00:01 static/image/common/back.gif
对于RT-Thread目前这种规模的开源项目,直接看代码比看文档实在。

恩,可是有时候看到一个没见过的东西,真心不懂,就卡住了,虽然先跳过去然后后来可能能看懂,但那比较难受{:dizzy:}

john78 发表于 2013-11-14 07:56:40

顶-下,多核是趋势。

jeffwei 发表于 2013-11-14 08:07:09

感觉像KVM,以前在linux下用KVM启动硬盘上的XP运行,(新笔记本没BIOS了,启动就蓝屏)

sun_sky 发表于 2013-11-14 10:12:05

这个技术也在嵌入系统上用?

windboy 发表于 2013-11-14 10:33:28

越来越N X了

希望越来越好

不过像我们用 cm0,cm3较多

migrant 发表于 2013-11-14 10:40:33

广东人民发来贺电{:lol:}

avr-arm 发表于 2013-11-14 10:51:27

rtt的定位在哪一块?如果是cm系列,那个人认为加这个模块毫无意义。

XIVN1987 发表于 2013-11-14 11:04:33

RTThread是面向MCU的还是面向MPU??我觉得还是应该找准定位,毕竟这二者的开发模式相差非常大。。

onepower 发表于 2013-11-14 11:25:19

完全不明白这样做用何用??? 用linux就用linux, 用RTT就用RTT, RTT上再走个linux这是为何???
还不如在RTT上跑个JAVA虚拟机,然后跑apk!

jeffwei 发表于 2013-11-14 11:38:15

rtt是实时系统,linux不是,关键任务rtt处理,界面 数据库等Linux处理,各取所长,并行不悖

Excellence 发表于 2013-11-14 11:41:49

观望中。。。

bbstr 发表于 2013-11-14 12:29:37

说实话,我也觉得这个实际意义小于研究意义,多核的方案上,原厂都做好了cm3或者4的开发,且在不断的维护,比如am3359的cm3部分作为电源管理,dm3730,dm8168的dsp做多媒体编解码和视频采集显示,都有开发人员维护,对于应用开发人员来说去开发那部分难度还是很大的,而且很多寄存器说明,原厂不轻易开放。
linux和win8,wince7也都有对多核的直接支持,当然实时性可能有些折扣,楼主这个趋势适合去科研单位推广,作为一个国家项目来做。
作为大众来说,最好能够集中心力维护好cm,arm7等系列,把市场比例做到ucos那样

flor 发表于 2013-11-14 12:56:19

感觉好牛啊

ffxz 发表于 2013-11-14 20:47:58

XIVN1987 发表于 2013-11-14 11:04 static/image/common/back.gif
RTThread是面向MCU的还是面向MPU??我觉得还是应该找准定位,毕竟这二者的开发模式相差非常大。。 ...

确实差别非常大,MPU或高性能的嵌入式系统这块,功能性复杂,一般的RTOS并不容易满足。那么这个是以RT-Thread/VMM + Linux的方式,既能够保留RTOS的简单,也能够带来Linux的功能性。

从这个角度来说,能够让RT-Thread更保持现有的特性,因为它并没有对RT-Thread本身有根本性的变化,也能够让它更关注核心问题:小巧、精致的实时内核。

ffxz 发表于 2013-11-14 20:49:12

onepower 发表于 2013-11-14 11:25 static/image/common/back.gif
完全不明白这样做用何用??? 用linux就用linux, 用RTT就用RTT, RTT上再走个linux这是为何???
还不如在RTT上 ...

关键在于,RT-Thread上实现一个稳定的Java VM并不是那么容易,而且还有繁多的许可问题(许可问题,Google都采用这样曲折的方式进行,你觉得RT-Thread能够搞定吗?)。

ffxz 发表于 2013-11-14 20:50:33

本帖最后由 ffxz 于 2013-11-14 20:52 编辑

bbstr 发表于 2013-11-14 12:29 static/image/common/back.gif
说实话,我也觉得这个实际意义小于研究意义,多核的方案上,原厂都做好了cm3或者4的开发,且在不断的维护, ...

恰恰相反,引入这个新组件是来自于需求。另外一个,你这里理解错了,并不是说把RT-Thread运行在AM335x的CM3核心上,而是让RT-Thread和Linux共同的运行在ARM Cortex-A8核心上。

sun_sky 发表于 2013-11-14 21:09:38

ffxz 发表于 2013-11-14 20:50 static/image/common/back.gif
恰恰相反,引入这个新组件是来自于需求。另外一个,你这里理解错了,并不是说把RT-Thread运行在AM335x的C ...

这个需求真的很怪异,简直无法理解!
VMM就是虚拟机相关的技术,不改linux不难,难的是涉及的方面太多,

f1yh1347 发表于 2013-11-14 21:22:15

不错,支持

bbstr 发表于 2013-11-14 21:31:39

ffxz 发表于 2013-11-14 20:50 static/image/common/back.gif
恰恰相反,引入这个新组件是来自于需求。另外一个,你这里理解错了,并不是说把RT-Thread运行在AM335x的C ...

那你这个需求和解散前的ste做的一款6715平台很像,rtos+android的方式,rtos做基带,gps等模块,linux上跑android。之间通过9p来协作通讯,针对低端市场,可能现在的broadcom的方案里也有这样的

ffxz 发表于 2013-11-14 21:41:45

bbstr 发表于 2013-11-14 21:31 static/image/common/back.gif
那你这个需求和解散前的ste做的一款6715平台很像,rtos+android的方式,rtos做基带,gps等模块,linux上 ...

不一样哦,现在手机单芯片方案都是这种基带ARM CPU + 双核、四核AP ARM CPU。基带CPU则逐渐进化到ARM Cortex-R了。这种方式是异构的芯片。

我这里说的是,RT-Thread + Linux运行在单核A8上,或者多核A9(多核的时候,可以是类似你说的一个核是RT-Thread,其他的核是Linux)。多核A9、A15也有另外的形式,RT-Thread运行在单独的安全区,Linux以完全的SMP方式运行。

xjtyOnly51 发表于 2013-11-24 07:14:32

marking{:smile:}

lixun00 发表于 2013-11-24 23:14:01

这个比较好。
针对某些应用非常不错,做好估计要段时间。

dongfo 发表于 2013-11-24 23:17:59

连嵌入式系统都支持虚拟机了

activeleo 发表于 2013-11-25 10:35:57

如果你长期的关注VxWorks操作系统的话,你就考虑下他们的设计,每次都会有更加新的设计和思想。这个也是参照这个吧!

ffxz 发表于 2013-11-25 12:53:10

activeleo 发表于 2013-11-25 10:35
如果你长期的关注VxWorks操作系统的话,你就考虑下他们的设计,每次都会有更加新的设计和思想。这个也是参 ...

VxWorks的新设计指的是什么,太多年没涉及VxWorks了,给大家共享下

按照RT-Thread/VMM这样的构架,到是觉得在RT-Thread这边弄个VxWorks APIs兼容层挺好的,这样可以满足一些原来的VxWorks应用,同时也能够桥接Linux部分的富功能。

ljt80158015 发表于 2013-11-25 13:49:44

驱动在RTT中实现?   spiusarteth......数据如何传递到linux?

liandao 发表于 2013-11-25 14:23:36

1.VMM思路挺好
2.由于Linux根本没有用ARM的FIQ,因此通过FIQ也能获得另一个实时的运行空间,并轻易的得到<10us的实时响应性。当然配合定时器,在FIQ中也能运行一个RTOS。参阅http://elinux.org/images/2/27/0910-elce-fiq.pdf
3.给出的PDF中Xenomai的实时性数据不全面,
我做的测试:SAM9263@200MHZ
A.中断注册在Ipipe的首个域时,可以做到约50us
B.中断注册在Linux 内核空间,可以做到约100us
C.中断注册在Linux 用户空间,可以做到约200us
4.我个人认为Xenomai的最大问题是:它的IPIPE代码包只支持特定版本的linux内核代码---IPIPE没有合并到linux主线代码中。这导致没法跟进新版本内核

f1yh1347 发表于 2013-11-25 14:49:03

本帖最后由 f1yh1347 于 2013-11-25 14:50 编辑

我有测试过xscale 624Mhz @ xenomai,可以做到大概10us左右

ffxz 发表于 2013-11-25 18:39:53

ljt80158015 发表于 2013-11-25 13:49
驱动在RTT中实现?   spiusarteth......数据如何传递到linux?

RT-Thread/VMM有个内部组件VBUS,这个是RT-Thread与Linux沟通的桥梁,能够让双方自由通信。现在是内部的,以后会单独挪出来,形成RT-Thread与RT-Thread,RT-Thread与Linux的分布式通信。

基于VBUS,可以实现shell、DFS等的跨界运行

ffxz 发表于 2013-11-25 18:41:05

liandao 发表于 2013-11-25 14:23
1.VMM思路挺好
2.由于Linux根本没有用ARM的FIQ,因此通过FIQ也能获得另一个实时的运行空间,并轻易的得到 ...

关于FIQ:是的,确实是这样。只是对于一些ARM Cortex-A芯片,没实现FIQ方式的,只有哭死!

ffxz 发表于 2013-11-25 18:45:23

f1yh1347 发表于 2013-11-25 14:49
我有测试过xscale 624Mhz @ xenomai,可以做到大概10us左右

难道以前的xenomai反而性能比较好?有个链接,基本上现在这类1.2GHz、1GHz的ARM芯片,xenomai中断延时会到50us附近。

但是另外一个,如果有一种方法,基本上不修改Linux Kernel就能够达到这样的目标:实时性高而且稳定,何乐而不为呢。通过这种方式,甚至你能够类似使用单片机的模式来使用Cortex-A芯片,而当使用复杂功能时,把Linux开启,让他飞即可……

PZLPDY 发表于 2013-12-1 23:14:51

这个东西要稳定的实现了,搞电力的童鞋就要有福了

f1yh1347 发表于 2013-12-2 08:51:05

ffxz 发表于 2013-11-25 18:45
难道以前的xenomai反而性能比较好?有个链接,基本上现在这类1.2GHz、1GHz的ARM芯片,xenomai中断延时会 ...

这个我用示波器测过,平均10us左右。xenomai最主要的是麻烦就是针对新内核不断的打补丁,稳定性需要测试。
如果不需要修改内核,就能跑的起来,那是为天下人谋福利了。

wyoujtg 发表于 2014-1-22 21:44:51

今晚无意看到国人做的一个东西   嵌入式虚拟机Xtimeshttp://www.xtimes.org/   ,真不错,感觉与ffxz 说的VMM模块是一个东西,

其嵌入式虚拟化不是什么新技术,近年来嵌入式处理器arm的快速发展,使用得虚拟化技术可以在嵌入式应用开来,各大RTOS厂商都有其嵌入式虚拟化产品

nucleus虚拟化架构


integrity虚拟化架构


vxworks虚拟化架构

3050311118 发表于 2014-1-29 19:40:58

vmm 跟RTLINUX patch相比优势在哪里?
页: [1]
查看完整版本: RT-Thread 2.0.0系列引入的新模块:VMM