搜索
bottom↓
回复: 42

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

[复制链接]

出0入0汤圆

发表于 2013-11-13 22:22:05 | 显示全部楼层 |阅读模式
单独发个帖说说这个事情。

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

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2013-11-13 22:25:00 | 显示全部楼层
坐个沙发

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

出0入0汤圆

 楼主| 发表于 2013-11-13 22:25:49 | 显示全部楼层
目前RT-Thread、Linux在BeagleBone Black (TI AM3359,ARM Cortex-A8,1GHz)上同时运行的几个指标:
1. 实时性 <10us
2. Linux性能损失 < 5% (此时RT-Thread没有复杂的计算任务)

出0入0汤圆

发表于 2013-11-13 22:37:07 | 显示全部楼层
感觉好复杂,不是一般的菜鸟能懂,

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

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

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

出0入0汤圆

 楼主| 发表于 2013-11-13 22:43:14 | 显示全部楼层
mcusun2000 发表于 2013-11-13 22:37
感觉好复杂,不是一般的菜鸟能懂,

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

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

出0入0汤圆

发表于 2013-11-13 23:41:02 | 显示全部楼层
文档啊文档,这个一定要跟上啊

出0入0汤圆

发表于 2013-11-13 23:57:00 | 显示全部楼层
唉....RTT还没整明白,现在有扯上Linux了,唉....文档啊文档

出0入663汤圆

发表于 2013-11-14 00:01:05 | 显示全部楼层
苦行僧 发表于 2013-11-13 23:57
唉....RTT还没整明白,现在有扯上Linux了,唉....文档啊文档


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

出0入0汤圆

发表于 2013-11-14 07:30:24 | 显示全部楼层
gzhuli 发表于 2013-11-14 00:01
对于RT-Thread目前这种规模的开源项目,直接看代码比看文档实在。

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

出90入4汤圆

发表于 2013-11-14 07:56:40 来自手机 | 显示全部楼层
顶-下,多核是趋势。

出0入0汤圆

发表于 2013-11-14 08:07:09 | 显示全部楼层
感觉像KVM,以前在linux下用KVM启动硬盘上的XP运行,(新笔记本没BIOS了,启动就蓝屏)

出0入0汤圆

发表于 2013-11-14 10:12:05 | 显示全部楼层
这个技术也在嵌入系统上用?

出0入0汤圆

发表于 2013-11-14 10:33:28 | 显示全部楼层
越来越N X了

希望越来越好

不过像我们用 cm0,cm3较多

出0入0汤圆

发表于 2013-11-14 10:40:33 | 显示全部楼层
广东人民发来贺电

出0入0汤圆

发表于 2013-11-14 10:51:27 | 显示全部楼层
rtt的定位在哪一块?如果是cm系列,那个人认为加这个模块毫无意义。

出0入25汤圆

发表于 2013-11-14 11:04:33 | 显示全部楼层
RTThread是面向MCU的还是面向MPU??我觉得还是应该找准定位,毕竟这二者的开发模式相差非常大。。

出0入0汤圆

发表于 2013-11-14 11:25:19 | 显示全部楼层
完全不明白这样做用何用??? 用linux就用linux, 用RTT就用RTT, RTT上再走个linux这是为何???
还不如在RTT上跑个JAVA虚拟机,然后跑apk!

出0入0汤圆

发表于 2013-11-14 11:38:15 来自手机 | 显示全部楼层
rtt是实时系统,linux不是,关键任务rtt处理,界面 数据库等Linux处理,各取所长,并行不悖

出0入0汤圆

发表于 2013-11-14 11:41:49 | 显示全部楼层
观望中。。。

出0入0汤圆

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

出0入0汤圆

发表于 2013-11-14 12:56:19 | 显示全部楼层
感觉好牛啊

出0入0汤圆

 楼主| 发表于 2013-11-14 20:47:58 | 显示全部楼层
XIVN1987 发表于 2013-11-14 11:04
RTThread是面向MCU的还是面向MPU??我觉得还是应该找准定位,毕竟这二者的开发模式相差非常大。。 ...

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

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

出0入0汤圆

 楼主| 发表于 2013-11-14 20:49:12 | 显示全部楼层
onepower 发表于 2013-11-14 11:25
完全不明白这样做用何用??? 用linux就用linux, 用RTT就用RTT, RTT上再走个linux这是为何???
还不如在RTT上 ...

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

出0入0汤圆

 楼主| 发表于 2013-11-14 20:50:33 | 显示全部楼层
本帖最后由 ffxz 于 2013-11-14 20:52 编辑
bbstr 发表于 2013-11-14 12:29
说实话,我也觉得这个实际意义小于研究意义,多核的方案上,原厂都做好了cm3或者4的开发,且在不断的维护, ...


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

出0入0汤圆

发表于 2013-11-14 21:09:38 | 显示全部楼层
ffxz 发表于 2013-11-14 20:50
恰恰相反,引入这个新组件是来自于需求。另外一个,你这里理解错了,并不是说把RT-Thread运行在AM335x的C ...

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

出0入0汤圆

发表于 2013-11-14 21:22:15 来自手机 | 显示全部楼层
不错,支持

出0入0汤圆

发表于 2013-11-14 21:31:39 | 显示全部楼层
ffxz 发表于 2013-11-14 20:50
恰恰相反,引入这个新组件是来自于需求。另外一个,你这里理解错了,并不是说把RT-Thread运行在AM335x的C ...

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

出0入0汤圆

 楼主| 发表于 2013-11-14 21:41:45 | 显示全部楼层
bbstr 发表于 2013-11-14 21:31
那你这个需求和解散前的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方式运行。

出0入0汤圆

发表于 2013-11-24 07:14:32 | 显示全部楼层
marking

出0入0汤圆

发表于 2013-11-24 23:14:01 | 显示全部楼层
这个比较好。
针对某些应用非常不错,做好估计要段时间。

出0入0汤圆

发表于 2013-11-24 23:17:59 | 显示全部楼层
连嵌入式系统都支持虚拟机了

出0入0汤圆

发表于 2013-11-25 10:35:57 | 显示全部楼层
如果你长期的关注VxWorks操作系统的话,你就考虑下他们的设计,每次都会有更加新的设计和思想。这个也是参照这个吧!

出0入0汤圆

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

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

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

出0入0汤圆

发表于 2013-11-25 13:49:44 | 显示全部楼层
驱动在RTT中实现?   spi  usart  eth......数据如何传递到linux?

出0入0汤圆

发表于 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主线代码中。这导致没法跟进新版本内核

出0入0汤圆

发表于 2013-11-25 14:49:03 | 显示全部楼层
本帖最后由 f1yh1347 于 2013-11-25 14:50 编辑

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

出0入0汤圆

 楼主| 发表于 2013-11-25 18:39:53 | 显示全部楼层
ljt80158015 发表于 2013-11-25 13:49
驱动在RTT中实现?   spi  usart  eth......数据如何传递到linux?

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

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

出0入0汤圆

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

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

出0入0汤圆

 楼主| 发表于 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开启,让他飞即可……

出0入0汤圆

发表于 2013-12-1 23:14:51 | 显示全部楼层
这个东西要稳定的实现了,搞电力的童鞋就要有福了

出0入0汤圆

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

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

出0入0汤圆

发表于 2014-1-22 21:44:51 | 显示全部楼层
今晚无意看到国人做的一个东西   嵌入式虚拟机Xtimes  http://www.xtimes.org/   ,真不错,感觉与ffxz 说的VMM模块是一个东西,

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

nucleus虚拟化架构


integrity虚拟化架构


vxworks虚拟化架构

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-1-29 19:40:58 | 显示全部楼层
vmm 跟RTLINUX patch相比  优势在哪里?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 07:26

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表